linux/drivers/staging/ced1401/use14_ioc.h
<<
>>
Prefs
   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#define  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
 252typedef 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
 262typedef 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
 270typedef TCSBLOCK*  LPTCSBLOCK;
 271
 272typedef struct paramBlk
 273{
 274    short       sState;
 275    TCSBLOCK    csBlock;
 276} PARAMBLK;
 277
 278typedef PARAMBLK*   PPARAMBLK;
 279
 280typedef struct TransferDesc          /* Structure and type for SetTransArea */
 281{
 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)      */
 286} TRANSFERDESC;
 287
 288typedef TRANSFERDESC FAR *    LPTRANSFERDESC;
 289
 290/* This is the structure used to set up a transfer area */
 291typedef struct VXTransferDesc    /* use1401.c and use1432x.x use only       */
 292{
 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                */
 297} VXTRANSFERDESC;
 298
 299#pragma pack()
 300
 301#endif