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