2 ** definitions of use1401 module stuff that is shared between use1401 and the driver.
3 ** Copyright (C) Cambridge Electronic Design Limited 2010
5 ************************************************************************************/
6 #ifndef __USE14_IOC_H__
7 #define __USE14_IOC_H__
9 #define MAX_TRANSAREAS 8 /* The number of transfer areas supported by driver */
12 #include "winioctl.h" /* needed so we can access driver */
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.
21 #define FILE_DEVICE_CED1401 0x8001
22 #define FNNUMBASE 0x800
24 #define U14_OPEN1401 CTL_CODE( FILE_DEVICE_CED1401, \
29 #define U14_CLOSE1401 CTL_CODE( FILE_DEVICE_CED1401, \
34 #define U14_SENDSTRING CTL_CODE( FILE_DEVICE_CED1401, \
39 #define U14_RESET1401 CTL_CODE( FILE_DEVICE_CED1401, \
44 #define U14_GETCHAR CTL_CODE( FILE_DEVICE_CED1401, \
49 #define U14_SENDCHAR CTL_CODE( FILE_DEVICE_CED1401, \
54 #define U14_STAT1401 CTL_CODE( FILE_DEVICE_CED1401, \
59 #define U14_LINECOUNT CTL_CODE( FILE_DEVICE_CED1401, \
64 #define U14_GETSTRING CTL_CODE( FILE_DEVICE_CED1401, \
69 #define U14_REGCALLBACK CTL_CODE( FILE_DEVICE_CED1401, \
74 #define U14_GETMONITORBUF CTL_CODE( FILE_DEVICE_CED1401, \
79 #define U14_SETTRANSFER CTL_CODE( FILE_DEVICE_CED1401, \
84 #define U14_UNSETTRANSFER CTL_CODE( FILE_DEVICE_CED1401, \
89 #define U14_SETTRANSEVENT CTL_CODE( FILE_DEVICE_CED1401, \
94 #define U14_GETOUTBUFSPACE CTL_CODE( FILE_DEVICE_CED1401, \
99 #define U14_GETBASEADDRESS CTL_CODE( FILE_DEVICE_CED1401, \
104 #define U14_GETDRIVERREVISION CTL_CODE( FILE_DEVICE_CED1401, \
109 #define U14_GETTRANSFER CTL_CODE( FILE_DEVICE_CED1401, \
114 #define U14_KILLIO1401 CTL_CODE( FILE_DEVICE_CED1401, \
119 #define U14_BLKTRANSSTATE CTL_CODE( FILE_DEVICE_CED1401, \
124 #define U14_BYTECOUNT CTL_CODE( FILE_DEVICE_CED1401, \
129 #define U14_ZEROBLOCKCOUNT CTL_CODE( FILE_DEVICE_CED1401, \
134 #define U14_STOPCIRCULAR CTL_CODE( FILE_DEVICE_CED1401, \
139 #define U14_STATEOF1401 CTL_CODE( FILE_DEVICE_CED1401, \
144 #define U14_REGISTERS1401 CTL_CODE( FILE_DEVICE_CED1401, \
149 #define U14_GRAB1401 CTL_CODE( FILE_DEVICE_CED1401, \
154 #define U14_FREE1401 CTL_CODE( FILE_DEVICE_CED1401, \
159 #define U14_STEP1401 CTL_CODE( FILE_DEVICE_CED1401, \
164 #define U14_SET1401REGISTERS CTL_CODE( FILE_DEVICE_CED1401, \
169 #define U14_STEPTILL1401 CTL_CODE( FILE_DEVICE_CED1401, \
174 #define U14_SETORIN CTL_CODE( FILE_DEVICE_CED1401, \
179 #define U14_STARTSELFTEST CTL_CODE( FILE_DEVICE_CED1401, \
184 #define U14_CHECKSELFTEST CTL_CODE( FILE_DEVICE_CED1401, \
189 #define U14_TYPEOF1401 CTL_CODE( FILE_DEVICE_CED1401, \
194 #define U14_TRANSFERFLAGS CTL_CODE( FILE_DEVICE_CED1401, \
199 #define U14_DBGPEEK CTL_CODE( FILE_DEVICE_CED1401, \
204 #define U14_DBGPOKE CTL_CODE( FILE_DEVICE_CED1401, \
209 #define U14_DBGRAMPDATA CTL_CODE( FILE_DEVICE_CED1401, \
214 #define U14_DBGRAMPADDR CTL_CODE( FILE_DEVICE_CED1401, \
219 #define U14_DBGGETDATA CTL_CODE( FILE_DEVICE_CED1401, \
224 #define U14_DBGSTOPLOOP CTL_CODE( FILE_DEVICE_CED1401, \
229 #define U14_FULLRESET CTL_CODE( FILE_DEVICE_CED1401, \
234 #define U14_SETCIRCULAR CTL_CODE( FILE_DEVICE_CED1401, \
239 #define U14_GETCIRCBLK CTL_CODE( FILE_DEVICE_CED1401, \
244 #define U14_FREECIRCBLK CTL_CODE( FILE_DEVICE_CED1401, \
249 //--------------- Structures that are shared with the driver -------------
252 typedef struct /* used for get/set standard 1401 registers */
262 typedef union /* to communicate with 1401 driver status & control funcs */
267 T1401REGISTERS registers;
270 typedef TCSBLOCK* LPTCSBLOCK;
272 typedef struct paramBlk
278 typedef PARAMBLK* PPARAMBLK;
280 typedef struct TransferDesc /* Structure and type for SetTransArea */
282 WORD wArea; /* number of transfer area to set up */
283 void FAR * lpvBuff; /* address of transfer area */
284 DWORD dwLength; /* length of area to set up */
285 short eSize; /* size to move (for swapping on MAC) */
288 typedef TRANSFERDESC FAR * LPTRANSFERDESC;
290 /* This is the structure used to set up a transfer area */
291 typedef struct VXTransferDesc /* use1401.c and use1432x.x use only */
293 WORD wArea; /* number of transfer area to set up */
294 WORD wAddrSel; /* 16 bit selector for area */
295 DWORD dwAddrOfs; /* 32 bit offset for area start */
296 DWORD dwLength; /* length of area to set up */