Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | ||
48 | static 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 | ||
85 | struct channel | |
86 | { | |
87 | long magic; | |
f2cf8e25 AC |
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; | |
1da177e4 LT |
120 | int close_delay; |
121 | int count; | |
122 | int blocked_open; | |
f2cf8e25 | 123 | unsigned long event; |
1da177e4 LT |
124 | int asyncflags; |
125 | uint dev; | |
f2cf8e25 AC |
126 | unsigned long statusflags; |
127 | unsigned long c_iflag; | |
128 | unsigned long c_cflag; | |
129 | unsigned long c_lflag; | |
130 | unsigned long c_oflag; | |
bc9a5154 AV |
131 | unsigned char __iomem *txptr; |
132 | unsigned char __iomem *rxptr; | |
1da177e4 | 133 | struct board_info *board; |
bc9a5154 | 134 | struct board_chan __iomem *brdchan; |
1da177e4 LT |
135 | struct digi_struct digiext; |
136 | struct tty_struct *tty; | |
137 | wait_queue_head_t open_wait; | |
138 | wait_queue_head_t close_wait; | |
f2cf8e25 | 139 | struct work_struct tqueue; |
bc9a5154 | 140 | struct global_data __iomem *mailbox; |
1da177e4 LT |
141 | }; |
142 | ||
143 | struct board_info | |
144 | { | |
f2cf8e25 AC |
145 | unsigned char status; |
146 | unsigned char type; | |
147 | unsigned char altpin; | |
148 | unsigned short numports; | |
149 | unsigned long port; | |
150 | unsigned long membase; | |
bc9a5154 AV |
151 | void __iomem *re_map_port; |
152 | void __iomem *re_map_membase; | |
f2cf8e25 | 153 | unsigned long memory_seg; |
1da177e4 LT |
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 *) ; | |
f2cf8e25 | 162 | unsigned char poller_inhibited ; |
1da177e4 LT |
163 | }; |
164 |