Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v2.6.19-rc2 164 lines 3.9 kB view raw
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_NORMAL 1 81#define SERIAL_TYPE_INFO 3 82#define EPCA_EVENT_HANGUP 1 83#define EPCA_MAGIC 0x5c6df104L 84 85struct channel 86{ 87 long magic; 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 int count; 122 int blocked_open; 123 unsigned long event; 124 int asyncflags; 125 uint dev; 126 unsigned long statusflags; 127 unsigned long c_iflag; 128 unsigned long c_cflag; 129 unsigned long c_lflag; 130 unsigned long c_oflag; 131 unsigned char __iomem *txptr; 132 unsigned char __iomem *rxptr; 133 struct board_info *board; 134 struct board_chan __iomem *brdchan; 135 struct digi_struct digiext; 136 struct tty_struct *tty; 137 wait_queue_head_t open_wait; 138 wait_queue_head_t close_wait; 139 struct work_struct tqueue; 140 struct global_data __iomem *mailbox; 141}; 142 143struct board_info 144{ 145 unsigned char status; 146 unsigned char type; 147 unsigned char altpin; 148 unsigned short numports; 149 unsigned long port; 150 unsigned long membase; 151 void __iomem *re_map_port; 152 void __iomem *re_map_membase; 153 unsigned long memory_seg; 154 void ( * memwinon ) (struct board_info *, unsigned int) ; 155 void ( * memwinoff ) (struct board_info *, unsigned int) ; 156 void ( * globalwinon ) (struct channel *) ; 157 void ( * txwinon ) (struct channel *) ; 158 void ( * rxwinon ) (struct channel *) ; 159 void ( * memoff ) (struct channel *) ; 160 void ( * assertgwinon ) (struct channel *) ; 161 void ( * assertmemoff ) (struct channel *) ; 162 unsigned char poller_inhibited ; 163}; 164