6811333 Remove prom_printf() message in emlxs driver
[opensolaris.git] / usr / src / uts / common / sys / pem.h
blob55a15713ecf1671b6b43b81149d5e54702e88f19
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
23 * Copyright 1999 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
28 * PCMCIA Event Manager Driver
31 #ifndef _PEM_H
32 #define _PEM_H
34 #pragma ident "%Z%%M% %I% %E% SMI"
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
40 /* #define PEM_DEBUG */
42 #define PEM_MAX_EVENTS 64
43 #define PEM_IDNUM 0x454D
44 #define PEM_NAME "pem"
45 #define PEM_MIN 0
46 #define PEM_MAX 1024
47 #define PEM_HIWATER 4096
48 #define PEM_LOWATER 1024
50 #define EM_INIT_REQ 0
51 #define EM_INFO_REQ 1
52 #define EM_MODIFY_EVENT_MASK_REQ 2
53 #define EM_GET_FIRST_TUPLE_REQ 3
54 #define EM_GET_NEXT_TUPLE_REQ 4
56 #define EM_INIT_ACK 5
57 #define EM_INFO_ACK 6
58 #define EM_EVENT_IND 7
60 #define EM_ADAPTER_INFO_REQ 8
61 #define EM_ADAPTER_INFO_ACK 9
62 #define EM_SOCKET_INFO_REQ 10
63 #define EM_SOCKET_INFO_ACK 11
64 #define EM_GET_SOCKET_REQ 12
65 #define EM_GET_SOCKET_ACK 13
66 #define EM_IDENT_SOCKET_REQ 14
67 #define EM_GET_FIRST_TUPLE_ACK 15
69 #define EM_BADPRIM 1
72 #define ___VERSION(a, b) (((a)<<8)|(b))
73 #define EM_VERSION ___VERSION(0, 1)
74 #define EM_CURRENT_VERSION EM_VERSION
76 typedef
77 struct em_init_req {
78 uint32_t em_primitive;
79 uint32_t em_logical_socket;
80 uint32_t em_event_mask_offset;
81 uint32_t em_event_mask_length;
82 uint32_t em_event_class_offset;
83 uint32_t em_event_class_length;
84 } em_init_req_t;
86 typedef
87 struct em_info_req {
88 uint32_t em_primitive;
89 } em_info_req_t;
91 typedef
92 struct em_modify_event_mask_req {
93 uint32_t em_primitive;
94 } em_modify_event_mask_req_t;
96 typedef
97 struct em_get_first_tuple_req {
98 uint32_t em_primitive;
99 uint32_t em_socket;
100 uint32_t em_desired_tuple;
101 } em_get_first_tuple_req_t;
103 typedef
104 struct em_get_first_tuple_ack {
105 uint32_t em_primitive;
106 } em_get_first_tuple_ack_t;
108 typedef
109 struct em_get_next_tuple_req {
110 uint32_t em_primitive;
111 } em_get_next_tuple_req_t;
113 typedef
114 struct em_get_next_tuple_ack {
115 uint32_t em_primitive;
116 } em_get_next_tuple_ack_t;
118 typedef
119 struct em_info_ack {
120 uint32_t em_primitive;
121 uint32_t em_version;
122 uint32_t em_state;
123 uint32_t em_event_mask_offset;
124 uint32_t em_event_mask_length;
125 uint32_t em_event_class_offset;
126 uint32_t em_event_class_length;
127 } em_info_ack_t;
129 typedef
130 struct em_event_ind {
131 uint32_t em_primitive;
132 uint32_t em_logical_socket;
133 uint32_t em_event;
134 uint32_t em_event_info_offset;
135 uint32_t em_event_info_length;
136 } em_event_ind_t;
138 typedef
139 struct em_init_ack {
140 uint32_t em_primitive;
141 } em_init_ack_t;
143 /* adapter info is essentially InquireAdapter */
144 typedef
145 struct em_adapter_info_req {
146 uint32_t em_primitive;
147 } em_adapter_info_req_t;
149 typedef
150 struct em_adapter_info_ack {
151 uint32_t em_primitive;
152 uint32_t em_num_sockets;
153 uint32_t em_num_windows;
154 uint32_t em_num_power;
155 uint32_t em_power_offset;
156 uint32_t em_power_length;
157 } em_adapter_info_ack_t;
159 /* socket_info is essentially InquireSocket */
160 typedef
161 struct em_socket_info_req {
162 uint32_t em_primitive;
163 uint32_t em_socket;
164 } em_socket_info_req_t;
166 typedef
167 struct em_socket_info_ack {
168 uint32_t em_primitive;
169 uint32_t em_status_int_caps;
170 uint32_t em_status_report_caps;
171 uint32_t em_control_indicator_caps;
172 uint32_t em_socket_caps;
173 } em_socket_info_ack_t;
175 /* get_socket */
176 typedef
177 struct em_get_socket_req {
178 uint32_t em_primitive;
179 uint32_t em_socket;
180 } em_get_socket_req_t;
182 typedef
183 struct em_get_socket_ack {
184 uint32_t em_primitive;
185 uint32_t em_socket;
186 uint32_t em_vcc_level;
187 uint32_t em_vpp1_level;
188 uint32_t em_vpp2_level;
189 uint32_t em_state;
190 uint32_t em_control_ind;
191 uint32_t em_ireq_routing;
192 uint32_t em_iftype;
193 } em_get_socket_ack_t;
195 typedef
196 struct em_ident_socket_req {
197 uint32_t em_primitive;
198 uint32_t em_socket;
199 } em_ident_socket_req_t;
201 union em_primitives {
202 uint32_t em_primitive;
203 em_init_req_t init_req;
204 em_info_req_t info_req;
205 em_get_first_tuple_req_t get_first_tuple_req;
206 em_get_next_tuple_req_t get_next_tuple_req;
207 em_info_ack_t info_ack;
208 em_event_ind_t event_ind;
209 em_modify_event_mask_req_t modify_event_mask_req;
210 em_get_socket_req_t get_socket_req;
211 em_ident_socket_req_t ident_socket_req;
214 #define EM_CLASS_SIZE 32
215 #define EM_EVENT_MASK_SIZE 32
217 #if defined(_KERNEL)
218 #define EM_EVENT_SIZE 4
219 typedef struct pem {
220 uint32_t pem_flags;
221 uint32_t pem_state;
222 uint32_t pem_id;
223 minor_t pem_minor;
224 queue_t *pem_qptr;
225 mblk_t *pem_mb;
226 uchar_t pem_event_class[EM_CLASS_SIZE/sizeof (uchar_t)];
227 uchar_t pem_event_mask[EM_EVENT_MASK_SIZE/sizeof (uchar_t)];
228 } pem_t;
230 #define EM_INIT 1
231 #define PEMF_EVENTS 0x0001
232 #define PEMF_CLASSES 0x0002
233 #define PEMF_INIT 0x0004
235 #define PEMMAXINFO (16 + sizeof (struct pcm_make_dev))
236 struct pem_event {
237 int pe_owner;
238 int pe_id;
239 int pe_event;
240 int pe_socket;
241 uchar_t pe_info[PEMMAXINFO];
243 #define PE_OWN_FREE 0
244 #define PE_OWN_CLAIMED 1
245 #define PE_OWN_HANDLER 2
247 #define PEME_OK 0
248 #define PEME_NO_INFO 1
249 #define PEME_UNAVAILABLE 2
250 #define PEME_NO_CIS 3
251 #define PEME_NO_TUPLE 4
253 #define PEMTRACE 0x0001
254 #define PEMERRS 0x0002
256 #endif
258 #ifdef __cplusplus
260 #endif
262 #endif /* _PEM_H */