linux/drivers/char/epca.h
<<
>>
Prefs
   1#define XEMPORTS    0xC02
   2#define XEPORTS     0xC22
   3
   4#define MAX_ALLOC   0x100
   5
   6#define MAXBOARDS   12
   7#define FEPCODESEG  0x0200L
   8#define FEPCODE     0x2000L
   9#define BIOSCODE    0xf800L
  10
  11#define MISCGLOBAL  0x0C00L
  12#define NPORT       0x0C22L
  13#define MBOX        0x0C40L
  14#define PORTBASE    0x0C90L
  15
  16/* Begin code defines used for epca_setup */
  17
  18#define INVALID_BOARD_TYPE   0x1
  19#define INVALID_NUM_PORTS    0x2
  20#define INVALID_MEM_BASE     0x4
  21#define INVALID_PORT_BASE    0x8
  22#define INVALID_BOARD_STATUS 0x10
  23#define INVALID_ALTPIN       0x20
  24
  25/* End code defines used for epca_setup */
  26
  27
  28#define FEPCLR      0x00
  29#define FEPMEM      0x02
  30#define FEPRST      0x04
  31#define FEPINT      0x08
  32#define FEPMASK     0x0e
  33#define FEPWIN      0x80
  34
  35#define PCXE    0
  36#define PCXEVE  1
  37#define PCXEM   2   
  38#define EISAXEM 3
  39#define PC64XE  4
  40#define PCXI    5
  41#define PCIXEM  7
  42#define PCICX   8
  43#define PCIXR   9
  44#define PCIXRJ  10
  45#define EPCA_NUM_TYPES 6
  46
  47
  48static char *board_desc[] = 
  49{
  50        "PC/Xe",
  51        "PC/Xeve",
  52        "PC/Xem",
  53        "EISA/Xem",
  54        "PC/64Xe",
  55        "PC/Xi",
  56        "unknown",
  57        "PCI/Xem",
  58        "PCI/CX",
  59        "PCI/Xr",
  60        "PCI/Xrj",
  61};
  62
  63#define STARTC      021
  64#define STOPC       023
  65#define IAIXON      0x2000
  66
  67
  68#define TXSTOPPED  0x1
  69#define LOWWAIT    0x2
  70#define EMPTYWAIT  0x4
  71#define RXSTOPPED  0x8
  72#define TXBUSY     0x10
  73
  74#define DISABLED   0
  75#define ENABLED    1
  76#define OFF        0
  77#define ON         1
  78
  79#define FEPTIMEOUT 200000  
  80#define SERIAL_TYPE_INFO    3
  81#define EPCA_EVENT_HANGUP   1
  82#define EPCA_MAGIC          0x5c6df104L
  83
  84struct channel 
  85{
  86        long   magic;
  87        struct tty_port port;
  88        unsigned char boardnum;
  89        unsigned char channelnum;
  90        unsigned char omodem;         /* FEP output modem status     */
  91        unsigned char imodem;         /* FEP input modem status      */
  92        unsigned char modemfake;      /* Modem values to be forced   */
  93        unsigned char modem;          /* Force values                */
  94        unsigned char hflow;
  95        unsigned char dsr;
  96        unsigned char dcd;
  97        unsigned char m_rts ;           /* The bits used in whatever FEP */
  98        unsigned char m_dcd ;           /* is indiginous to this board to */
  99        unsigned char m_dsr ;           /* represent each of the physical */
 100        unsigned char m_cts ;           /* handshake lines */
 101        unsigned char m_ri ;
 102        unsigned char m_dtr ;
 103        unsigned char stopc;
 104        unsigned char startc;
 105        unsigned char stopca;
 106        unsigned char startca;
 107        unsigned char fepstopc;
 108        unsigned char fepstartc;
 109        unsigned char fepstopca;
 110        unsigned char fepstartca;
 111        unsigned char txwin;
 112        unsigned char rxwin;
 113        unsigned short fepiflag;
 114        unsigned short fepcflag;
 115        unsigned short fepoflag;
 116        unsigned short txbufhead;
 117        unsigned short txbufsize;
 118        unsigned short rxbufhead;
 119        unsigned short rxbufsize;
 120        int    close_delay;
 121        unsigned long  event;
 122        uint   dev;
 123        unsigned long  statusflags;
 124        unsigned long  c_iflag;
 125        unsigned long  c_cflag;
 126        unsigned long  c_lflag;
 127        unsigned long  c_oflag;
 128        unsigned char __iomem *txptr;
 129        unsigned char __iomem *rxptr;
 130        struct board_info           *board;
 131        struct board_chan           __iomem *brdchan;
 132        struct digi_struct          digiext;
 133        struct work_struct          tqueue;
 134        struct global_data          __iomem *mailbox;
 135};
 136
 137struct board_info       
 138{
 139        unsigned char status;
 140        unsigned char type;
 141        unsigned char altpin;
 142        unsigned short numports;
 143        unsigned long port;
 144        unsigned long membase;
 145        void __iomem *re_map_port;
 146        void __iomem *re_map_membase;
 147        unsigned long  memory_seg;
 148        void ( * memwinon )     (struct board_info *, unsigned int) ;
 149        void ( * memwinoff )    (struct board_info *, unsigned int) ;
 150        void ( * globalwinon )  (struct channel *) ;
 151        void ( * txwinon )      (struct channel *) ;
 152        void ( * rxwinon )      (struct channel *) ;
 153        void ( * memoff )       (struct channel *) ;
 154        void ( * assertgwinon ) (struct channel *) ;
 155        void ( * assertmemoff ) (struct channel *) ;
 156        unsigned char poller_inhibited ;
 157};
 158
 159