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