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