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