Linux v2.6.15-rc6
[pohmelfs.git] / include / asm-mips / arc / hinv.h
blobee792bf0400244f89f6c3ae5dabc702643e5d47f
1 /*
2 * ARCS hardware/memory inventory/configuration and system ID definitions.
3 */
4 #ifndef _ASM_ARC_HINV_H
5 #define _ASM_ARC_HINV_H
7 #include <asm/arc/types.h>
9 /* configuration query defines */
10 typedef enum configclass {
11 SystemClass,
12 ProcessorClass,
13 CacheClass,
14 #ifndef _NT_PROM
15 MemoryClass,
16 AdapterClass,
17 ControllerClass,
18 PeripheralClass
19 #else /* _NT_PROM */
20 AdapterClass,
21 ControllerClass,
22 PeripheralClass,
23 MemoryClass
24 #endif /* _NT_PROM */
25 } CONFIGCLASS;
27 typedef enum configtype {
28 ARC,
29 CPU,
30 FPU,
31 PrimaryICache,
32 PrimaryDCache,
33 SecondaryICache,
34 SecondaryDCache,
35 SecondaryCache,
36 #ifndef _NT_PROM
37 Memory,
38 #endif
39 EISAAdapter,
40 TCAdapter,
41 SCSIAdapter,
42 DTIAdapter,
43 MultiFunctionAdapter,
44 DiskController,
45 TapeController,
46 CDROMController,
47 WORMController,
48 SerialController,
49 NetworkController,
50 DisplayController,
51 ParallelController,
52 PointerController,
53 KeyboardController,
54 AudioController,
55 OtherController,
56 DiskPeripheral,
57 FloppyDiskPeripheral,
58 TapePeripheral,
59 ModemPeripheral,
60 MonitorPeripheral,
61 PrinterPeripheral,
62 PointerPeripheral,
63 KeyboardPeripheral,
64 TerminalPeripheral,
65 LinePeripheral,
66 NetworkPeripheral,
67 #ifdef _NT_PROM
68 Memory,
69 #endif
70 OtherPeripheral,
72 /* new stuff for IP30 */
73 /* added without moving anything */
74 /* except ANONYMOUS. */
76 XTalkAdapter,
77 PCIAdapter,
78 GIOAdapter,
79 TPUAdapter,
81 Anonymous
82 } CONFIGTYPE;
84 typedef enum {
85 Failed = 1,
86 ReadOnly = 2,
87 Removable = 4,
88 ConsoleIn = 8,
89 ConsoleOut = 16,
90 Input = 32,
91 Output = 64
92 } IDENTIFIERFLAG;
94 #ifndef NULL /* for GetChild(NULL); */
95 #define NULL 0
96 #endif
98 union key_u {
99 struct {
100 #ifdef _MIPSEB
101 unsigned char c_bsize; /* block size in lines */
102 unsigned char c_lsize; /* line size in bytes/tag */
103 unsigned short c_size; /* cache size in 4K pages */
104 #else /* _MIPSEL */
105 unsigned short c_size; /* cache size in 4K pages */
106 unsigned char c_lsize; /* line size in bytes/tag */
107 unsigned char c_bsize; /* block size in lines */
108 #endif /* _MIPSEL */
109 } cache;
110 ULONG FullKey;
113 #if _MIPS_SIM == _ABI64
114 #define SGI_ARCS_VERS 64 /* sgi 64-bit version */
115 #define SGI_ARCS_REV 0 /* rev .00 */
116 #else
117 #define SGI_ARCS_VERS 1 /* first version */
118 #define SGI_ARCS_REV 10 /* rev .10, 3/04/92 */
119 #endif
121 typedef struct component {
122 CONFIGCLASS Class;
123 CONFIGTYPE Type;
124 IDENTIFIERFLAG Flags;
125 USHORT Version;
126 USHORT Revision;
127 ULONG Key;
128 ULONG AffinityMask;
129 ULONG ConfigurationDataSize;
130 ULONG IdentifierLength;
131 char *Identifier;
132 } COMPONENT;
134 /* internal structure that holds pathname parsing data */
135 struct cfgdata {
136 char *name; /* full name */
137 int minlen; /* minimum length to match */
138 CONFIGTYPE type; /* type of token */
141 /* System ID */
142 typedef struct systemid {
143 CHAR VendorId[8];
144 CHAR ProductId[8];
145 } SYSTEMID;
147 /* memory query functions */
148 typedef enum memorytype {
149 ExceptionBlock,
150 SPBPage, /* ARCS == SystemParameterBlock */
151 #ifndef _NT_PROM
152 FreeContiguous,
153 FreeMemory,
154 BadMemory,
155 LoadedProgram,
156 FirmwareTemporary,
157 FirmwarePermanent
158 #else /* _NT_PROM */
159 FreeMemory,
160 BadMemory,
161 LoadedProgram,
162 FirmwareTemporary,
163 FirmwarePermanent,
164 FreeContiguous
165 #endif /* _NT_PROM */
166 } MEMORYTYPE;
168 typedef struct memorydescriptor {
169 MEMORYTYPE Type;
170 LONG BasePage;
171 LONG PageCount;
172 } MEMORYDESCRIPTOR;
174 #endif /* _ASM_ARC_HINV_H */