diff options
Diffstat (limited to 'drivers/char/rio/riodrvr.h')
-rw-r--r-- | drivers/char/rio/riodrvr.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/drivers/char/rio/riodrvr.h b/drivers/char/rio/riodrvr.h new file mode 100644 index 000000000000..bc38ac5dfbde --- /dev/null +++ b/drivers/char/rio/riodrvr.h | |||
@@ -0,0 +1,144 @@ | |||
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 : riodrvr.h | ||
24 | ** SID : 1.3 | ||
25 | ** Last Modified : 11/6/98 09:22:46 | ||
26 | ** Retrieved : 11/6/98 09:22:46 | ||
27 | ** | ||
28 | ** ident @(#)riodrvr.h 1.3 | ||
29 | ** | ||
30 | ** ----------------------------------------------------------------------------- | ||
31 | */ | ||
32 | |||
33 | #ifndef __riodrvr_h | ||
34 | #define __riodrvr_h | ||
35 | |||
36 | #include <asm/param.h> /* for HZ */ | ||
37 | |||
38 | #ifdef SCCS_LABELS | ||
39 | static char *_riodrvr_h_sccs_ = "@(#)riodrvr.h 1.3"; | ||
40 | #endif | ||
41 | |||
42 | #define MEMDUMP_SIZE 32 | ||
43 | #define MOD_DISABLE (RIO_NOREAD|RIO_NOWRITE|RIO_NOXPRINT) | ||
44 | |||
45 | |||
46 | struct rio_info { | ||
47 | int mode; /* Intr or polled, word/byte */ | ||
48 | spinlock_t RIOIntrSem; /* Interrupt thread sem */ | ||
49 | int current_chan; /* current channel */ | ||
50 | int RIOFailed; /* Not initialised ? */ | ||
51 | int RIOInstallAttempts; /* no. of rio-install() calls */ | ||
52 | int RIOLastPCISearch; /* status of last search */ | ||
53 | int RIONumHosts; /* Number of RIO Hosts */ | ||
54 | struct Host * RIOHosts; /* RIO Host values */ | ||
55 | struct Port **RIOPortp; /* RIO port values */ | ||
56 | /* | ||
57 | ** 02.03.1999 ARG - ESIL 0820 fix | ||
58 | ** We no longer use RIOBootMode | ||
59 | ** | ||
60 | int RIOBootMode; * RIO boot mode * | ||
61 | ** | ||
62 | */ | ||
63 | int RIOPrintDisabled; /* RIO printing disabled ? */ | ||
64 | int RIOPrintLogState; /* RIO printing state ? */ | ||
65 | int RIOPolling; /* Polling ? */ | ||
66 | /* | ||
67 | ** 09.12.1998 ARG - ESIL 0776 part fix | ||
68 | ** The 'RIO_QUICK_CHECK' ioctl was using RIOHalted. | ||
69 | ** The fix for this ESIL introduces another member (RIORtaDisCons) here to be | ||
70 | ** updated in RIOConCon() - to keep track of RTA connections/disconnections. | ||
71 | ** 'RIO_QUICK_CHECK' now returns the value of RIORtaDisCons. | ||
72 | */ | ||
73 | int RIOHalted; /* halted ? */ | ||
74 | int RIORtaDisCons; /* RTA connections/disconnections */ | ||
75 | uint RIOReadCheck; /* Rio read check */ | ||
76 | uint RIONoMessage; /* To display message or not */ | ||
77 | uint RIONumBootPkts; /* how many packets for an RTA */ | ||
78 | uint RIOBootCount; /* size of RTA code */ | ||
79 | uint RIOBooting; /* count of outstanding boots */ | ||
80 | uint RIOSystemUp; /* Booted ?? */ | ||
81 | uint RIOCounting; /* for counting interrupts */ | ||
82 | uint RIOIntCount; /* # of intr since last check */ | ||
83 | uint RIOTxCount; /* number of xmit intrs */ | ||
84 | uint RIORxCount; /* number of rx intrs */ | ||
85 | uint RIORupCount; /* number of rup intrs */ | ||
86 | int RIXTimer; | ||
87 | int RIOBufferSize; /* Buffersize */ | ||
88 | int RIOBufferMask; /* Buffersize */ | ||
89 | |||
90 | int RIOFirstMajor; /* First host card's major no */ | ||
91 | |||
92 | uint RIOLastPortsMapped; /* highest port number known */ | ||
93 | uint RIOFirstPortsMapped; /* lowest port number known */ | ||
94 | |||
95 | uint RIOLastPortsBooted; /* highest port number running */ | ||
96 | uint RIOFirstPortsBooted; /* lowest port number running */ | ||
97 | |||
98 | uint RIOLastPortsOpened; /* highest port number running */ | ||
99 | uint RIOFirstPortsOpened; /* lowest port number running */ | ||
100 | |||
101 | /* Flag to say that the topology information has been changed. */ | ||
102 | uint RIOQuickCheck; | ||
103 | uint CdRegister; /* ??? */ | ||
104 | int RIOSignalProcess; /* Signalling process */ | ||
105 | int rio_debug; /* To debug ... */ | ||
106 | int RIODebugWait; /* For what ??? */ | ||
107 | int tpri; /* Thread prio */ | ||
108 | int tid; /* Thread id */ | ||
109 | uint _RIO_Polled; /* Counter for polling */ | ||
110 | uint _RIO_Interrupted; /* Counter for interrupt */ | ||
111 | int intr_tid; /* iointset return value */ | ||
112 | int TxEnSem; /* TxEnable Semaphore */ | ||
113 | |||
114 | |||
115 | struct Error RIOError; /* to Identify what went wrong */ | ||
116 | struct Conf RIOConf; /* Configuration ??? */ | ||
117 | struct ttystatics channel[RIO_PORTS]; /* channel information */ | ||
118 | char RIOBootPackets[1+(SIXTY_FOUR_K/RTA_BOOT_DATA_SIZE)] | ||
119 | [RTA_BOOT_DATA_SIZE]; | ||
120 | struct Map RIOConnectTable[TOTAL_MAP_ENTRIES]; | ||
121 | struct Map RIOSavedTable[TOTAL_MAP_ENTRIES]; | ||
122 | |||
123 | /* RTA to host binding table for master/slave operation */ | ||
124 | ulong RIOBindTab[MAX_RTA_BINDINGS]; | ||
125 | /* RTA memory dump variable */ | ||
126 | uchar RIOMemDump[MEMDUMP_SIZE]; | ||
127 | struct ModuleInfo RIOModuleTypes[MAX_MODULE_TYPES]; | ||
128 | |||
129 | }; | ||
130 | |||
131 | |||
132 | #ifdef linux | ||
133 | #define debug(x) printk x | ||
134 | #else | ||
135 | #define debug(x) kkprintf x | ||
136 | #endif | ||
137 | |||
138 | |||
139 | |||
140 | #define RIO_RESET_INT 0x7d80 | ||
141 | #define WRBYTE(x,y) *(volatile unsigned char *)((x)) = \ | ||
142 | (unsigned char)(y) | ||
143 | |||
144 | #endif /* __riodrvr.h */ | ||