diff options
Diffstat (limited to 'drivers/char/rio/host.h')
-rw-r--r-- | drivers/char/rio/host.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/drivers/char/rio/host.h b/drivers/char/rio/host.h new file mode 100644 index 000000000000..4c65963870a4 --- /dev/null +++ b/drivers/char/rio/host.h | |||
@@ -0,0 +1,134 @@ | |||
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 : host.h | ||
24 | ** SID : 1.2 | ||
25 | ** Last Modified : 11/6/98 11:34:10 | ||
26 | ** Retrieved : 11/6/98 11:34:21 | ||
27 | ** | ||
28 | ** ident @(#)host.h 1.2 | ||
29 | ** | ||
30 | ** ----------------------------------------------------------------------------- | ||
31 | */ | ||
32 | |||
33 | #ifndef __rio_host_h__ | ||
34 | #define __rio_host_h__ | ||
35 | |||
36 | #ifdef SCCS_LABELS | ||
37 | #ifndef lint | ||
38 | static char *_host_h_sccs_ = "@(#)host.h 1.2"; | ||
39 | #endif | ||
40 | #endif | ||
41 | |||
42 | /* | ||
43 | ** the host structure - one per host card in the system. | ||
44 | */ | ||
45 | |||
46 | #define MAX_EXTRA_UNITS 64 | ||
47 | |||
48 | /* | ||
49 | ** Host data structure. This is used for the software equiv. of | ||
50 | ** the host. | ||
51 | */ | ||
52 | struct Host | ||
53 | { | ||
54 | uchar Type; /* RIO_EISA, RIO_MCA, ... */ | ||
55 | uchar Ivec; /* POLLED or ivec number */ | ||
56 | uchar Mode; /* Control stuff */ | ||
57 | uchar Slot; /* Slot */ | ||
58 | volatile caddr_t Caddr; /* KV address of DPRAM */ | ||
59 | volatile struct DpRam *CardP; /* KV address of DPRAM, with overlay */ | ||
60 | paddr_t PaddrP; /* Phys. address of DPRAM */ | ||
61 | char Name[MAX_NAME_LEN]; /* The name of the host */ | ||
62 | uint UniqueNum; /* host unique number */ | ||
63 | spinlock_t HostLock; /* Lock structure for MPX */ | ||
64 | /*struct pci_devinfo PciDevInfo; *//* PCI Bus/Device/Function stuff */ | ||
65 | /*struct lockb HostLock; *//* Lock structure for MPX */ | ||
66 | uint WorkToBeDone; /* set to true each interrupt */ | ||
67 | uint InIntr; /* Being serviced? */ | ||
68 | uint IntSrvDone;/* host's interrupt has been serviced */ | ||
69 | int (*Copy)( caddr_t, caddr_t, int ); /* copy func */ | ||
70 | struct timer_list timer; | ||
71 | /* | ||
72 | ** I M P O R T A N T ! | ||
73 | ** | ||
74 | ** The rest of this data structure is cleared to zero after | ||
75 | ** a RIO_HOST_FOAD command. | ||
76 | */ | ||
77 | |||
78 | ulong Flags; /* Whats going down */ | ||
79 | #define RC_WAITING 0 | ||
80 | #define RC_STARTUP 1 | ||
81 | #define RC_RUNNING 2 | ||
82 | #define RC_STUFFED 3 | ||
83 | #define RC_SOMETHING 4 | ||
84 | #define RC_SOMETHING_NEW 5 | ||
85 | #define RC_SOMETHING_ELSE 6 | ||
86 | #define RC_READY 7 | ||
87 | #define RUN_STATE 7 | ||
88 | /* | ||
89 | ** Boot mode applies to the way in which hosts in this system will | ||
90 | ** boot RTAs | ||
91 | */ | ||
92 | #define RC_BOOT_ALL 0x8 /* Boot all RTAs attached */ | ||
93 | #define RC_BOOT_OWN 0x10 /* Only boot RTAs bound to this system */ | ||
94 | #define RC_BOOT_NONE 0x20 /* Don't boot any RTAs (slave mode) */ | ||
95 | |||
96 | struct Top Topology[LINKS_PER_UNIT]; /* one per link */ | ||
97 | struct Map Mapping[MAX_RUP]; /* Mappings for host */ | ||
98 | struct PHB *PhbP; /* Pointer to the PHB array */ | ||
99 | ushort *PhbNumP; /* Ptr to Number of PHB's */ | ||
100 | struct LPB *LinkStrP ; /* Link Structure Array */ | ||
101 | struct RUP *RupP; /* Sixteen real rups here */ | ||
102 | struct PARM_MAP *ParmMapP; /* points to the parmmap */ | ||
103 | uint ExtraUnits[MAX_EXTRA_UNITS]; /* unknown things */ | ||
104 | uint NumExtraBooted; /* how many of the above */ | ||
105 | /* | ||
106 | ** Twenty logical rups. | ||
107 | ** The first sixteen are the real Rup entries (above), the last four | ||
108 | ** are the link RUPs. | ||
109 | */ | ||
110 | struct UnixRup UnixRups[MAX_RUP+LINKS_PER_UNIT]; | ||
111 | int timeout_id; /* For calling 100 ms delays */ | ||
112 | int timeout_sem;/* For calling 100 ms delays */ | ||
113 | long locks; /* long req'd for set_bit --RR */ | ||
114 | char ____end_marker____; | ||
115 | }; | ||
116 | #define Control CardP->DpControl | ||
117 | #define SetInt CardP->DpSetInt | ||
118 | #define ResetTpu CardP->DpResetTpu | ||
119 | #define ResetInt CardP->DpResetInt | ||
120 | #define Signature CardP->DpSignature | ||
121 | #define Sram1 CardP->DpSram1 | ||
122 | #define Sram2 CardP->DpSram2 | ||
123 | #define Sram3 CardP->DpSram3 | ||
124 | #define Scratch CardP->DpScratch | ||
125 | #define __ParmMapR CardP->DpParmMapR | ||
126 | #define SLX CardP->DpSlx | ||
127 | #define Revision CardP->DpRevision | ||
128 | #define Unique CardP->DpUnique | ||
129 | #define Year CardP->DpYear | ||
130 | #define Week CardP->DpWeek | ||
131 | |||
132 | #define RIO_DUMBPARM 0x0860 /* what not to expect */ | ||
133 | |||
134 | #endif | ||