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 36 #ifdef SCCS_LABELS 37 static char *_riospace_h_sccs_ = "@(#)riospace.h 1.2"; 38 #endif 39 40 #define RIO_LOCATOR_LEN 16 41 #define MAX_RIO_BOARDS 4 42 43 /* 44 ** DONT change this file. At all. Unless you can rebuild the entire 45 ** device driver, which you probably can't, then the rest of the 46 ** driver won't see any changes you make here. So don't make any. 47 ** In particular, it won't be able to see changes to RIO_SLOTS 48 */ 49 50 struct Conf 51 { 52 char Locator[24]; 53 unsigned int StartupTime; 54 unsigned int SlowCook; 55 unsigned int IntrPollTime; 56 unsigned int BreakInterval; 57 unsigned int Timer; 58 unsigned int RtaLoadBase; 59 unsigned int HostLoadBase; 60 unsigned int XpHz; 61 unsigned int XpCps; 62 char *XpOn; 63 char *XpOff; 64 unsigned int MaxXpCps; 65 unsigned int MinXpCps; 66 unsigned int SpinCmds; 67 unsigned int FirstAddr; 68 unsigned int LastAddr; 69 unsigned int BufferSize; 70 unsigned int LowWater; 71 unsigned int LineLength; 72 unsigned int CmdTime; 73 }; 74 75 /* 76 ** Board types - these MUST correspond to product codes! 77 */ 78 #define RIO_EMPTY 0x0 79 #define RIO_EISA 0x3 80 #define RIO_RTA_16 0x9 81 #define RIO_AT 0xA 82 #define RIO_MCA 0xB 83 #define RIO_PCI 0xD 84 #define RIO_RTA 0xE 85 86 /* 87 ** Board data structure. This is used for configuration info 88 */ 89 struct Brd 90 { 91 unsigned char Type; /* RIO_EISA, RIO_MCA, RIO_AT, RIO_EMPTY... */ 92 unsigned char Ivec; /* POLLED or ivec number */ 93 unsigned char Mode; /* Control stuff, see below */ 94 }; 95 96 struct Board 97 { 98 char Locator[RIO_LOCATOR_LEN]; 99 int NumSlots; 100 struct Brd Boards[MAX_RIO_BOARDS]; 101 }; 102 103 #define BOOT_FROM_LINK 0x00 104 #define BOOT_FROM_RAM 0x01 105 #define EXTERNAL_BUS_OFF 0x00 106 #define EXTERNAL_BUS_ON 0x02 107 #define INTERRUPT_DISABLE 0x00 108 #define INTERRUPT_ENABLE 0x04 109 #define BYTE_OPERATION 0x00 110 #define WORD_OPERATION 0x08 111 #define POLLED INTERRUPT_DISABLE 112 #define IRQ_15 (0x00 | INTERRUPT_ENABLE) 113 #define IRQ_12 (0x10 | INTERRUPT_ENABLE) 114 #define IRQ_11 (0x20 | INTERRUPT_ENABLE) 115 #define IRQ_9 (0x30 | INTERRUPT_ENABLE) 116 #define SLOW_LINKS 0x00 117 #define FAST_LINKS 0x40 118 #define SLOW_AT_BUS 0x00 119 #define FAST_AT_BUS 0x80 120 #define SLOW_PCI_TP 0x00 121 #define FAST_PCI_TP 0x80 122 /* 123 ** Debug levels 124 */ 125 #define DBG_NONE 0x00000000 126 127 #define DBG_INIT 0x00000001 128 #define DBG_OPEN 0x00000002 129 #define DBG_CLOSE 0x00000004 130 #define DBG_IOCTL 0x00000008 131 132 #define DBG_READ 0x00000010 133 #define DBG_WRITE 0x00000020 134 #define DBG_INTR 0x00000040 135 #define DBG_PROC 0x00000080 136 137 #define DBG_PARAM 0x00000100 138 #define DBG_CMD 0x00000200 139 #define DBG_XPRINT 0x00000400 140 #define DBG_POLL 0x00000800 141 142 #define DBG_DAEMON 0x00001000 143 #define DBG_FAIL 0x00002000 144 #define DBG_MODEM 0x00004000 145 #define DBG_LIST 0x00008000 146 147 #define DBG_ROUTE 0x00010000 148 #define DBG_UTIL 0x00020000 149 #define DBG_BOOT 0x00040000 150 #define DBG_BUFFER 0x00080000 151 152 #define DBG_MON 0x00100000 153 #define DBG_SPECIAL 0x00200000 154 #define DBG_VPIX 0x00400000 155 #define DBG_FLUSH 0x00800000 156 157 #define DBG_QENABLE 0x01000000 158 159 #define DBG_ALWAYS 0x80000000 160 161 #endif /* __rio_riospace_h__ */ 162