Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | ** ----------------------------------------------------------------------------- | |
3 | ** | |
4 | ** Perle Specialix driver for Linux | |
5 | ** Ported from existing RIO Driver for SCO sources. | |
6 | * | |
7 | * (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK. | |
8 | * | |
9 | * This program is free software; you can redistribute it and/or modify | |
10 | * it under the terms of the GNU General Public License as published by | |
11 | * the Free Software Foundation; either version 2 of the License, or | |
12 | * (at your option) any later version. | |
13 | * | |
14 | * This program is distributed in the hope that it will be useful, | |
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | * GNU General Public License for more details. | |
18 | * | |
19 | * You should have received a copy of the GNU General Public License | |
20 | * along with this program; if not, write to the Free Software | |
21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
22 | ** | |
23 | ** Module : riospace.h | |
24 | ** SID : 1.2 | |
25 | ** Last Modified : 11/6/98 11:34:13 | |
26 | ** Retrieved : 11/6/98 11:34:22 | |
27 | ** | |
28 | ** ident @(#)riospace.h 1.2 | |
29 | ** | |
30 | ** ----------------------------------------------------------------------------- | |
31 | */ | |
32 | ||
33 | #ifndef __rio_riospace_h__ | |
34 | #define __rio_riospace_h__ | |
35 | ||
1da177e4 LT |
36 | #define RIO_LOCATOR_LEN 16 |
37 | #define MAX_RIO_BOARDS 4 | |
38 | ||
39 | /* | |
40 | ** DONT change this file. At all. Unless you can rebuild the entire | |
41 | ** device driver, which you probably can't, then the rest of the | |
42 | ** driver won't see any changes you make here. So don't make any. | |
43 | ** In particular, it won't be able to see changes to RIO_SLOTS | |
44 | */ | |
45 | ||
8d8706e2 AM |
46 | struct Conf { |
47 | char Locator[24]; | |
1da177e4 LT |
48 | unsigned int StartupTime; |
49 | unsigned int SlowCook; | |
50 | unsigned int IntrPollTime; | |
51 | unsigned int BreakInterval; | |
52 | unsigned int Timer; | |
53 | unsigned int RtaLoadBase; | |
54 | unsigned int HostLoadBase; | |
55 | unsigned int XpHz; | |
56 | unsigned int XpCps; | |
8d8706e2 AM |
57 | char *XpOn; |
58 | char *XpOff; | |
1da177e4 LT |
59 | unsigned int MaxXpCps; |
60 | unsigned int MinXpCps; | |
61 | unsigned int SpinCmds; | |
62 | unsigned int FirstAddr; | |
63 | unsigned int LastAddr; | |
64 | unsigned int BufferSize; | |
65 | unsigned int LowWater; | |
66 | unsigned int LineLength; | |
67 | unsigned int CmdTime; | |
68 | }; | |
69 | ||
70 | /* | |
71 | ** Board types - these MUST correspond to product codes! | |
8d8706e2 | 72 | */ |
1da177e4 LT |
73 | #define RIO_EMPTY 0x0 |
74 | #define RIO_EISA 0x3 | |
75 | #define RIO_RTA_16 0x9 | |
76 | #define RIO_AT 0xA | |
77 | #define RIO_MCA 0xB | |
78 | #define RIO_PCI 0xD | |
79 | #define RIO_RTA 0xE | |
80 | ||
81 | /* | |
82 | ** Board data structure. This is used for configuration info | |
83 | */ | |
8d8706e2 AM |
84 | struct Brd { |
85 | unsigned char Type; /* RIO_EISA, RIO_MCA, RIO_AT, RIO_EMPTY... */ | |
86 | unsigned char Ivec; /* POLLED or ivec number */ | |
87 | unsigned char Mode; /* Control stuff, see below */ | |
1da177e4 LT |
88 | }; |
89 | ||
8d8706e2 AM |
90 | struct Board { |
91 | char Locator[RIO_LOCATOR_LEN]; | |
92 | int NumSlots; | |
93 | struct Brd Boards[MAX_RIO_BOARDS]; | |
1da177e4 LT |
94 | }; |
95 | ||
96 | #define BOOT_FROM_LINK 0x00 | |
97 | #define BOOT_FROM_RAM 0x01 | |
98 | #define EXTERNAL_BUS_OFF 0x00 | |
99 | #define EXTERNAL_BUS_ON 0x02 | |
100 | #define INTERRUPT_DISABLE 0x00 | |
101 | #define INTERRUPT_ENABLE 0x04 | |
102 | #define BYTE_OPERATION 0x00 | |
103 | #define WORD_OPERATION 0x08 | |
104 | #define POLLED INTERRUPT_DISABLE | |
105 | #define IRQ_15 (0x00 | INTERRUPT_ENABLE) | |
106 | #define IRQ_12 (0x10 | INTERRUPT_ENABLE) | |
107 | #define IRQ_11 (0x20 | INTERRUPT_ENABLE) | |
108 | #define IRQ_9 (0x30 | INTERRUPT_ENABLE) | |
109 | #define SLOW_LINKS 0x00 | |
110 | #define FAST_LINKS 0x40 | |
111 | #define SLOW_AT_BUS 0x00 | |
112 | #define FAST_AT_BUS 0x80 | |
113 | #define SLOW_PCI_TP 0x00 | |
114 | #define FAST_PCI_TP 0x80 | |
115 | /* | |
116 | ** Debug levels | |
117 | */ | |
118 | #define DBG_NONE 0x00000000 | |
119 | ||
120 | #define DBG_INIT 0x00000001 | |
121 | #define DBG_OPEN 0x00000002 | |
122 | #define DBG_CLOSE 0x00000004 | |
123 | #define DBG_IOCTL 0x00000008 | |
124 | ||
125 | #define DBG_READ 0x00000010 | |
126 | #define DBG_WRITE 0x00000020 | |
127 | #define DBG_INTR 0x00000040 | |
128 | #define DBG_PROC 0x00000080 | |
129 | ||
130 | #define DBG_PARAM 0x00000100 | |
131 | #define DBG_CMD 0x00000200 | |
132 | #define DBG_XPRINT 0x00000400 | |
133 | #define DBG_POLL 0x00000800 | |
134 | ||
135 | #define DBG_DAEMON 0x00001000 | |
136 | #define DBG_FAIL 0x00002000 | |
137 | #define DBG_MODEM 0x00004000 | |
138 | #define DBG_LIST 0x00008000 | |
139 | ||
140 | #define DBG_ROUTE 0x00010000 | |
141 | #define DBG_UTIL 0x00020000 | |
142 | #define DBG_BOOT 0x00040000 | |
143 | #define DBG_BUFFER 0x00080000 | |
144 | ||
145 | #define DBG_MON 0x00100000 | |
146 | #define DBG_SPECIAL 0x00200000 | |
147 | #define DBG_VPIX 0x00400000 | |
148 | #define DBG_FLUSH 0x00800000 | |
149 | ||
150 | #define DBG_QENABLE 0x01000000 | |
151 | ||
152 | #define DBG_ALWAYS 0x80000000 | |
153 | ||
8d8706e2 | 154 | #endif /* __rio_riospace_h__ */ |