2005-04-16 15:20:36 -07:00
/*
* * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* *
* * 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 0213 9 , 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
*/
2006-01-11 12:17:49 -08:00
struct Conf {
char Locator [ 24 ] ;
2005-04-16 15:20:36 -07:00
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 ;
2006-01-11 12:17:49 -08:00
char * XpOn ;
char * XpOff ;
2005-04-16 15:20:36 -07:00
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 !
2006-01-11 12:17:49 -08:00
*/
2005-04-16 15:20:36 -07:00
# 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
*/
2006-01-11 12:17:49 -08:00
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 */
2005-04-16 15:20:36 -07:00
} ;
2006-01-11 12:17:49 -08:00
struct Board {
char Locator [ RIO_LOCATOR_LEN ] ;
int NumSlots ;
struct Brd Boards [ MAX_RIO_BOARDS ] ;
2005-04-16 15:20:36 -07:00
} ;
# 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
2006-01-11 12:17:49 -08:00
# endif /* __rio_riospace_h__ */