linux/drivers/staging/generic_serial/rio/riospace.h
<<
>>
Prefs
   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#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
  46struct Conf {
  47        char Locator[24];
  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;
  57        char *XpOn;
  58        char *XpOff;
  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!
  72*/
  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*/
  84struct 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 */
  88};
  89
  90struct Board {
  91        char Locator[RIO_LOCATOR_LEN];
  92        int NumSlots;
  93        struct Brd Boards[MAX_RIO_BOARDS];
  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
 154#endif                          /* __rio_riospace_h__ */
 155