Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next
[deliverable/linux.git] / drivers / staging / ced1401 / use14_ioc.h
1 /* use14_ioc.h
2 ** definitions of use1401 module stuff that is shared between use1401 and the driver.
3 ** Copyright (C) Cambridge Electronic Design Limited 2010
4 ** Author Greg P Smith
5 ************************************************************************************/
6 #ifndef __USE14_IOC_H__
7 #define __USE14_IOC_H__
8
9 #define MAX_TRANSAREAS 8 /* The number of transfer areas supported by driver */
10
11 #define i386
12 #include "winioctl.h" /* needed so we can access driver */
13
14 /*
15 ** Defines for IOCTL functions to ask driver to perform. These must be matched
16 ** in both use1401 and in the driver. The IOCTL code contains a command
17 ** identifier, plus other information about the device, the type of access
18 ** with which the file must have been opened, and the type of buffering.
19 ** The IOCTL function codes from 0x80 to 0xFF are for developer use.
20 */
21 #define FILE_DEVICE_CED1401 0x8001
22 FNNUMBASE 0x800
23
24 #define U14_OPEN1401 CTL_CODE(FILE_DEVICE_CED1401, \
25 FNNUMBASE, \
26 METHOD_BUFFERED, \
27 FILE_ANY_ACCESS)
28
29 #define U14_CLOSE1401 CTL_CODE(FILE_DEVICE_CED1401, \
30 FNNUMBASE+1, \
31 METHOD_BUFFERED, \
32 FILE_ANY_ACCESS)
33
34 #define U14_SENDSTRING CTL_CODE(FILE_DEVICE_CED1401, \
35 FNNUMBASE+2, \
36 METHOD_BUFFERED, \
37 FILE_ANY_ACCESS)
38
39 #define U14_RESET1401 CTL_CODE(FILE_DEVICE_CED1401, \
40 FNNUMBASE+3, \
41 METHOD_BUFFERED, \
42 FILE_ANY_ACCESS)
43
44 #define U14_GETCHAR CTL_CODE(FILE_DEVICE_CED1401, \
45 FNNUMBASE+4, \
46 METHOD_BUFFERED, \
47 FILE_ANY_ACCESS)
48
49 #define U14_SENDCHAR CTL_CODE(FILE_DEVICE_CED1401, \
50 FNNUMBASE+5, \
51 METHOD_BUFFERED, \
52 FILE_ANY_ACCESS)
53
54 #define U14_STAT1401 CTL_CODE(FILE_DEVICE_CED1401, \
55 FNNUMBASE+6, \
56 METHOD_BUFFERED, \
57 FILE_ANY_ACCESS)
58
59 #define U14_LINECOUNT CTL_CODE(FILE_DEVICE_CED1401, \
60 FNNUMBASE+7, \
61 METHOD_BUFFERED, \
62 FILE_ANY_ACCESS)
63
64 #define U14_GETSTRING CTL_CODE(FILE_DEVICE_CED1401, \
65 FNNUMBASE+8, \
66 METHOD_BUFFERED, \
67 FILE_ANY_ACCESS)
68
69 #define U14_REGCALLBACK CTL_CODE(FILE_DEVICE_CED1401, \
70 FNNUMBASE+9, \
71 METHOD_BUFFERED, \
72 FILE_ANY_ACCESS)
73
74 #define U14_GETMONITORBUF CTL_CODE(FILE_DEVICE_CED1401, \
75 FNNUMBASE+10, \
76 METHOD_BUFFERED, \
77 FILE_ANY_ACCESS)
78
79 #define U14_SETTRANSFER CTL_CODE(FILE_DEVICE_CED1401, \
80 FNNUMBASE+11, \
81 METHOD_BUFFERED, \
82 FILE_ANY_ACCESS)
83
84 #define U14_UNSETTRANSFER CTL_CODE(FILE_DEVICE_CED1401, \
85 FNNUMBASE+12, \
86 METHOD_BUFFERED, \
87 FILE_ANY_ACCESS)
88
89 #define U14_SETTRANSEVENT CTL_CODE(FILE_DEVICE_CED1401, \
90 FNNUMBASE+13, \
91 METHOD_BUFFERED, \
92 FILE_ANY_ACCESS)
93
94 #define U14_GETOUTBUFSPACE CTL_CODE(FILE_DEVICE_CED1401, \
95 FNNUMBASE+14, \
96 METHOD_BUFFERED, \
97 FILE_ANY_ACCESS)
98
99 #define U14_GETBASEADDRESS CTL_CODE(FILE_DEVICE_CED1401, \
100 FNNUMBASE+15, \
101 METHOD_BUFFERED, \
102 FILE_ANY_ACCESS)
103
104 #define U14_GETDRIVERREVISION CTL_CODE(FILE_DEVICE_CED1401, \
105 FNNUMBASE+16, \
106 METHOD_BUFFERED, \
107 FILE_ANY_ACCESS)
108
109 #define U14_GETTRANSFER CTL_CODE(FILE_DEVICE_CED1401, \
110 FNNUMBASE+17, \
111 METHOD_BUFFERED, \
112 FILE_ANY_ACCESS)
113
114 #define U14_KILLIO1401 CTL_CODE(FILE_DEVICE_CED1401, \
115 FNNUMBASE+18, \
116 METHOD_BUFFERED, \
117 FILE_ANY_ACCESS)
118
119 #define U14_BLKTRANSSTATE CTL_CODE(FILE_DEVICE_CED1401, \
120 FNNUMBASE+19, \
121 METHOD_BUFFERED, \
122 FILE_ANY_ACCESS)
123
124 #define U14_BYTECOUNT CTL_CODE(FILE_DEVICE_CED1401, \
125 FNNUMBASE+20, \
126 METHOD_BUFFERED, \
127 FILE_ANY_ACCESS)
128
129 #define U14_ZEROBLOCKCOUNT CTL_CODE(FILE_DEVICE_CED1401, \
130 FNNUMBASE+21, \
131 METHOD_BUFFERED, \
132 FILE_ANY_ACCESS)
133
134 #define U14_STOPCIRCULAR CTL_CODE(FILE_DEVICE_CED1401, \
135 FNNUMBASE+22, \
136 METHOD_BUFFERED, \
137 FILE_ANY_ACCESS)
138
139 #define U14_STATEOF1401 CTL_CODE(FILE_DEVICE_CED1401, \
140 FNNUMBASE+23, \
141 METHOD_BUFFERED, \
142 FILE_ANY_ACCESS)
143
144 #define U14_REGISTERS1401 CTL_CODE(FILE_DEVICE_CED1401, \
145 FNNUMBASE+24, \
146 METHOD_BUFFERED, \
147 FILE_ANY_ACCESS)
148
149 #define U14_GRAB1401 CTL_CODE(FILE_DEVICE_CED1401, \
150 FNNUMBASE+25, \
151 METHOD_BUFFERED, \
152 FILE_ANY_ACCESS)
153
154 #define U14_FREE1401 CTL_CODE(FILE_DEVICE_CED1401, \
155 FNNUMBASE+26, \
156 METHOD_BUFFERED, \
157 FILE_ANY_ACCESS)
158
159 #define U14_STEP1401 CTL_CODE(FILE_DEVICE_CED1401, \
160 FNNUMBASE+27, \
161 METHOD_BUFFERED, \
162 FILE_ANY_ACCESS)
163
164 #define U14_SET1401REGISTERS CTL_CODE(FILE_DEVICE_CED1401, \
165 FNNUMBASE+28, \
166 METHOD_BUFFERED, \
167 FILE_ANY_ACCESS)
168
169 #define U14_STEPTILL1401 CTL_CODE(FILE_DEVICE_CED1401, \
170 FNNUMBASE+29, \
171 METHOD_BUFFERED, \
172 FILE_ANY_ACCESS)
173
174 #define U14_SETORIN CTL_CODE(FILE_DEVICE_CED1401, \
175 FNNUMBASE+30, \
176 METHOD_BUFFERED, \
177 FILE_ANY_ACCESS)
178
179 #define U14_STARTSELFTEST CTL_CODE(FILE_DEVICE_CED1401, \
180 FNNUMBASE+31, \
181 METHOD_BUFFERED, \
182 FILE_ANY_ACCESS)
183
184 #define U14_CHECKSELFTEST CTL_CODE(FILE_DEVICE_CED1401, \
185 FNNUMBASE+32, \
186 METHOD_BUFFERED, \
187 FILE_ANY_ACCESS)
188
189 #define U14_TYPEOF1401 CTL_CODE(FILE_DEVICE_CED1401, \
190 FNNUMBASE+33, \
191 METHOD_BUFFERED, \
192 FILE_ANY_ACCESS)
193
194 #define U14_TRANSFERFLAGS CTL_CODE(FILE_DEVICE_CED1401, \
195 FNNUMBASE+34, \
196 METHOD_BUFFERED, \
197 FILE_ANY_ACCESS)
198
199 #define U14_DBGPEEK CTL_CODE(FILE_DEVICE_CED1401, \
200 FNNUMBASE+35, \
201 METHOD_BUFFERED, \
202 FILE_ANY_ACCESS)
203
204 #define U14_DBGPOKE CTL_CODE(FILE_DEVICE_CED1401, \
205 FNNUMBASE+36, \
206 METHOD_BUFFERED, \
207 FILE_ANY_ACCESS)
208
209 #define U14_DBGRAMPDATA CTL_CODE(FILE_DEVICE_CED1401, \
210 FNNUMBASE+37, \
211 METHOD_BUFFERED, \
212 FILE_ANY_ACCESS)
213
214 #define U14_DBGRAMPADDR CTL_CODE(FILE_DEVICE_CED1401, \
215 FNNUMBASE+38, \
216 METHOD_BUFFERED, \
217 FILE_ANY_ACCESS)
218
219 #define U14_DBGGETDATA CTL_CODE(FILE_DEVICE_CED1401, \
220 FNNUMBASE+39, \
221 METHOD_BUFFERED, \
222 FILE_ANY_ACCESS)
223
224 #define U14_DBGSTOPLOOP CTL_CODE(FILE_DEVICE_CED1401, \
225 FNNUMBASE+40, \
226 METHOD_BUFFERED, \
227 FILE_ANY_ACCESS)
228
229 #define U14_FULLRESET CTL_CODE(FILE_DEVICE_CED1401, \
230 FNNUMBASE+41, \
231 METHOD_BUFFERED, \
232 FILE_ANY_ACCESS)
233
234 #define U14_SETCIRCULAR CTL_CODE(FILE_DEVICE_CED1401, \
235 FNNUMBASE+42, \
236 METHOD_BUFFERED, \
237 FILE_ANY_ACCESS)
238
239 #define U14_GETCIRCBLK CTL_CODE(FILE_DEVICE_CED1401, \
240 FNNUMBASE+43, \
241 METHOD_BUFFERED, \
242 FILE_ANY_ACCESS)
243
244 #define U14_FREECIRCBLK CTL_CODE(FILE_DEVICE_CED1401, \
245 FNNUMBASE+44, \
246 METHOD_BUFFERED, \
247 FILE_ANY_ACCESS)
248
249 /*--------------- Structures that are shared with the driver ------------- */
250 #pragma pack(1)
251
252 typedef struct /* used for get/set standard 1401 registers */
253 {
254 short sPC;
255 char A;
256 char X;
257 char Y;
258 char stat;
259 char rubbish;
260 } T1401REGISTERS;
261
262 typedef union /* to communicate with 1401 driver status & control funcs */
263 {
264 char chrs[22];
265 short ints[11];
266 long longs[5];
267 T1401REGISTERS registers;
268 } TCSBLOCK;
269
270 typedef TCSBLOCK* LPTCSBLOCK;
271
272 typedef struct paramBlk {
273 short sState;
274 TCSBLOCK csBlock;
275 } PARAMBLK;
276
277 typedef PARAMBLK* PPARAMBLK;
278
279 struct transfer_area_desc /* Structure and type for SetTransArea */
280 {
281 unsigned short wArea; /* number of transfer area to set up */
282 void FAR *lpvBuff; /* address of transfer area */
283 unsigned int dwLength; /* length of area to set up */
284 short eSize; /* size to move (for swapping on MAC) */
285 };
286
287
288 /* This is the structure used to set up a transfer area */
289 typedef struct VXTransferDesc /* use1401.c and use1432x.x use only */
290 {
291 unsigned short wArea; /* number of transfer area to set up */
292 unsigned short wAddrSel; /* 16 bit selector for area */
293 unsigned int dwAddrOfs; /* 32 bit offset for area start */
294 unsigned int dwLength; /* length of area to set up */
295 } VXTRANSFERDESC;
296
297 #pragma pack()
298
299 #endif
This page took 0.037264 seconds and 5 git commands to generate.