1 |
1275 |
phoenix |
/* $Id: invent.h,v 1.1.1.1 2004-04-15 02:42:27 phoenix Exp $
|
2 |
|
|
*
|
3 |
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
4 |
|
|
* License. See the file "COPYING" in the main directory of this archive
|
5 |
|
|
* for more details.
|
6 |
|
|
*
|
7 |
|
|
* Copyright (C) 1992 - 1997, 2000-2003 Silicon Graphics, Inc. All rights reserved.
|
8 |
|
|
*/
|
9 |
|
|
#ifndef _ASM_IA64_SN_INVENT_H
|
10 |
|
|
#define _ASM_IA64_SN_INVENT_H
|
11 |
|
|
|
12 |
|
|
#include <linux/types.h>
|
13 |
|
|
#include <asm/sn/sgi.h>
|
14 |
|
|
/*
|
15 |
|
|
* sys/sn/invent.h -- Kernel Hardware Inventory
|
16 |
|
|
*
|
17 |
|
|
* As the system boots, a list of recognized devices is assembled.
|
18 |
|
|
* This list can then be accessed through syssgi() by user-level programs
|
19 |
|
|
* so that they can learn about available peripherals and the system's
|
20 |
|
|
* hardware configuration.
|
21 |
|
|
*
|
22 |
|
|
* The data is organized into a linked list of structures that are composed
|
23 |
|
|
* of an inventory item class and a class-specific type. Each instance may
|
24 |
|
|
* also specify a 32-bit "state" which might be size, readiness, or
|
25 |
|
|
* anything else that's relevant.
|
26 |
|
|
*
|
27 |
|
|
*/
|
28 |
|
|
|
29 |
|
|
#define major_t int
|
30 |
|
|
#define minor_t int
|
31 |
|
|
#define app32_ptr_t unsigned long
|
32 |
|
|
#define graph_vertex_place_t long
|
33 |
|
|
#define GRAPH_VERTEX_NONE ((vertex_hdl_t)-1)
|
34 |
|
|
#define GRAPH_EDGE_PLACE_NONE ((graph_edge_place_t)0)
|
35 |
|
|
#define GRAPH_INFO_PLACE_NONE ((graph_info_place_t)0)
|
36 |
|
|
#define GRAPH_VERTEX_PLACE_NONE ((graph_vertex_place_t)0)
|
37 |
|
|
|
38 |
|
|
|
39 |
|
|
typedef struct inventory_s {
|
40 |
|
|
struct inventory_s *inv_next; /* next inventory record in list */
|
41 |
|
|
int inv_class; /* class of object */
|
42 |
|
|
int inv_type; /* class sub-type of object */
|
43 |
|
|
major_t inv_controller; /* object major identifier */
|
44 |
|
|
minor_t inv_unit; /* object minor identifier */
|
45 |
|
|
int inv_state; /* information specific to object or
|
46 |
|
|
class */
|
47 |
|
|
} inventory_t;
|
48 |
|
|
|
49 |
|
|
typedef struct cpu_inv_s {
|
50 |
|
|
int cpuflavor; /* differentiate processor */
|
51 |
|
|
int cpufq; /* cpu frequency */
|
52 |
|
|
int sdsize; /* secondary data cache size */
|
53 |
|
|
int sdfreq; /* speed of the secondary cache */
|
54 |
|
|
} cpu_inv_t;
|
55 |
|
|
|
56 |
|
|
|
57 |
|
|
typedef struct diag_inv_s{
|
58 |
|
|
char name[80];
|
59 |
|
|
int diagval;
|
60 |
|
|
int physid;
|
61 |
|
|
int virtid;
|
62 |
|
|
} diag_inv_t;
|
63 |
|
|
|
64 |
|
|
|
65 |
|
|
typedef struct router_inv_s{
|
66 |
|
|
char portmap[80]; /* String indicating which ports int/ext */
|
67 |
|
|
char type[40]; /* String name: e.g. "star", "meta", etc. */
|
68 |
|
|
int freq; /* From hub */
|
69 |
|
|
int rev; /* From hub */
|
70 |
|
|
} router_inv_t;
|
71 |
|
|
|
72 |
|
|
|
73 |
|
|
/*
|
74 |
|
|
* NOTE: This file is a central registry for inventory IDs for each
|
75 |
|
|
* class of inventory object. It is important to keep the central copy
|
76 |
|
|
* of this file up-to-date with the work going on in various engineering
|
77 |
|
|
* projects. When making changes to this file in an engineering project
|
78 |
|
|
* tree, please make those changes separately from any others and then
|
79 |
|
|
* merge the changes to this file into the main line trees in order to
|
80 |
|
|
* prevent other engineering projects from conflicting with your ID
|
81 |
|
|
* allocations.
|
82 |
|
|
*/
|
83 |
|
|
|
84 |
|
|
|
85 |
|
|
/* Inventory Classes */
|
86 |
|
|
/* when adding a new class, add also to classes[] in hinv.c */
|
87 |
|
|
#define INV_PROCESSOR 1
|
88 |
|
|
#define INV_DISK 2
|
89 |
|
|
#define INV_MEMORY 3
|
90 |
|
|
#define INV_SERIAL 4
|
91 |
|
|
#define INV_PARALLEL 5
|
92 |
|
|
#define INV_TAPE 6
|
93 |
|
|
#define INV_GRAPHICS 7
|
94 |
|
|
#define INV_NETWORK 8
|
95 |
|
|
#define INV_SCSI 9 /* SCSI devices other than disk and tape */
|
96 |
|
|
#define INV_AUDIO 10
|
97 |
|
|
#define INV_IOBD 11
|
98 |
|
|
#define INV_VIDEO 12
|
99 |
|
|
#define INV_BUS 13
|
100 |
|
|
#define INV_MISC 14 /* miscellaneous: a catchall */
|
101 |
|
|
/*** add post-5.2 classes here for backward compatibility ***/
|
102 |
|
|
#define INV_COMPRESSION 15
|
103 |
|
|
#define INV_VSCSI 16 /* SCSI devices on jag other than disk and tape */
|
104 |
|
|
#define INV_DISPLAY 17
|
105 |
|
|
#define INV_UNC_SCSILUN 18 /* Unconnected SCSI lun */
|
106 |
|
|
#define INV_PCI 19 /* PCI Bus */
|
107 |
|
|
#define INV_PCI_NO_DRV 20 /* PCI Bus without any driver */
|
108 |
|
|
#define INV_PROM 21 /* Different proms in the system */
|
109 |
|
|
#define INV_IEEE1394 22 /* IEEE1394 devices */
|
110 |
|
|
#define INV_RPS 23 /* redundant power source */
|
111 |
|
|
#define INV_TPU 24 /* Tensor Processing Unit */
|
112 |
|
|
#define INV_FCNODE 25 /* Helper class for SCSI classes, not in classes[] */
|
113 |
|
|
#define INV_USB 26 /* Universal Serial Bus */
|
114 |
|
|
#define INV_1394NODE 27 /* helper class for 1394/SPB2 classes, not in classes[] */
|
115 |
|
|
|
116 |
|
|
/* types for class processor */
|
117 |
|
|
#define INV_CPUBOARD 1
|
118 |
|
|
#define INV_CPUCHIP 2
|
119 |
|
|
#define INV_FPUCHIP 3
|
120 |
|
|
#define INV_CCSYNC 4 /* CC Rev 2+ sync join counter */
|
121 |
|
|
|
122 |
|
|
/* states for cpu and fpu chips are revision numbers */
|
123 |
|
|
|
124 |
|
|
/* cpuboard states */
|
125 |
|
|
#define INV_IP20BOARD 10
|
126 |
|
|
#define INV_IP19BOARD 11
|
127 |
|
|
#define INV_IP22BOARD 12
|
128 |
|
|
#define INV_IP21BOARD 13
|
129 |
|
|
#define INV_IP26BOARD 14
|
130 |
|
|
#define INV_IP25BOARD 15
|
131 |
|
|
#define INV_IP30BOARD 16
|
132 |
|
|
#define INV_IP28BOARD 17
|
133 |
|
|
#define INV_IP32BOARD 18
|
134 |
|
|
#define INV_IP27BOARD 19
|
135 |
|
|
#define INV_IPMHSIMBOARD 20
|
136 |
|
|
#define INV_IP33BOARD 21
|
137 |
|
|
#define INV_IP35BOARD 22
|
138 |
|
|
|
139 |
|
|
/* types for class INV_IOBD */
|
140 |
|
|
#define INV_EVIO 2 /* EVEREST I/O board */
|
141 |
|
|
#define INV_O200IO 3 /* Origin 200 base I/O */
|
142 |
|
|
|
143 |
|
|
/* IO board types for origin2000 for class INV_IOBD*/
|
144 |
|
|
|
145 |
|
|
#define INV_O2000BASEIO 0x21
|
146 |
|
|
#define INV_O2000MSCSI 0x22
|
147 |
|
|
#define INV_O2000MENET 0x23
|
148 |
|
|
#define INV_O2000HIPPI 0x24
|
149 |
|
|
#define INV_O2000GFX 0x25
|
150 |
|
|
#define INV_O2000HAROLD 0x26
|
151 |
|
|
#define INV_O2000VME 0x27
|
152 |
|
|
#define INV_O2000MIO 0x28
|
153 |
|
|
#define INV_O2000FC 0x29
|
154 |
|
|
#define INV_O2000LINC 0x2a
|
155 |
|
|
|
156 |
|
|
#define INV_PCIADAP 4
|
157 |
|
|
/* states for class INV_IOBD type INV_EVERESTIO -- value of eb_type field */
|
158 |
|
|
#define INV_IO4_REV1 0x21
|
159 |
|
|
|
160 |
|
|
/* types for class disk */
|
161 |
|
|
/* NB: types MUST be unique within a class.
|
162 |
|
|
Please check this if adding new types. */
|
163 |
|
|
|
164 |
|
|
#define INV_SCSICONTROL 1
|
165 |
|
|
#define INV_SCSIDRIVE 2
|
166 |
|
|
#define INV_SCSIFLOPPY 5 /* also cdroms, optical disks, etc. */
|
167 |
|
|
#define INV_JAGUAR 16 /* Interphase Jaguar */
|
168 |
|
|
#define INV_VSCSIDRIVE 17 /* Disk connected to Jaguar */
|
169 |
|
|
#define INV_GIO_SCSICONTROL 18 /* optional GIO SCSI controller */
|
170 |
|
|
#define INV_SCSIRAID 19 /* SCSI attached RAID */
|
171 |
|
|
#define INV_XLVGEN 20 /* Generic XLV disk device */
|
172 |
|
|
#define INV_PCCARD 21 /* PC-card (PCMCIA) devices */
|
173 |
|
|
#define INV_PCI_SCSICONTROL 22 /* optional PCI SCSI controller */
|
174 |
|
|
|
175 |
|
|
/* states for INV_SCSICONTROL disk type; indicate which chip rev;
|
176 |
|
|
* for 93A and B, unit field has microcode rev. */
|
177 |
|
|
#define INV_WD93 0 /* WD 33C93 */
|
178 |
|
|
#define INV_WD93A 1 /* WD 33C93A */
|
179 |
|
|
#define INV_WD93B 2 /* WD 33C93B */
|
180 |
|
|
#define INV_WD95A 3 /* WD 33C95A */
|
181 |
|
|
#define INV_SCIP95 4 /* SCIP with a WD 33C95A */
|
182 |
|
|
#define INV_ADP7880 5 /* Adaptec 7880 (single channel) */
|
183 |
|
|
#define INV_QL_REV1 6 /* qlogic 1040 */
|
184 |
|
|
#define INV_QL_REV2 7 /* qlogic 1040A */
|
185 |
|
|
#define INV_QL_REV2_4 8 /* qlogic 1040A rev 4 */
|
186 |
|
|
#define INV_QL_REV3 9 /* qlogic 1040B */
|
187 |
|
|
#define INV_FCADP 10 /* Adaptec Emerald Fibrechannel */
|
188 |
|
|
#define INV_QL_REV4 11 /* qlogic 1040B rev 2 */
|
189 |
|
|
#define INV_QL 12 /* Unknown QL version */
|
190 |
|
|
#define INV_QL_1240 13 /* qlogic 1240 */
|
191 |
|
|
#define INV_QL_1080 14 /* qlogic 1080 */
|
192 |
|
|
#define INV_QL_1280 15 /* qlogic 1280 */
|
193 |
|
|
#define INV_QL_10160 16 /* qlogic 10160 */
|
194 |
|
|
#define INV_QL_12160 17 /* qlogic 12160 */
|
195 |
|
|
#define INV_QL_2100 18 /* qLogic 2100 Fibrechannel */
|
196 |
|
|
#define INV_QL_2200 19 /* qLogic 2200 Fibrechannel */
|
197 |
|
|
#define INV_PR_HIO_D 20 /* Prisa HIO Dual channel */
|
198 |
|
|
#define INV_PR_PCI64_D 21 /* Prisa PCI-64 Dual channel */
|
199 |
|
|
#define INV_QL_2200A 22 /* qLogic 2200A Fibrechannel */
|
200 |
|
|
#define INV_SBP2 23 /* SBP2 protocol over OHCI on 1394 */
|
201 |
|
|
#define INV_QL_2300 24 /* qLogic 2300 Fibrechannel */
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
/* states for INV_SCSIDRIVE type of class disk */
|
205 |
|
|
#define INV_RAID5_LUN 0x100
|
206 |
|
|
#define INV_PRIMARY 0x200 /* primary path */
|
207 |
|
|
#define INV_ALTERNATE 0x400 /* alternate path */
|
208 |
|
|
#define INV_FAILED 0x800 /* path has failed */
|
209 |
|
|
#define INV_XVMVOL 0x1000 /* disk is managed by XVM */
|
210 |
|
|
|
211 |
|
|
/* states for INV_SCSIFLOPPY type of class disk */
|
212 |
|
|
#define INV_TEAC_FLOPPY 1 /* TEAC 3 1/2 inch floppy drive */
|
213 |
|
|
#define INV_INSITE_FLOPPY 2 /* INSITE, IOMEGA Io20S, SyQuest floppy drives */
|
214 |
|
|
|
215 |
|
|
/* END OF CLASS DISK TYPES */
|
216 |
|
|
|
217 |
|
|
/* types for class memory */
|
218 |
|
|
/* NB. the states for class memory are sizes in bytes */
|
219 |
|
|
#define INV_MAIN 1
|
220 |
|
|
#define INV_DCACHE 3
|
221 |
|
|
#define INV_ICACHE 4
|
222 |
|
|
#define INV_WBUFFER 5
|
223 |
|
|
#define INV_SDCACHE 6
|
224 |
|
|
#define INV_SICACHE 7
|
225 |
|
|
#define INV_SIDCACHE 8
|
226 |
|
|
#define INV_MAIN_MB 9
|
227 |
|
|
#define INV_HUBSPC 10 /* HUBSPC */
|
228 |
|
|
#define INV_TIDCACHE 11
|
229 |
|
|
|
230 |
|
|
/* types for class serial */
|
231 |
|
|
#define INV_CDSIO 1 /* Central Data serial board */
|
232 |
|
|
#define INV_T3270 2 /* T3270 emulation */
|
233 |
|
|
#define INV_GSE 3 /* SpectraGraphics Gerbil coax cable */
|
234 |
|
|
#define INV_SI 4 /* SNA SDLC controller */
|
235 |
|
|
#define INV_M333X25 6 /* X.25 controller */
|
236 |
|
|
#define INV_CDSIO_E 7 /* Central Data serial board on E space */
|
237 |
|
|
#define INV_ONBOARD 8 /* Serial ports per CPU board */
|
238 |
|
|
#define INV_EPC_SERIAL 9 /* EVEREST I/O EPC serial port */
|
239 |
|
|
#define INV_ICA 10 /* IRIS (IBM) Channel Adapter card */
|
240 |
|
|
#define INV_VSC 11 /* SBE VME Synch Comm board */
|
241 |
|
|
#define INV_ISC 12 /* SBE ISA Synch Comm board */
|
242 |
|
|
#define INV_GSC 13 /* SGI GIO Synch Comm board */
|
243 |
|
|
#define INV_ASO_SERIAL 14 /* serial portion of SGI ASO board */
|
244 |
|
|
#define INV_PSC 15 /* SBE PCI Synch Comm board */
|
245 |
|
|
#define INV_IOC3_DMA 16 /* DMA mode IOC3 serial */
|
246 |
|
|
#define INV_IOC3_PIO 17 /* PIO mode IOC3 serial */
|
247 |
|
|
#define INV_INVISIBLE 18 /* invisible inventory entry for kernel use */
|
248 |
|
|
#define INV_ISA_DMA 19 /* DMA mode ISA serial -- O2 */
|
249 |
|
|
|
250 |
|
|
/* types for class parallel */
|
251 |
|
|
#define INV_GPIB 2 /* National Instrument GPIB board */
|
252 |
|
|
#define INV_GPIB_E 3 /* National Instrument GPIB board on E space*/
|
253 |
|
|
#define INV_EPC_PLP 4 /* EVEREST I/O EPC Parallel Port */
|
254 |
|
|
#define INV_ONBOARD_PLP 5 /* Integral parallel port,
|
255 |
|
|
state = 0 -> output only
|
256 |
|
|
state = 1 -> bi-directional */
|
257 |
|
|
#define INV_EPP_ECP_PLP 6 /* Integral EPP/ECP parallel port */
|
258 |
|
|
#define INV_EPP_PFD 7 /* External EPP parallel peripheral */
|
259 |
|
|
|
260 |
|
|
/* types for class tape */
|
261 |
|
|
#define INV_SCSIQIC 1 /* Any SCSI tape, not just QIC{24,150}... */
|
262 |
|
|
#define INV_VSCSITAPE 4 /* SCSI tape connected to Jaguar */
|
263 |
|
|
|
264 |
|
|
/* sub types for type INV_SCSIQIC and INV_VSCSITAPE (in state) */
|
265 |
|
|
#define TPUNKNOWN 0 /* type not known */
|
266 |
|
|
#define TPQIC24 1 /* QIC24 1/4" cartridge */
|
267 |
|
|
#define TPDAT 2 /* 4mm Digital Audio Tape cartridge */
|
268 |
|
|
#define TPQIC150 3 /* QIC150 1/4" cartridge */
|
269 |
|
|
#define TP9TRACK 4 /* 9 track reel */
|
270 |
|
|
#define TP8MM_8200 5 /* 8 mm video tape cartridge */
|
271 |
|
|
#define TP8MM_8500 6 /* 8 mm video tape cartridge */
|
272 |
|
|
#define TPQIC1000 7 /* QIC1000 1/4" cartridge */
|
273 |
|
|
#define TPQIC1350 8 /* QIC1350 1/4" cartridge */
|
274 |
|
|
#define TP3480 9 /* 3480 compatible cartridge */
|
275 |
|
|
#define TPDLT 10 /* DEC Digital Linear Tape cartridge */
|
276 |
|
|
#define TPD2 11 /* D2 tape cartridge */
|
277 |
|
|
#define TPDLTSTACKER 12 /* DEC Digital Linear Tape stacker */
|
278 |
|
|
#define TPNTP 13 /* IBM Magstar 3590 Tape Device cartridge */
|
279 |
|
|
#define TPNTPSTACKER 14 /* IBM Magstar 3590 Tape Device stacker */
|
280 |
|
|
#define TPSTK9490 15 /* StorageTeK 9490 */
|
281 |
|
|
#define TPSTKSD3 16 /* StorageTeK SD3 */
|
282 |
|
|
#define TPGY10 17 /* Sony GY-10 */
|
283 |
|
|
#define TP8MM_8900 18 /* 8 mm (AME) tape cartridge */
|
284 |
|
|
#define TPMGSTRMP 19 /* IBM Magster MP 3570 cartridge */
|
285 |
|
|
#define TPMGSTRMPSTCKR 20 /* IBM Magstar MP stacker */
|
286 |
|
|
#define TPSTK4791 21 /* StorageTek 4791 */
|
287 |
|
|
#define TPSTK4781 22 /* StorageTek 4781 */
|
288 |
|
|
#define TPFUJDIANA1 23 /* Fujitsu Diana-1 (M1016/M1017) */
|
289 |
|
|
#define TPFUJDIANA2 24 /* Fujitsu Diana-2 (M2483) */
|
290 |
|
|
#define TPFUJDIANA3 25 /* Fujitsu Diana-3 (M2488) */
|
291 |
|
|
#define TP8MM_AIT 26 /* Sony AIT format tape */
|
292 |
|
|
#define TPTD3600 27 /* Philips TD3600 */
|
293 |
|
|
#define TPTD3600STCKR 28 /* Philips TD3600 stacker */
|
294 |
|
|
#define TPNCTP 29 /* Philips NCTP */
|
295 |
|
|
#define TPGY2120 30 /* Sony GY-2120 (replaces GY-10) */
|
296 |
|
|
#define TPOVL490E 31 /* Overland Data L490E (3490E compatible) */
|
297 |
|
|
#define TPSTK9840 32 /* StorageTeK 9840 (aka Eagle) */
|
298 |
|
|
|
299 |
|
|
/* Diagnostics inventory */
|
300 |
|
|
#define INV_CPUDIAGVAL 70
|
301 |
|
|
|
302 |
|
|
|
303 |
|
|
/*
|
304 |
|
|
* GFX invent is a subset of gfxinfo
|
305 |
|
|
*/
|
306 |
|
|
|
307 |
|
|
/* types for class graphics */
|
308 |
|
|
#define INV_GR1BOARD 1 /* GR1 (Eclipse) graphics */
|
309 |
|
|
#define INV_GR1BP 2 /* OBSOLETE - use INV_GR1BIT24 instead */
|
310 |
|
|
#define INV_GR1ZBUFFER 3 /* OBSOLETE - use INV_GR1ZBUF24 instead */
|
311 |
|
|
#define INV_GRODEV 4 /* Clover1 graphics */
|
312 |
|
|
#define INV_GMDEV 5 /* GT graphics */
|
313 |
|
|
#define INV_CG2 6 /* CG2 composite video/genlock board */
|
314 |
|
|
#define INV_VMUXBOARD 7 /* VMUX video mux board */
|
315 |
|
|
#define INV_VGX 8 /* VGX (PowerVision) graphics */
|
316 |
|
|
#define INV_VGXT 9 /* VGXT (PowerVision) graphics with IMP5s. */
|
317 |
|
|
#define INV_LIGHT 10 /* LIGHT graphics */
|
318 |
|
|
#define INV_GR2 11 /* EXPRESS graphics */
|
319 |
|
|
#define INV_RE 12 /* RealityEngine graphics */
|
320 |
|
|
#define INV_VTX 13 /* RealityEngine graphics - VTX variant */
|
321 |
|
|
#define INV_NEWPORT 14 /* Newport graphics */
|
322 |
|
|
#define INV_MGRAS 15 /* Mardigras graphics */
|
323 |
|
|
#define INV_IR 16 /* InfiniteReality graphics */
|
324 |
|
|
#define INV_CRIME 17 /* Moosehead on board CRIME graphics */
|
325 |
|
|
#define INV_IR2 18 /* InfiniteReality2 graphics */
|
326 |
|
|
#define INV_IR2LITE 19 /* Reality graphics */
|
327 |
|
|
#define INV_IR2E 20 /* InfiniteReality2e graphics */
|
328 |
|
|
#define INV_ODSY 21 /* Odyssey graphics */
|
329 |
|
|
#define INV_IR3 22 /* InfiniteReality3 graphics */
|
330 |
|
|
|
331 |
|
|
/* states for graphics class GR1 */
|
332 |
|
|
#define INV_GR1REMASK 0x7 /* RE version */
|
333 |
|
|
#define INV_GR1REUNK 0x0 /* RE version unknown */
|
334 |
|
|
#define INV_GR1RE1 0x1 /* RE1 */
|
335 |
|
|
#define INV_GR1RE2 0x2 /* RE2 */
|
336 |
|
|
#define INV_GR1BUSMASK 0x38 /* GR1 bus architecture */
|
337 |
|
|
#define INV_GR1PB 0x00 /* Eclipse private bus */
|
338 |
|
|
#define INV_GR1PBVME 0x08 /* VGR2 board VME and private bus interfaces */
|
339 |
|
|
#define INV_GR1TURBO 0x40 /* has turbo option */
|
340 |
|
|
#define INV_GR1BIT24 0x80 /* has bitplane option */
|
341 |
|
|
#define INV_GR1ZBUF24 0x100 /* has z-buffer option */
|
342 |
|
|
#define INV_GR1SMALLMON 0x200 /* using 14" monitor */
|
343 |
|
|
#define INV_GR1SMALLMAP 0x400 /* has 256 entry color map */
|
344 |
|
|
#define INV_GR1AUX4 0x800 /* has AUX/WID plane option */
|
345 |
|
|
|
346 |
|
|
/* states for graphics class GR2 */
|
347 |
|
|
/* bitmasks */
|
348 |
|
|
#define INV_GR2_Z 0x1 /* has z-buffer option */
|
349 |
|
|
#define INV_GR2_24 0x2 /* has bitplane option */
|
350 |
|
|
#define INV_GR2_4GE 0x4 /* has 4 GEs */
|
351 |
|
|
#define INV_GR2_1GE 0x8 /* has 1 GEs */
|
352 |
|
|
#define INV_GR2_2GE 0x10 /* has 2 GEs */
|
353 |
|
|
#define INV_GR2_8GE 0x20 /* has 8 GEs */
|
354 |
|
|
#define INV_GR2_GR3 0x40 /* board GR3 */
|
355 |
|
|
#define INV_GR2_GU1 0x80 /* board GU1 */
|
356 |
|
|
#define INV_GR2_INDY 0x100 /* board GR3 on Indy*/
|
357 |
|
|
#define INV_GR2_GR5 0x200 /* board GR3 with 4 GEs, hinv prints GR5-XZ */
|
358 |
|
|
|
359 |
|
|
/* supported configurations */
|
360 |
|
|
#define INV_GR2_XS 0x0 /* GR2-XS */
|
361 |
|
|
#define INV_GR2_XSZ 0x1 /* GR2-XS with z-buffer */
|
362 |
|
|
#define INV_GR2_XS24 0x2 /* GR2-XS24 */
|
363 |
|
|
#define INV_GR2_XS24Z 0x3 /* GR2-XS24 with z-buffer */
|
364 |
|
|
#define INV_GR2_XSM 0x4 /* GR2-XSM */
|
365 |
|
|
#define INV_GR2_ELAN 0x7 /* GR2-Elan */
|
366 |
|
|
#define INV_GR2_XZ 0x13 /* GR2-XZ */
|
367 |
|
|
#define INV_GR3_XSM 0x44 /* GR3-XSM */
|
368 |
|
|
#define INV_GR3_ELAN 0x47 /* GR3-Elan */
|
369 |
|
|
#define INV_GU1_EXTREME 0xa3 /* GU1-Extreme */
|
370 |
|
|
|
371 |
|
|
/* States for graphics class NEWPORT */
|
372 |
|
|
#define INV_NEWPORT_XL 0x01 /* Indigo2 XL model */
|
373 |
|
|
#define INV_NEWPORT_24 0x02 /* board has 24 bitplanes */
|
374 |
|
|
#define INV_NEWTON 0x04 /* Triton SUBGR tagging */
|
375 |
|
|
|
376 |
|
|
/* States for graphics class MGRAS */
|
377 |
|
|
#define INV_MGRAS_ARCHS 0xff000000 /* architectures */
|
378 |
|
|
#define INV_MGRAS_HQ3 0x00000000 /*impact*/
|
379 |
|
|
#define INV_MGRAS_HQ4 0x01000000 /*gamera*/
|
380 |
|
|
#define INV_MGRAS_MOT 0x02000000 /*mothra*/
|
381 |
|
|
#define INV_MGRAS_GES 0x00ff0000 /* number of GEs */
|
382 |
|
|
#define INV_MGRAS_1GE 0x00010000
|
383 |
|
|
#define INV_MGRAS_2GE 0x00020000
|
384 |
|
|
#define INV_MGRAS_RES 0x0000ff00 /* number of REs */
|
385 |
|
|
#define INV_MGRAS_1RE 0x00000100
|
386 |
|
|
#define INV_MGRAS_2RE 0x00000200
|
387 |
|
|
#define INV_MGRAS_TRS 0x000000ff /* number of TRAMs */
|
388 |
|
|
#define INV_MGRAS_0TR 0x00000000
|
389 |
|
|
#define INV_MGRAS_1TR 0x00000001
|
390 |
|
|
#define INV_MGRAS_2TR 0x00000002
|
391 |
|
|
|
392 |
|
|
/* States for graphics class CRIME */
|
393 |
|
|
#define INV_CRM_BASE 0x01 /* Moosehead basic model */
|
394 |
|
|
|
395 |
|
|
/* States for graphics class ODSY */
|
396 |
|
|
#define INV_ODSY_ARCHS 0xff000000 /* architectures */
|
397 |
|
|
#define INV_ODSY_REVA_ARCH 0x01000000 /* Buzz Rev A */
|
398 |
|
|
#define INV_ODSY_REVB_ARCH 0x02000000 /* Buzz Rev B */
|
399 |
|
|
#define INV_ODSY_MEMCFG 0x00ff0000 /* memory configs */
|
400 |
|
|
#define INV_ODSY_MEMCFG_32 0x00010000 /* 32MB memory */
|
401 |
|
|
#define INV_ODSY_MEMCFG_64 0x00020000 /* 64MB memory */
|
402 |
|
|
#define INV_ODSY_MEMCFG_128 0x00030000 /* 128MB memory */
|
403 |
|
|
#define INV_ODSY_MEMCFG_256 0x00040000 /* 256MB memory */
|
404 |
|
|
#define INV_ODSY_MEMCFG_512 0x00050000 /* 512MB memory */
|
405 |
|
|
|
406 |
|
|
|
407 |
|
|
/* types for class network */
|
408 |
|
|
#define INV_NET_ETHER 0 /* 10Mb Ethernet */
|
409 |
|
|
#define INV_NET_HYPER 1 /* HyperNet */
|
410 |
|
|
#define INV_NET_CRAYIOS 2 /* Cray Input/Ouput Subsystem */
|
411 |
|
|
#define INV_NET_FDDI 3 /* FDDI */
|
412 |
|
|
#define INV_NET_TOKEN 4 /* 16/4 Token Ring */
|
413 |
|
|
#define INV_NET_HIPPI 5 /* HIPPI */
|
414 |
|
|
#define INV_NET_ATM 6 /* ATM */
|
415 |
|
|
#define INV_NET_ISDN_BRI 7 /* ISDN */
|
416 |
|
|
#define INV_NET_ISDN_PRI 8 /* PRI ISDN */
|
417 |
|
|
#define INV_NET_HIPPIS 9 /* HIPPI-Serial */
|
418 |
|
|
#define INV_NET_GSN 10 /* GSN (aka HIPPI-6400) */
|
419 |
|
|
#define INV_NET_MYRINET 11 /* Myricom PCI network */
|
420 |
|
|
|
421 |
|
|
/* controllers for network types, unique within class network */
|
422 |
|
|
#define INV_ETHER_EC 0 /* IP6 integral controller */
|
423 |
|
|
#define INV_ETHER_ENP 1 /* CMC board */
|
424 |
|
|
#define INV_ETHER_ET 2 /* IP5 integral controller */
|
425 |
|
|
#define INV_HYPER_HY 3 /* HyperNet controller */
|
426 |
|
|
#define INV_CRAYIOS_CFEI3 4 /* Cray Front End Interface, v3 */
|
427 |
|
|
#define INV_FDDI_IMF 5 /* Interphase/Martin 3211 FDDI */
|
428 |
|
|
#define INV_ETHER_EGL 6 /* Interphase V/4207 Eagle */
|
429 |
|
|
#define INV_ETHER_FXP 7 /* CMC C/130 FXP */
|
430 |
|
|
#define INV_FDDI_IPG 8 /* Interphase/SGI 4211 Peregrine FDDI */
|
431 |
|
|
#define INV_TOKEN_FV 9 /* Formation fv1600 Token-Ring board */
|
432 |
|
|
#define INV_FDDI_XPI 10 /* XPI GIO bus FDDI */
|
433 |
|
|
#define INV_TOKEN_GTR 11 /* GTR GIO bus TokenRing */
|
434 |
|
|
#define INV_ETHER_GIO 12 /* IP12/20 optional GIO ethernet controller */
|
435 |
|
|
#define INV_ETHER_EE 13 /* Everest IO4 EPC SEEQ/EDLC */
|
436 |
|
|
#define INV_HIO_HIPPI 14 /* HIO HIPPI for Challenge/Onyx */
|
437 |
|
|
#define INV_ATM_GIO64 15 /* ATM OC-3c Mez card */
|
438 |
|
|
#define INV_ETHER_EP 16 /* 8-port E-Plex Ethernet */
|
439 |
|
|
#define INV_ISDN_SM 17 /* Siemens PEB 2085 */
|
440 |
|
|
#define INV_TOKEN_MTR 18 /* EISA TokenRing */
|
441 |
|
|
#define INV_ETHER_EF 19 /* IOC3 Fast Ethernet */
|
442 |
|
|
#define INV_ISDN_48XP 20 /* Xircom PRI-48XP */
|
443 |
|
|
#define INV_FDDI_RNS 21 /* Rockwell Network Systems FDDI */
|
444 |
|
|
#define INV_HIPPIS_XTK 22 /* Xtalk HIPPI-Serial */
|
445 |
|
|
#define INV_ATM_QUADOC3 23 /* Xtalk Quad OC-3c ATM interface */
|
446 |
|
|
#define INV_TOKEN_MTRPCI 24 /* PCI TokenRing */
|
447 |
|
|
#define INV_ETHER_ECF 25 /* PCI Fast Ethernet */
|
448 |
|
|
#define INV_GFE 26 /* GIO Fast Ethernet */
|
449 |
|
|
#define INV_VFE 27 /* VME Fast Ethernet */
|
450 |
|
|
#define INV_ETHER_GE 28 /* Gigabit Ethernet */
|
451 |
|
|
#define INV_ETHER_EFP INV_ETHER_EF /* unused (same as IOC3 Fast Ethernet) */
|
452 |
|
|
#define INV_GSN_XTK1 29 /* single xtalk version of GSN */
|
453 |
|
|
#define INV_GSN_XTK2 30 /* dual xtalk version of GSN */
|
454 |
|
|
#define INV_FORE_HE 31 /* FORE HE ATM Card */
|
455 |
|
|
#define INV_FORE_PCA 32 /* FORE PCA ATM Card */
|
456 |
|
|
#define INV_FORE_VMA 33 /* FORE VMA ATM Card */
|
457 |
|
|
#define INV_FORE_ESA 34 /* FORE ESA ATM Card */
|
458 |
|
|
#define INV_FORE_GIA 35 /* FORE GIA ATM Card */
|
459 |
|
|
|
460 |
|
|
/* Types for class INV_SCSI and INV_VSCSI; The type code is the same as
|
461 |
|
|
* the device type code returned by the Inquiry command, iff the Inquiry
|
462 |
|
|
* command defines a type code for the device in question. If it doesn't,
|
463 |
|
|
* values over 31 will be used for the device type.
|
464 |
|
|
* Note: the lun is encoded in bits 8-15 of the state. The
|
465 |
|
|
* state field low 3 bits contains the information from the inquiry
|
466 |
|
|
* cmd that indicates ANSI SCSI 1,2, etc. compliance, and bit 7
|
467 |
|
|
* contains the inquiry info that indicates whether the media is
|
468 |
|
|
* removable.
|
469 |
|
|
*/
|
470 |
|
|
#define INV_PRINTER 2 /* SCSI printer */
|
471 |
|
|
#define INV_CPU 3 /* SCSI CPU device */
|
472 |
|
|
#define INV_WORM 4 /* write-once-read-many (e.g. optical disks) */
|
473 |
|
|
#define INV_CDROM 5 /* CD-ROM */
|
474 |
|
|
#define INV_SCANNER 6 /* scanners */
|
475 |
|
|
#define INV_OPTICAL 7 /* optical disks (read-write) */
|
476 |
|
|
#define INV_CHANGER 8 /* jukebox's for CDROMS, for example */
|
477 |
|
|
#define INV_COMM 9 /* Communications device */
|
478 |
|
|
#define INV_STARCTLR 12 /* Storage Array Controller */
|
479 |
|
|
#define INV_RAIDCTLR 32 /* RAID ctlr actually gives type 0 */
|
480 |
|
|
|
481 |
|
|
/* bit definitions for state field for class INV_SCSI */
|
482 |
|
|
#define INV_REMOVE 0x80 /* has removable media */
|
483 |
|
|
#define INV_SCSI_MASK 7 /* to which ANSI SCSI standard device conforms*/
|
484 |
|
|
|
485 |
|
|
/* types for class INV_AUDIO */
|
486 |
|
|
|
487 |
|
|
#define INV_AUDIO_HDSP 0 /* Indigo DSP system */
|
488 |
|
|
#define INV_AUDIO_VIGRA110 1 /* ViGRA 110 audio board */
|
489 |
|
|
#define INV_AUDIO_VIGRA210 2 /* ViGRA 210 audio board */
|
490 |
|
|
#define INV_AUDIO_A2 3 /* HAL2 / Audio Module for Indigo 2 */
|
491 |
|
|
#define INV_AUDIO_A3 4 /* Moosehead (IP32) AD1843 codec */
|
492 |
|
|
#define INV_AUDIO_RAD 5 /* RAD PCI chip */
|
493 |
|
|
|
494 |
|
|
/* types for class INV_VIDEO */
|
495 |
|
|
|
496 |
|
|
#define INV_VIDEO_LIGHT 0
|
497 |
|
|
#define INV_VIDEO_VS2 1 /* MultiChannel Option */
|
498 |
|
|
#define INV_VIDEO_EXPRESS 2 /* kaleidecope video */
|
499 |
|
|
#define INV_VIDEO_VINO 3
|
500 |
|
|
#define INV_VIDEO_VO2 4 /* Sirius Video */
|
501 |
|
|
#define INV_VIDEO_INDY 5 /* Indy Video - kal vid on Newport
|
502 |
|
|
gfx on Indy */
|
503 |
|
|
#define INV_VIDEO_MVP 6 /* Moosehead Video Ports */
|
504 |
|
|
#define INV_VIDEO_INDY_601 7 /* Indy Video 601 */
|
505 |
|
|
#define INV_VIDEO_PMUX 8 /* PALMUX video w/ PGR gfx */
|
506 |
|
|
#define INV_VIDEO_MGRAS 9 /* Galileo 1.5 video */
|
507 |
|
|
#define INV_VIDEO_DIVO 10 /* DIVO video */
|
508 |
|
|
#define INV_VIDEO_RACER 11 /* SpeedRacer Pro Video */
|
509 |
|
|
#define INV_VIDEO_EVO 12 /* EVO Personal Video */
|
510 |
|
|
#define INV_VIDEO_XTHD 13 /* XIO XT-HDTV video */
|
511 |
|
|
#define INV_VIDEO_XTDIGVID 14 /* XIO XT-HDDIGVID video */
|
512 |
|
|
|
513 |
|
|
/* states for video class INV_VIDEO_EXPRESS */
|
514 |
|
|
|
515 |
|
|
#define INV_GALILEO_REV 0xF
|
516 |
|
|
#define INV_GALILEO_JUNIOR 0x10
|
517 |
|
|
#define INV_GALILEO_INDY_CAM 0x20
|
518 |
|
|
#define INV_GALILEO_DBOB 0x40
|
519 |
|
|
#define INV_GALILEO_ELANTEC 0x80
|
520 |
|
|
|
521 |
|
|
/* states for video class VINO */
|
522 |
|
|
|
523 |
|
|
#define INV_VINO_REV 0xF
|
524 |
|
|
#define INV_VINO_INDY_CAM 0x10
|
525 |
|
|
#define INV_VINO_INDY_NOSW 0x20 /* nebulous - means s/w not installed */
|
526 |
|
|
|
527 |
|
|
/* states for video class MVP */
|
528 |
|
|
|
529 |
|
|
#define INV_MVP_REV(x) (((x)&0x0000000f))
|
530 |
|
|
#define INV_MVP_REV_SW(x) (((x)&0x000000f0)>>4)
|
531 |
|
|
#define INV_MVP_AV_BOARD(x) (((x)&0x00000f00)>>8)
|
532 |
|
|
#define INV_MVP_AV_REV(x) (((x)&0x0000f000)>>12)
|
533 |
|
|
#define INV_MVP_CAMERA(x) (((x)&0x000f0000)>>16)
|
534 |
|
|
#define INV_MVP_CAM_REV(x) (((x)&0x00f00000)>>20)
|
535 |
|
|
#define INV_MVP_SDIINF(x) (((x)&0x0f000000)>>24)
|
536 |
|
|
#define INV_MVP_SDI_REV(x) (((x)&0xf0000000)>>28)
|
537 |
|
|
|
538 |
|
|
/* types for class INV_BUS */
|
539 |
|
|
|
540 |
|
|
#define INV_BUS_VME 0
|
541 |
|
|
#define INV_BUS_EISA 1
|
542 |
|
|
#define INV_BUS_GIO 2
|
543 |
|
|
#define INV_BUS_BT3_PCI 3
|
544 |
|
|
|
545 |
|
|
/* types for class INV_MISC */
|
546 |
|
|
#define INV_MISC_EPC_EINT 0 /* EPC external interrupts */
|
547 |
|
|
#define INV_MISC_PCKM 1 /* pc keyboard or mouse */
|
548 |
|
|
#define INV_MISC_IOC3_EINT 2 /* IOC3 external interrupts */
|
549 |
|
|
#define INV_MISC_OTHER 3 /* non-specific type */
|
550 |
|
|
|
551 |
|
|
/*
|
552 |
|
|
* The four components below do not actually have inventory information
|
553 |
|
|
* associated with the vertex. These symbols are used by grio at the
|
554 |
|
|
* moment to figure out the device type from the vertex. If these get
|
555 |
|
|
* inventory structures in the future, either the type values must
|
556 |
|
|
* remain the same or grio code needs to change.
|
557 |
|
|
*/
|
558 |
|
|
|
559 |
|
|
#define INV_XBOW 3 /* cross bow */
|
560 |
|
|
#define INV_HUB 4 /* hub */
|
561 |
|
|
#define INV_PCI_BRIDGE 5 /* pci bridge */
|
562 |
|
|
#define INV_ROUTER 6 /* router */
|
563 |
|
|
|
564 |
|
|
/* types for class INV_PROM */
|
565 |
|
|
#define INV_IO6PROM 0
|
566 |
|
|
#define INV_IP27PROM 1
|
567 |
|
|
#define INV_IP35PROM 2
|
568 |
|
|
|
569 |
|
|
/* types for class INV_COMPRESSION */
|
570 |
|
|
|
571 |
|
|
#define INV_COSMO 0
|
572 |
|
|
#define INV_INDYCOMP 1
|
573 |
|
|
#define INV_IMPACTCOMP 2 /* cosmo2, aka impact compression */
|
574 |
|
|
#define INV_VICE 3 /* Video imaging & compression engine */
|
575 |
|
|
|
576 |
|
|
/* types for class INV_DISPLAY */
|
577 |
|
|
#define INV_PRESENTER_BOARD 0 /* Indy Presenter adapter board */
|
578 |
|
|
#define INV_PRESENTER_PANEL 1 /* Indy Presenter board and panel */
|
579 |
|
|
#define INV_ICO_BOARD 2 /* IMPACT channel option board */
|
580 |
|
|
#define INV_DCD_BOARD 3 /* O2 dual channel option board */
|
581 |
|
|
#define INV_7of9_BOARD 4 /* 7of9 flatpanel adapter board */
|
582 |
|
|
#define INV_7of9_PANEL 5 /* 7of9 flatpanel board and panel */
|
583 |
|
|
|
584 |
|
|
/* types for class INV_IEEE1394 */
|
585 |
|
|
#define INV_OHCI 0 /* Ohci IEEE1394 pci card */
|
586 |
|
|
|
587 |
|
|
/* state for class INV_IEEE1394 & type INV_OHCI */
|
588 |
|
|
#define INV_IEEE1394_STATE_TI_REV_1 0
|
589 |
|
|
|
590 |
|
|
/* O2 DVLink 1.1 controller static info */
|
591 |
|
|
#define INV_IEEE1394_CTLR_O2_DVLINK_11 0x8009104c
|
592 |
|
|
|
593 |
|
|
/* types for class INV_TPU */
|
594 |
|
|
#define INV_TPU_EXT 0 /* External XIO Tensor Processing Unit */
|
595 |
|
|
#define INV_TPU_XIO 1 /* Internal XIO Tensor Processing Unit */
|
596 |
|
|
|
597 |
|
|
/*
|
598 |
|
|
* USB Types. The upper 8 bits contain general usb device class and are used to
|
599 |
|
|
* qualify the lower 8 bits which contain device type within a usb class.
|
600 |
|
|
* Use USB_INV_DEVCLASS and USB_INV_DEVTYPE to to decode an i_type, and
|
601 |
|
|
* USB_INV_TYPE to set it.
|
602 |
|
|
*/
|
603 |
|
|
|
604 |
|
|
#define USB_INV_DEVCLASS(invtype) ((invtype) >> 8)
|
605 |
|
|
#define USB_INV_DEVTYPE(invtype) ((invtype) & 0xf)
|
606 |
|
|
#define USB_INV_TYPE(usbclass, usbtype) (((usbclass) << 8) | (usbtype))
|
607 |
|
|
|
608 |
|
|
/*
|
609 |
|
|
* USB device classes. These classes might not match the classes as defined
|
610 |
|
|
* by the usb spec, but where possible we will try.
|
611 |
|
|
*/
|
612 |
|
|
|
613 |
|
|
#define USB_INV_CLASS_RH 0x00 /* root hub (ie. controller) */
|
614 |
|
|
#define USB_INV_CLASS_HID 0x03 /* human interface device */
|
615 |
|
|
#define USB_INV_CLASS_HUB 0x09 /* hub device */
|
616 |
|
|
|
617 |
|
|
/*
|
618 |
|
|
* USB device types within a class. These will not match USB device types,
|
619 |
|
|
* as the usb is not consistent on how specific types are defined (sometimes
|
620 |
|
|
* they are found in the interface subclass, sometimes (as in HID devices) they
|
621 |
|
|
* are found within data generated by the device (hid report descriptors for
|
622 |
|
|
* example).
|
623 |
|
|
*/
|
624 |
|
|
|
625 |
|
|
/*
|
626 |
|
|
* RH types
|
627 |
|
|
*/
|
628 |
|
|
|
629 |
|
|
#define USB_INV_RH_OHCI 0x01 /* ohci root hub */
|
630 |
|
|
|
631 |
|
|
/*
|
632 |
|
|
* HID types
|
633 |
|
|
*/
|
634 |
|
|
|
635 |
|
|
#define USB_INV_HID_KEYBOARD 0x01 /* kbd (HID class) */
|
636 |
|
|
#define USB_INV_HID_MOUSE 0x02 /* mouse (HID class) */
|
637 |
|
|
|
638 |
|
|
/*
|
639 |
|
|
* HUB types - none yet
|
640 |
|
|
*/
|
641 |
|
|
|
642 |
|
|
typedef struct invent_generic_s {
|
643 |
|
|
unsigned short ig_module;
|
644 |
|
|
unsigned short ig_slot;
|
645 |
|
|
unsigned char ig_flag;
|
646 |
|
|
int ig_invclass;
|
647 |
|
|
} invent_generic_t;
|
648 |
|
|
|
649 |
|
|
#define INVENT_ENABLED 0x1
|
650 |
|
|
|
651 |
|
|
typedef struct invent_membnkinfo {
|
652 |
|
|
unsigned short imb_size; /* bank size in MB */
|
653 |
|
|
unsigned short imb_attr; /* Mem attributes */
|
654 |
|
|
unsigned int imb_flag; /* bank flags */
|
655 |
|
|
} invent_membnkinfo_t;
|
656 |
|
|
|
657 |
|
|
|
658 |
|
|
typedef struct invent_meminfo {
|
659 |
|
|
invent_generic_t im_gen;
|
660 |
|
|
unsigned short im_size; /* memory size */
|
661 |
|
|
unsigned short im_banks; /* number of banks */
|
662 |
|
|
/*
|
663 |
|
|
* declare an array with one element. Each platform is expected to
|
664 |
|
|
* allocate the size required based on the number of banks and set
|
665 |
|
|
* the im_banks correctly for this array traversal.
|
666 |
|
|
*/
|
667 |
|
|
invent_membnkinfo_t im_bank_info[1];
|
668 |
|
|
} invent_meminfo_t;
|
669 |
|
|
|
670 |
|
|
#define INV_MEM_PREMIUM 0x01
|
671 |
|
|
|
672 |
|
|
typedef struct invent_cpuinfo {
|
673 |
|
|
invent_generic_t ic_gen;
|
674 |
|
|
cpu_inv_t ic_cpu_info;
|
675 |
|
|
unsigned short ic_cpuid;
|
676 |
|
|
unsigned short ic_slice;
|
677 |
|
|
unsigned short ic_cpumode;
|
678 |
|
|
|
679 |
|
|
} invent_cpuinfo_t;
|
680 |
|
|
|
681 |
|
|
typedef struct invent_rpsinfo {
|
682 |
|
|
invent_generic_t ir_gen;
|
683 |
|
|
int ir_xbox; /* is RPS connected to an xbox */
|
684 |
|
|
} invent_rpsinfo_t;
|
685 |
|
|
|
686 |
|
|
typedef struct invent_miscinfo {
|
687 |
|
|
invent_generic_t im_gen;
|
688 |
|
|
int im_rev;
|
689 |
|
|
int im_version;
|
690 |
|
|
int im_type;
|
691 |
|
|
uint64_t im_speed;
|
692 |
|
|
} invent_miscinfo_t;
|
693 |
|
|
|
694 |
|
|
|
695 |
|
|
typedef struct invent_routerinfo{
|
696 |
|
|
invent_generic_t im_gen;
|
697 |
|
|
router_inv_t rip;
|
698 |
|
|
} invent_routerinfo_t;
|
699 |
|
|
|
700 |
|
|
|
701 |
|
|
|
702 |
|
|
#ifdef __KERNEL__
|
703 |
|
|
|
704 |
|
|
typedef struct invplace_s {
|
705 |
|
|
vertex_hdl_t invplace_vhdl; /* current vertex */
|
706 |
|
|
vertex_hdl_t invplace_vplace; /* place in vertex list */
|
707 |
|
|
inventory_t *invplace_inv; /* place in inv list on vertex */
|
708 |
|
|
} invplace_t; /* Magic cookie placeholder in inventory list */
|
709 |
|
|
|
710 |
|
|
extern invplace_t invplace_none;
|
711 |
|
|
#define INVPLACE_NONE invplace_none
|
712 |
|
|
|
713 |
|
|
extern void add_to_inventory(int, int, int, int, int);
|
714 |
|
|
extern void replace_in_inventory(inventory_t *, int, int, int, int, int);
|
715 |
|
|
extern void start_scan_inventory(invplace_t *);
|
716 |
|
|
extern inventory_t *get_next_inventory(invplace_t *);
|
717 |
|
|
extern void end_scan_inventory(invplace_t *);
|
718 |
|
|
extern inventory_t *find_inventory(inventory_t *, int, int, int, int, int);
|
719 |
|
|
extern int scaninvent(int (*)(inventory_t *, void *), void *);
|
720 |
|
|
extern int get_sizeof_inventory(int);
|
721 |
|
|
|
722 |
|
|
extern void device_inventory_add( vertex_hdl_t device,
|
723 |
|
|
int class,
|
724 |
|
|
int type,
|
725 |
|
|
major_t ctlr,
|
726 |
|
|
minor_t unit,
|
727 |
|
|
int state);
|
728 |
|
|
|
729 |
|
|
|
730 |
|
|
extern inventory_t *device_inventory_get_next( vertex_hdl_t device,
|
731 |
|
|
invplace_t *);
|
732 |
|
|
|
733 |
|
|
extern void device_controller_num_set( vertex_hdl_t,
|
734 |
|
|
int);
|
735 |
|
|
extern int device_controller_num_get( vertex_hdl_t);
|
736 |
|
|
#endif /* __KERNEL__ */
|
737 |
|
|
#endif /* _ASM_IA64_SN_INVENT_H */
|