#define XEMPORTS 0xC02 #define XEPORTS 0xC22 #define MAX_ALLOC 0x100 #define MAXBOARDS 12 #define FEPCODESEG 0x0200L #define FEPCODE 0x2000L #define BIOSCODE 0xf800L #define MISCGLOBAL 0x0C00L #define NPORT 0x0C22L #define MBOX 0x0C40L #define PORTBASE 0x0C90L /* Begin code defines used for epca_setup */ #define INVALID_BOARD_TYPE 0x1 #define INVALID_NUM_PORTS 0x2 #define INVALID_MEM_BASE 0x4 #define INVALID_PORT_BASE 0x8 #define INVALID_BOARD_STATUS 0x10 #define INVALID_ALTPIN 0x20 /* End code defines used for epca_setup */ #define FEPCLR 0x00 #define FEPMEM 0x02 #define FEPRST 0x04 #define FEPINT 0x08 #define FEPMASK 0x0e #define FEPWIN 0x80 #define PCXE 0 #define PCXEVE 1 #define PCXEM 2 #define EISAXEM 3 #define PC64XE 4 #define PCXI 5 #define PCIXEM 7 #define PCICX 8 #define PCIXR 9 #define PCIXRJ 10 #define EPCA_NUM_TYPES 6 static char *board_desc[] = { "PC/Xe", "PC/Xeve", "PC/Xem", "EISA/Xem", "PC/64Xe", "PC/Xi", "unknown", "PCI/Xem", "PCI/CX", "PCI/Xr", "PCI/Xrj", }; #define STARTC 021 #define STOPC 023 #define IAIXON 0x2000 #define TXSTOPPED 0x1 #define LOWWAIT 0x2 #define EMPTYWAIT 0x4 #define RXSTOPPED 0x8 #define TXBUSY 0x10 #define DISABLED 0 #define ENABLED 1 #define OFF 0 #define ON 1 #define FEPTIMEOUT 200000 #define SERIAL_TYPE_NORMAL 1 #define SERIAL_TYPE_INFO 3 #define EPCA_EVENT_HANGUP 1 #define EPCA_MAGIC 0x5c6df104L struct channel { long magic; unsigned char boardnum; unsigned char channelnum; unsigned char omodem; /* FEP output modem status */ unsigned char imodem; /* FEP input modem status */ unsigned char modemfake; /* Modem values to be forced */ unsigned char modem; /* Force values */ unsigned char hflow; unsigned char dsr; unsigned char dcd; unsigned char m_rts ; /* The bits used in whatever FEP */ unsigned char m_dcd ; /* is indiginous to this board to */ unsigned char m_dsr ; /* represent each of the physical */ unsigned char m_cts ; /* handshake lines */ unsigned char m_ri ; unsigned char m_dtr ; unsigned char stopc; unsigned char startc; unsigned char stopca; unsigned char startca; unsigned char fepstopc; unsigned char fepstartc; unsigned char fepstopca; unsigned char fepstartca; unsigned char txwin; unsigned char rxwin; unsigned short fepiflag; unsigned short fepcflag; unsigned short fepoflag; unsigned short txbufhead; unsigned short txbufsize; unsigned short rxbufhead; unsigned short rxbufsize; int close_delay; int count; int blocked_open; unsigned long event; int asyncflags; uint dev; unsigned long statusflags; unsigned long c_iflag; unsigned long c_cflag; unsigned long c_lflag; unsigned long c_oflag; unsigned char __iomem *txptr; unsigned char __iomem *rxptr; struct board_info *board; struct board_chan __iomem *brdchan; struct digi_struct digiext; struct tty_struct *tty; wait_queue_head_t open_wait; wait_queue_head_t close_wait; struct work_struct tqueue; struct global_data __iomem *mailbox; }; struct board_info { unsigned char status; unsigned char type; unsigned char altpin; unsigned short numports; unsigned long port; unsigned long membase; void __iomem *re_map_port; void __iomem *re_map_membase; unsigned long memory_seg; void ( * memwinon ) (struct board_info *, unsigned int) ; void ( * memwinoff ) (struct board_info *, unsigned int) ; void ( * globalwinon ) (struct channel *) ; void ( * txwinon ) (struct channel *) ; void ( * rxwinon ) (struct channel *) ; void ( * memoff ) (struct channel *) ; void ( * assertgwinon ) (struct channel *) ; void ( * assertmemoff ) (struct channel *) ; unsigned char poller_inhibited ; };