1 | /**************************************************************************
|
---|
2 | *
|
---|
3 | * SOURCE FILE NAME = RMBASE.H
|
---|
4 | *
|
---|
5 | * DESCRIPTIVE NAME = RM Base types and definitions
|
---|
6 | *
|
---|
7 | *
|
---|
8 | * Copyright : COPYRIGHT IBM CORPORATION, 1994, 1995
|
---|
9 | * LICENSED MATERIAL - PROGRAM PROPERTY OF IBM
|
---|
10 | * REFER TO COPYRIGHT INSTRUCTION FORM#G120-2083
|
---|
11 | * RESTRICTED MATERIALS OF IBM
|
---|
12 | * IBM CONFIDENTIAL
|
---|
13 | *
|
---|
14 | * VERSION = V1.01
|
---|
15 | *
|
---|
16 | * DATE
|
---|
17 | *
|
---|
18 | * DESCRIPTION :
|
---|
19 | *
|
---|
20 | * Purpose:
|
---|
21 | *
|
---|
22 | *
|
---|
23 | *
|
---|
24 | * FUNCTIONS :
|
---|
25 | *
|
---|
26 | * NOTES
|
---|
27 | *
|
---|
28 | *
|
---|
29 | * STRUCTURES
|
---|
30 | *
|
---|
31 | * EXTERNAL REFERENCES
|
---|
32 | *
|
---|
33 | *
|
---|
34 | *
|
---|
35 | * EXTERNAL FUNCTIONS
|
---|
36 | *
|
---|
37 | * CHANGE ACTIVITY =
|
---|
38 | * DATE FLAG APAR CHANGE DESCRIPTION
|
---|
39 | * -------- ---------- ----- --------------------------------------
|
---|
40 | *
|
---|
41 | ****************************************************************************/
|
---|
42 |
|
---|
43 |
|
---|
44 | #ifndef __RM_HEADER__
|
---|
45 | #define __RM_HEADER__
|
---|
46 |
|
---|
47 |
|
---|
48 | #define CMVERSION_MAJOR 0x01
|
---|
49 | #define CMVERSION_MINOR 0x01
|
---|
50 |
|
---|
51 | #define CMVERSION_MAJOR_21 0x02
|
---|
52 | #define CMVERSION_MINOR_21 0x01
|
---|
53 |
|
---|
54 | #define FAR /* this will be deleted shortly */
|
---|
55 | #define NEAR /* this will be deleted shortly */
|
---|
56 |
|
---|
57 | typedef ULONG RMHANDLE, FAR *PRMHANDLE, NEAR *NPRMHANDLE;
|
---|
58 | typedef RMHANDLE HDRIVER;
|
---|
59 | typedef RMHANDLE HADAPTER;
|
---|
60 | typedef RMHANDLE HDEVICE;
|
---|
61 | typedef RMHANDLE HRESOURCE;
|
---|
62 | typedef RMHANDLE HLDEV;
|
---|
63 | typedef RMHANDLE HSYSNAME;
|
---|
64 | typedef RMHANDLE HDETECTED;
|
---|
65 |
|
---|
66 | typedef HDRIVER FAR *PHDRIVER;
|
---|
67 | typedef HDRIVER NEAR *NPHDRIVER;
|
---|
68 | typedef HADAPTER FAR *PHADAPTER;
|
---|
69 | typedef HADAPTER NEAR *NPHADAPTER;
|
---|
70 | typedef HDEVICE FAR *PHDEVICE;
|
---|
71 | typedef HDEVICE NEAR *NPHDEVICE;
|
---|
72 | typedef HRESOURCE FAR *PHRESOURCE;
|
---|
73 | typedef HRESOURCE NEAR *NPHRESOURCE;
|
---|
74 | typedef HLDEV FAR *PHLDEV;
|
---|
75 | typedef HLDEV NEAR *NPHLDEV;
|
---|
76 | typedef HSYSNAME FAR *PHSYSNAME;
|
---|
77 | typedef HSYSNAME NEAR *NPHSYSNAME;
|
---|
78 | typedef HDETECTED FAR *PHDETECTED ;
|
---|
79 | typedef HDETECTED NEAR *NPHDETECTED ;
|
---|
80 |
|
---|
81 | /*********************************/
|
---|
82 | /* pResourceStruct->ResourceType */
|
---|
83 | /*********************************/
|
---|
84 |
|
---|
85 | #define RS_TYPE_IO 1
|
---|
86 | #define RS_TYPE_IRQ 2
|
---|
87 | #define RS_TYPE_MEM 3
|
---|
88 | #define RS_TYPE_DMA 4
|
---|
89 | #define RS_TYPE_TIMER 5
|
---|
90 | #define RS_TYPE_NEW 0xffff
|
---|
91 |
|
---|
92 | typedef struct _hresource {
|
---|
93 | ULONG NumResource;
|
---|
94 | HRESOURCE hResource[1]; /*First Entry in Array of HRESOURCE */
|
---|
95 | }AHRESOURCE, FAR *PAHRESOURCE, NEAR *NPAHRESOURCE;
|
---|
96 |
|
---|
97 |
|
---|
98 | /****************************************************************************/
|
---|
99 | /* */
|
---|
100 | /* Driver Structure */
|
---|
101 | /* */
|
---|
102 | /****************************************************************************/
|
---|
103 |
|
---|
104 | typedef struct {
|
---|
105 | USHORT Year;
|
---|
106 | UCHAR Month;
|
---|
107 | UCHAR Day;
|
---|
108 | } DATESTAMP, FAR *PDATESTAMP, NEAR *NPDATESTAMP;
|
---|
109 |
|
---|
110 |
|
---|
111 | /* Callback for Grant/Yield; Indicates CM resolves resource to handle */
|
---|
112 | #ifdef __IBMCPP__
|
---|
113 | typedef ULONG PFNRMCB;
|
---|
114 | #else
|
---|
115 | typedef USHORT (_cdecl FAR *PFNRMCB)(HRESOURCE hResource);
|
---|
116 | #endif
|
---|
117 |
|
---|
118 |
|
---|
119 | typedef struct {
|
---|
120 | PSZ DrvrName;
|
---|
121 | PSZ DrvrDescript;
|
---|
122 | PSZ VendorName;
|
---|
123 | UCHAR MajorVer;
|
---|
124 | UCHAR MinorVer;
|
---|
125 | DATESTAMP Date;
|
---|
126 | USHORT DrvrFlags;
|
---|
127 | USHORT DrvrType;
|
---|
128 | USHORT DrvrSubType;
|
---|
129 | PFNRMCB DrvrCallback; /* Event notification */
|
---|
130 | } DRIVERSTRUCT, FAR *PDRIVERSTRUCT, NEAR *NPDRIVERSTRUCT;
|
---|
131 |
|
---|
132 |
|
---|
133 | /********************************/
|
---|
134 | /* pDriverStruct->DrvrFlags */
|
---|
135 | /********************************/
|
---|
136 |
|
---|
137 | #define DRF_STATIC 0x0000
|
---|
138 | #define DRF_DYNAMIC 0x0001
|
---|
139 | #define DRF_PREVIOUS 0x0002
|
---|
140 |
|
---|
141 |
|
---|
142 | /* pDriverStruct->DriverType */
|
---|
143 | /* pDriverStruct->DriverSubType */
|
---|
144 | #define DRT_UNDEFINED 0
|
---|
145 | #define DRS_UNDEFINED 0
|
---|
146 |
|
---|
147 | #define DRT_PCMCIA 1
|
---|
148 | #define DRS_SOCKETSERV 1
|
---|
149 | #define DRS_CARDSERV 2
|
---|
150 | #define DRS_CLIENT 3
|
---|
151 |
|
---|
152 | #define DRT_ADDDM 2
|
---|
153 | #define DRS_DM 1
|
---|
154 | #define DRS_FILTER 2
|
---|
155 | #define DRS_ADD 3
|
---|
156 | #define DRS_DM_TRANSPORT 4
|
---|
157 |
|
---|
158 | #define DRT_OS2 3
|
---|
159 | #define DRS_CHAR 1
|
---|
160 | #define DRS_BLOCK 2
|
---|
161 | #define DRS_APP_HELPER 3
|
---|
162 |
|
---|
163 | #define DRT_NETWORK 4
|
---|
164 | #define DRT_VIDEO 5
|
---|
165 | #define DRT_AUDIO 6
|
---|
166 | #define DRT_SERVICE 7
|
---|
167 | #define DRS_SNOOPER 1
|
---|
168 | #define DRS_CONFIG 2
|
---|
169 |
|
---|
170 | /****************************************************************************/
|
---|
171 | /* */
|
---|
172 | /* Adapter Structure - Device Bus */
|
---|
173 | /* */
|
---|
174 | /****************************************************************************/
|
---|
175 |
|
---|
176 | typedef struct {
|
---|
177 | USHORT ADDHandle;
|
---|
178 | USHORT UnitHandle;
|
---|
179 | }ADD_UNIT, FAR *PADD_UNIT, NEAR *NPADD_UNIT;
|
---|
180 |
|
---|
181 | typedef struct {
|
---|
182 | USHORT VolFlags;
|
---|
183 | USHORT VolIFSType;
|
---|
184 | ULONG VolSize;
|
---|
185 | ULONG VolID;
|
---|
186 | } DASD_VOL, FAR *PDASD_VOL, NEAR *NPDASD_VOL;
|
---|
187 |
|
---|
188 | typedef struct {
|
---|
189 | USHORT Priority;
|
---|
190 | USHORT DriverType;
|
---|
191 | UCHAR DriverName[12];
|
---|
192 | UCHAR DriverParmLine[1]; /* Embedded asciiz */
|
---|
193 | } DRIVERINFO, FAR *PDRIVERINFO, NEAR *NPDRIVERINFO;
|
---|
194 |
|
---|
195 | #define DriverBase 0
|
---|
196 | #define DriverLoadable 1
|
---|
197 |
|
---|
198 |
|
---|
199 | typedef struct _ADJUNCT FAR *PADJUNCT;
|
---|
200 | typedef struct _ADJUNCT{
|
---|
201 | // warning all common field sizes needed
|
---|
202 | // see FIELDOFFSETOF() macro below
|
---|
203 | PADJUNCT pNextAdj;
|
---|
204 | USHORT AdjLength;
|
---|
205 | USHORT AdjType;
|
---|
206 | union {
|
---|
207 | USHORT AdjBase;
|
---|
208 | USHORT SCSI_Target_LUN;
|
---|
209 | USHORT Adapter_Number;
|
---|
210 | USHORT Device_Number;
|
---|
211 | USHORT PCI_DevFunc;
|
---|
212 | USHORT Model_Info;
|
---|
213 | ADD_UNIT Add_Unit;
|
---|
214 | DASD_VOL Dasd_Vol;
|
---|
215 | DRIVERINFO DriverInfo;
|
---|
216 | };
|
---|
217 | }ADJUNCT, NEAR *NPADJUNCT;
|
---|
218 |
|
---|
219 |
|
---|
220 | /********************************/
|
---|
221 | /* pAdjunct->AdjunctType */
|
---|
222 | /********************************/
|
---|
223 |
|
---|
224 | //#define ADJ_HEADER_SIZE sizeof(struct _ADJHEADER)
|
---|
225 | #ifndef FIELDOFFSET
|
---|
226 | #define FIELDOFFSET(type, field) ((SHORT)&(((type *)0)->field))
|
---|
227 | #endif
|
---|
228 | #define ADJ_HEADER_SIZE FIELDOFFSET(ADJUNCT,AdjBase)
|
---|
229 |
|
---|
230 | #define ADJ_SCSI_TARGET_LUN 1
|
---|
231 | #define ADJ_ADAPTER_NUMBER 2
|
---|
232 | #define ADJ_DEVICE_NUMBER 3
|
---|
233 | #define ADJ_PCI_DEVFUNC 4
|
---|
234 | #define ADJ_MODEL_INFO 5
|
---|
235 | #define ADJ_ADD_UNIT 6
|
---|
236 | #define ADJ_DASD_VOL 7
|
---|
237 | #define ADJ_DRIVER_DATA 8
|
---|
238 |
|
---|
239 |
|
---|
240 | typedef struct{
|
---|
241 | PSZ AdaptDescriptName;
|
---|
242 | USHORT AdaptFlags;
|
---|
243 | USHORT BaseType; /* From PCI/PNP */
|
---|
244 | USHORT SubType;
|
---|
245 | USHORT InterfaceType;
|
---|
246 | USHORT HostBusType;
|
---|
247 | USHORT HostBusWidth;
|
---|
248 | PADJUNCT pAdjunctList;
|
---|
249 | ULONG Reserved; /* Logical Name addition? */
|
---|
250 | } ADAPTERSTRUCT, FAR *PADAPTERSTRUCT, NEAR *NPADAPTERSTRUCT;
|
---|
251 |
|
---|
252 |
|
---|
253 |
|
---|
254 | /********************************/
|
---|
255 | /* pAdapteStruct->BaseType */
|
---|
256 | /* pAdapteStruct->Sub */
|
---|
257 | /* pAdapteStruct->InterfaceType */
|
---|
258 | /* From PNP/PCI Specs */
|
---|
259 | /********************************/
|
---|
260 |
|
---|
261 | #define AS_BASE_RESERVED 0x00
|
---|
262 | #define AS_SUB_OTHER 0x80 /* Can Be used by any BASE type */
|
---|
263 | #define AS_INTF_GENERIC 0x01 /* Can Be used by any SUB type */
|
---|
264 |
|
---|
265 | #define AS_BASE_MSD 0x01 /* Mass Storage Device */
|
---|
266 | #define AS_SUB_SCSI 0x01
|
---|
267 | #define AS_SUB_IDE 0x02
|
---|
268 | #define AS_SUB_FLPY 0x03
|
---|
269 | #define AS_SUB_IPI 0x04
|
---|
270 |
|
---|
271 | #define AS_BASE_NETWORK 0x02 /* Network Interface Controller */
|
---|
272 | #define AS_SUB_ETHERNET 0x01
|
---|
273 | #define AS_SUB_TOKENRING 0x02
|
---|
274 | #define AS_SUB_FDDI 0x03
|
---|
275 |
|
---|
276 | #define AS_BASE_DISPLAY 0x03 /* Display Controller */
|
---|
277 | #define AS_SUB_VGA 0x01
|
---|
278 | #define AS_INTF_VGA_GEN 0x01
|
---|
279 | #define AS_INTF_VESA_SVGA 0x02
|
---|
280 | #define AS_SUB_XGA 0x02
|
---|
281 |
|
---|
282 |
|
---|
283 | #define AS_BASE_MMEDIA 0x04 /* Multi-media Controller */
|
---|
284 | #define AS_SUB_MM_VIDEO 0x01
|
---|
285 | #define AS_SUB_MM_AUDIO 0x02
|
---|
286 |
|
---|
287 | #define AS_BASE_MEMORY 0x05 /* Memory */
|
---|
288 | #define AS_SUB_BIOS_ROM 0x01
|
---|
289 |
|
---|
290 | #define AS_BASE_BRIDGE 0x06 /* Bridge Controller */
|
---|
291 |
|
---|
292 | #define AS_BASE_COMM 0x07 /* Communications Device */
|
---|
293 | #define AS_SUB_SERIAL 0x01
|
---|
294 | #define AS_INTF_16450 0x01
|
---|
295 | #define AS_INTF_16550 0x02
|
---|
296 | #define AS_SUB_PARALLEL 0x02
|
---|
297 | #define AS_INTF_BIDI 0x01
|
---|
298 | #define AS_INTF_ECP 0x02
|
---|
299 | #define AS_SUB_ISDN 0x03 /* ISDN Device */ /* @@JD01 */
|
---|
300 | #define AS_INTF_UNKNOWN 0x01 /* Any I/F not yet defined @@JD01 */
|
---|
301 | #define AS_INTF_A2000FIFO 0x02 /* Active 2000 Fifo based @@JD01 */
|
---|
302 | #define AS_INTF_A2000SLC 0x03 /* Active 2000 Serial Link @@JD01 */
|
---|
303 |
|
---|
304 | #define AS_BASE_PERIPH 0x08 /* System Peripherals */
|
---|
305 | #define AS_SUB_PIC 0x01
|
---|
306 | #define AS_INTF_ISAPIC 0x01
|
---|
307 | #define AS_INTF_EISAPIC 0x02
|
---|
308 | #define AS_SUB_DMA 0x02
|
---|
309 | #define AS_SUB_TIMER 0x03
|
---|
310 | #define AS_SUB_RTC 0x04
|
---|
311 |
|
---|
312 | #define AS_BASE_INPUT 0x09 /* Input Device */
|
---|
313 | #define AS_SUB_KBD 0x01
|
---|
314 | #define AS_SUB_DIGIT 0x02
|
---|
315 | #define AS_SUB_MOUSE 0x03
|
---|
316 |
|
---|
317 | #define AS_BASE_DOCK 0x0a /* Docking Station */
|
---|
318 |
|
---|
319 | #define AS_BASE_CPU 0x0b /* CPU */
|
---|
320 |
|
---|
321 | #define AS_BASE_PCMCIA 0x0c /* PCMCIA */
|
---|
322 | #define AS_SUB_SOCKET_CONTROLLER 0x01 /* Socket Controller */
|
---|
323 |
|
---|
324 | #define AS_BASE_BIOS_ROM 0x0d
|
---|
325 |
|
---|
326 | /********************************/
|
---|
327 | /* pAdapterStruct->HostBusType */
|
---|
328 | /********************************/
|
---|
329 |
|
---|
330 | #define AS_HOSTBUS_OTHER 0x00
|
---|
331 | #define AS_HOSTBUS_ISA 0x01
|
---|
332 | #define AS_HOSTBUS_EISA 0x02
|
---|
333 | #define AS_HOSTBUS_uCHNL 0x03
|
---|
334 | #define AS_HOSTBUS_PCI 0x04
|
---|
335 | #define AS_HOSTBUS_SCSI 0x05
|
---|
336 | #define AS_HOSTBUS_PCMCIA 0x06
|
---|
337 | #define AS_HOSTBUS_PARALLEL 0x07
|
---|
338 | #define AS_HOSTBUS_PLANAR 0x08
|
---|
339 | #define AS_HOSTBUS_UNKNOWN 0xff
|
---|
340 | /* Others SERIAL??? */
|
---|
341 |
|
---|
342 | /********************************/
|
---|
343 | /* pAdapterStruct->HostBusWidth */
|
---|
344 | /********************************/
|
---|
345 |
|
---|
346 | #define AS_BUSWIDTH_8BIT 0x10
|
---|
347 | #define AS_BUSWIDTH_16BIT 0x20
|
---|
348 | #define AS_BUSWIDTH_32BIT 0x30
|
---|
349 | #define AS_BUSWIDTH_64BIT 0x40
|
---|
350 | #define AS_BUSWIDTH_UNKNOWN 0xf0
|
---|
351 |
|
---|
352 | /********************************/
|
---|
353 | /* pAdapterStruct->AdapterFlags */
|
---|
354 | /********************************/
|
---|
355 |
|
---|
356 | #define AS_16MB_ADDRESS_LIMIT 0x01
|
---|
357 | #define AS_NO16MB_ADDRESS_LIMIT 0x00
|
---|
358 |
|
---|
359 |
|
---|
360 | /****************************************************************************/
|
---|
361 | /* */
|
---|
362 | /* Device Structure - Object hanging off Adapter */
|
---|
363 | /* */
|
---|
364 | /****************************************************************************/
|
---|
365 |
|
---|
366 | typedef struct {
|
---|
367 | PSZ DevDescriptName;
|
---|
368 | USHORT DevFlags;
|
---|
369 | USHORT DevType;
|
---|
370 | PADJUNCT pAdjunctList;
|
---|
371 | } DEVICESTRUCT, FAR *PDEVICESTRUCT, NEAR *NPDEVICESTRUCT;
|
---|
372 |
|
---|
373 | /********************************/
|
---|
374 | /* pDeviceStruct->DevType */
|
---|
375 | /********************************/
|
---|
376 |
|
---|
377 |
|
---|
378 | #define DS_TYPE_DISK 0x0000 /* All Direct Access Devices */
|
---|
379 | #define DS_TYPE_TAPE 0x0001 /* Sequencial Access Devices */
|
---|
380 | #define DS_TYPE_PRINTER 0x0002 /* Printer Device */
|
---|
381 | #define DS_TYPE_PROCESSOR 0x0003 /* Processor type device */
|
---|
382 | #define DS_TYPE_WORM 0x0004 /* Write Once Read Many Device */
|
---|
383 | #define DS_TYPE_CDROM 0x0005 /* CD ROM Device */
|
---|
384 | #define DS_TYPE_SCANNER 0x0006 /* Scanner Device */
|
---|
385 | #define DS_TYPE_OPT_MEM 0x0007 /* some Optical disk */
|
---|
386 | #define DS_TYPE_CHANGER 0x0008 /* Changer device e.g. juke box */
|
---|
387 | #define DS_TYPE_COMM 0x0009 /* Communication devices */
|
---|
388 | #define DS_TYPE_ATAPI 0x000A /* Unspecific ATAPI protocol device */
|
---|
389 | #define DS_TYPE_SCSI_ATT 0x000B /* SCSI Attach */
|
---|
390 | #define DS_TYPE_SOCKET 0x000C /* PCMCIA Socket */
|
---|
391 | #define DS_TYPE_SLOT 0x000D /* Bus Slot */
|
---|
392 | #define DS_TYPE_PLANAR_CHIPSET 0x000E /* DMA/IRQ/TIMER Controllers */
|
---|
393 | #define DS_TYPE_IO 0x000F /* Input/Output */
|
---|
394 | #define DS_TYPE_AUDIO 0x0010 /* Audio Device */
|
---|
395 | #define DS_TYPE_UNKNOWN 0xFFFF
|
---|
396 |
|
---|
397 | /********************************/
|
---|
398 | /* pDeviceStruct->DevFlags */
|
---|
399 | /********************************/
|
---|
400 |
|
---|
401 | #define DS_REMOVEABLE_MEDIA 0x01
|
---|
402 | #define DS_FIXED_LOGICALNAME 0x02
|
---|
403 |
|
---|
404 |
|
---|
405 |
|
---|
406 | typedef struct {
|
---|
407 | ULONG NumDevices;
|
---|
408 | HDEVICE hDevice[1]; /* First Entry in array of HRESOURCE */
|
---|
409 | }AHDEVICES, FAR *PAHDEVICES, NEAR *NPAHDEVICES;
|
---|
410 |
|
---|
411 |
|
---|
412 | /****************************************************************************/
|
---|
413 | /* */
|
---|
414 | /* Resource Structure */
|
---|
415 | /* */
|
---|
416 | /****************************************************************************/
|
---|
417 |
|
---|
418 | typedef struct {
|
---|
419 | USHORT BaseIOPort;
|
---|
420 | USHORT NumIOPorts;
|
---|
421 | USHORT IOFlags;
|
---|
422 | USHORT IOAddressLines;
|
---|
423 | } IORESOURCE, FAR *PIORESOURCE, NEAR *NPIORESOURCE;
|
---|
424 |
|
---|
425 | /********************************/
|
---|
426 | /* pIOResource->IOFlags */
|
---|
427 | /********************************/
|
---|
428 |
|
---|
429 | #define RS_IO_EXCLUSIVE 0x0001
|
---|
430 | #define RS_IO_MULTIPLEXED 0x0002
|
---|
431 | #define RS_IO_SHARED 0x0004
|
---|
432 | #define RS_IO_RECONFIGURE 0x0008
|
---|
433 | #define RS_IO_GRANT_YIELD 0x0010
|
---|
434 | #define RS_IO_FORCE_ALIAS 0x0020
|
---|
435 | #define RS_SEARCH 0x4000
|
---|
436 | #define RS_NONOWNER_ALLOWED 0x8000 /*@V103757*/
|
---|
437 |
|
---|
438 | /****************************************************************************/
|
---|
439 | /* */
|
---|
440 | /* IRQ Resource Structure */
|
---|
441 | /* */
|
---|
442 | /****************************************************************************/
|
---|
443 |
|
---|
444 | /* Interrupt handler for Grant/Yield with RM routing interrupts */
|
---|
445 | #ifdef __IBMCPP__
|
---|
446 | typedef ULONG PFNRMINTHANDLER;
|
---|
447 | #else
|
---|
448 | typedef USHORT (_cdecl FAR *PFNRMINTHANDLER)(VOID);
|
---|
449 | #endif
|
---|
450 |
|
---|
451 | typedef struct {
|
---|
452 | USHORT IRQLevel; /* < 16 */
|
---|
453 | USHORT PCIIrqPin; /* < 5 */
|
---|
454 | USHORT IRQFlags;
|
---|
455 | USHORT Reserved; /* Alignment for 32 bit code */
|
---|
456 | PFNRMINTHANDLER pfnIntHandler;
|
---|
457 | } IRQRESOURCE, FAR *PIRQRESOURCE, NEAR *NPIRQRESOURCE;
|
---|
458 |
|
---|
459 | /********************************/
|
---|
460 | /* pIRQResource->PCIIrqPin */
|
---|
461 | /********************************/
|
---|
462 | #define RS_PCI_INT_NONE 0 /* For completeness, on non-PCI box */
|
---|
463 | #define RS_PCI_INT_A 1
|
---|
464 | #define RS_PCI_INT_B 2
|
---|
465 | #define RS_PCI_INT_C 3
|
---|
466 | #define RS_PCI_INT_D 4
|
---|
467 |
|
---|
468 |
|
---|
469 | /********************************/
|
---|
470 | /* pIRQResource->IRQFlags */
|
---|
471 | /********************************/
|
---|
472 |
|
---|
473 | #define RS_IRQ_EXCLUSIVE 0x01
|
---|
474 | #define RS_IRQ_MULTIPLEXED 0x02
|
---|
475 | #define RS_IRQ_SHARED 0x04
|
---|
476 | #define RS_IRQ_RECONFIGURE 0x08
|
---|
477 | #define RS_IRQ_GRANT_YIELD 0x10
|
---|
478 | #define RS_IRQ_ROUTER 0x20
|
---|
479 |
|
---|
480 | /****************************************************************************/
|
---|
481 | /* */
|
---|
482 | /* MEM Resource Structure */
|
---|
483 | /* */
|
---|
484 | /****************************************************************************/
|
---|
485 |
|
---|
486 | typedef struct {
|
---|
487 | ULONG MemBase;
|
---|
488 | ULONG MemSize;
|
---|
489 | USHORT MemFlags;
|
---|
490 | USHORT ReservedAlign; /* Alignment for 32-bit code */
|
---|
491 | } MEMRESOURCE, FAR *PMEMRESOURCE, NEAR *NPMEMRESOURCE;
|
---|
492 |
|
---|
493 |
|
---|
494 | /********************************/
|
---|
495 | /* pMemResource->MemFlags */
|
---|
496 | /********************************/
|
---|
497 |
|
---|
498 | #define RS_MEM_EXCLUSIVE 0x01
|
---|
499 | #define RS_MEM_MULTIPLEXED 0x02
|
---|
500 | #define RS_MEM_SHARED 0x04
|
---|
501 | #define RS_MEM_RECONFIGURE 0x08
|
---|
502 | #define RS_MEM_GRANT_YIELD 0x10
|
---|
503 |
|
---|
504 | /****************************************************************************/
|
---|
505 | /* */
|
---|
506 | /* DMA Resource Structure */
|
---|
507 | /* */
|
---|
508 | /****************************************************************************/
|
---|
509 |
|
---|
510 | typedef struct {
|
---|
511 | USHORT DMAChannel;
|
---|
512 | USHORT DMAFlags;
|
---|
513 | } DMARESOURCE, FAR *PDMARESOURCE, NEAR *NPDMARESOURCE;
|
---|
514 |
|
---|
515 |
|
---|
516 | /********************************/
|
---|
517 | /* pDMAResource->DMAFlags */
|
---|
518 | /********************************/
|
---|
519 |
|
---|
520 | #define RS_DMA_EXCLUSIVE 0x01
|
---|
521 | #define RS_DMA_MULTIPLEXED 0x02
|
---|
522 | #define RS_DMA_SHARED 0x04
|
---|
523 | #define RS_DMA_RECONFIGURE 0x08
|
---|
524 | #define RS_DMA_GRANT_YIELD 0x10
|
---|
525 |
|
---|
526 | /****************************************************************************/
|
---|
527 | /* */
|
---|
528 | /* Timer Resource Structure */
|
---|
529 | /* */
|
---|
530 | /****************************************************************************/
|
---|
531 |
|
---|
532 | typedef struct {
|
---|
533 | USHORT TMRChannel;
|
---|
534 | USHORT TMRFlags;
|
---|
535 | } TMRRESOURCE, FAR *PTMRRESOURCE, NEAR *NPTMRRESOURCE;
|
---|
536 |
|
---|
537 |
|
---|
538 | /********************************/
|
---|
539 | /* pTmrResource->TMRFlags */
|
---|
540 | /********************************/
|
---|
541 |
|
---|
542 | #define RS_TMR_EXCLUSIVE 0x01
|
---|
543 | #define RS_TMR_MULTIPLEXED 0x02
|
---|
544 | #define RS_TMR_SHARED 0x04
|
---|
545 |
|
---|
546 |
|
---|
547 | /****************************************************************************/
|
---|
548 |
|
---|
549 | typedef struct {
|
---|
550 | ULONG ResourceType;
|
---|
551 | union {
|
---|
552 | IORESOURCE IOResource;
|
---|
553 | IRQRESOURCE IRQResource;
|
---|
554 | MEMRESOURCE MEMResource;
|
---|
555 | DMARESOURCE DMAResource;
|
---|
556 | TMRRESOURCE TMRResource;
|
---|
557 | };
|
---|
558 | ULONG Reserved;
|
---|
559 | } RESOURCESTRUCT, FAR *PRESOURCESTRUCT, NEAR *NPRESOURCESTRUCT;
|
---|
560 |
|
---|
561 |
|
---|
562 | /********************************/
|
---|
563 | /* RMModifyResource Command */
|
---|
564 | /********************************/
|
---|
565 | #define RM_MODIFY_ADD 0
|
---|
566 | #define RM_MODIFY_DELETE 1
|
---|
567 |
|
---|
568 |
|
---|
569 | /****************************************************************************/
|
---|
570 | /* */
|
---|
571 | /* LDEV - Logical Device Structure */
|
---|
572 | /* */
|
---|
573 | /****************************************************************************/
|
---|
574 |
|
---|
575 | typedef struct {
|
---|
576 | PSZ LDevDescriptName;
|
---|
577 | USHORT LDevFlags;
|
---|
578 | USHORT LDevClass;
|
---|
579 | HDEVICE LDevHDevice;
|
---|
580 | PADJUNCT pAdjunctList;
|
---|
581 | } LDEVSTRUCT, FAR *PLDEVSTRUCT, NEAR *NPLDEVSTRUCT;
|
---|
582 |
|
---|
583 | /*********************************/
|
---|
584 | /* pLDevStruct->LDevFlags */
|
---|
585 | /*********************************/
|
---|
586 | /*- TBD -*/
|
---|
587 |
|
---|
588 | #define LDEV_CLASS_BASE 0
|
---|
589 | #define LDEV_CLASS_ROOT (LDEV_CLASS_BASE+1)
|
---|
590 | #define LDEV_CLASS_DASD (LDEV_CLASS_BASE+2)
|
---|
591 | #define LDEV_CLASS_CDROM (LDEV_CLASS_BASE+3)
|
---|
592 | #define LDEV_CLASS_SERIAL (LDEV_CLASS_BASE+4)
|
---|
593 | #define LDEV_CLASS_PARALLEL (LDEV_CLASS_BASE+5)
|
---|
594 | #define LDEV_CLASS_TAPE (LDEV_CLASS_BASE+6)
|
---|
595 |
|
---|
596 | #define NUM_LDEV_CLASSES 6
|
---|
597 | #define MAX_LDEV_CLASSES 10
|
---|
598 | #define NUM_DDCFG_TYPES 2
|
---|
599 |
|
---|
600 | /****************************************************************************/
|
---|
601 | /* */
|
---|
602 | /* SYSNAME - System Name */
|
---|
603 | /* */
|
---|
604 | /****************************************************************************/
|
---|
605 |
|
---|
606 | typedef struct {
|
---|
607 | PSZ SysDescriptName;
|
---|
608 | PADJUNCT pAdjunctList;
|
---|
609 | USHORT SysFlags;
|
---|
610 | USHORT Reserved;
|
---|
611 | } SYSNAMESTRUCT, FAR *PSYSNAMESTRUCT, NEAR *NPSYSNAMESTRUCT;
|
---|
612 |
|
---|
613 |
|
---|
614 |
|
---|
615 | /****************************************************************************/
|
---|
616 | /* */
|
---|
617 | /* DETECTED - Detected HW Function */
|
---|
618 | /* */
|
---|
619 | /****************************************************************************/
|
---|
620 | typedef ULONG IDTYPE;
|
---|
621 |
|
---|
622 | #define RM_IDTYPE_RM 0 /* Resource Manager Internal */
|
---|
623 | #define RM_IDTYPE_EISA 1 /* EISA (Also ISA PNP) */
|
---|
624 | #define RM_IDTYPE_PCI 2 /* PCI */
|
---|
625 | #define RM_IDTYPE_LEGACY 3 /* LEGACY */
|
---|
626 |
|
---|
627 | typedef ULONG DEVID;
|
---|
628 | typedef ULONG VENDID;
|
---|
629 | typedef ULONG SERNUM;
|
---|
630 |
|
---|
631 | typedef struct {
|
---|
632 | PSZ DetectDescriptName;/* Ascii name */
|
---|
633 | USHORT DetectFlags; /* ??? */
|
---|
634 | IDTYPE IDType; /* EISA, PCI, etc.. */
|
---|
635 | DEVID DeviceID; /* EISA, PCI, etc.. ID */
|
---|
636 | DEVID FunctionID; /* For multi-function hw */
|
---|
637 | DEVID CompatibleID; /* Compatible Device */
|
---|
638 | PADJUNCT pAdjunctList;
|
---|
639 | VENDID VendorID;
|
---|
640 | SERNUM SerialNumber;
|
---|
641 | } DETECTEDSTRUCT, FAR *PDETECTEDSTRUCT, NEAR *NPDETECTEDSTRUCT;
|
---|
642 |
|
---|
643 | /********************************/
|
---|
644 | /* pDetectStruct->DetectFlags */
|
---|
645 | /********************************/
|
---|
646 |
|
---|
647 | #define DS_PREVIOUS_BOOT 0x01 /* Note: not settable externally */
|
---|
648 |
|
---|
649 |
|
---|
650 |
|
---|
651 |
|
---|
652 | /****************************************************************************/
|
---|
653 | /* */
|
---|
654 | /* Handle List Structure */
|
---|
655 | /* */
|
---|
656 | /****************************************************************************/
|
---|
657 |
|
---|
658 | typedef struct
|
---|
659 | {
|
---|
660 | USHORT cMaxHandles;
|
---|
661 | USHORT cHandles;
|
---|
662 | HADAPTER Handles[1];
|
---|
663 |
|
---|
664 | } HANDLELIST, FAR *PHANDLELIST, NEAR *NPHANDLELIST;
|
---|
665 |
|
---|
666 | typedef struct _ADJINFO
|
---|
667 | {
|
---|
668 | HADAPTER hAdapter;
|
---|
669 | USHORT AdjIndex;
|
---|
670 |
|
---|
671 | } ADJINFO;
|
---|
672 |
|
---|
673 | typedef struct
|
---|
674 | {
|
---|
675 | USHORT cMaxHandles;
|
---|
676 | USHORT cHandles;
|
---|
677 | ADJINFO Adj[1];
|
---|
678 |
|
---|
679 | } ADJHANDLELIST, FAR *PADJHANDLELIST, NEAR *NPADJHANDLELIST;
|
---|
680 |
|
---|
681 | /****************************************************************************/
|
---|
682 | /* */
|
---|
683 | /* PreAssigned Node Handles */
|
---|
684 | /* */
|
---|
685 | /****************************************************************************/
|
---|
686 |
|
---|
687 | #define HANDLE_PHYS_TREE 0xffff8000
|
---|
688 | #define HANDLE_SYS_TREE 0xffff8001
|
---|
689 | #define HANDLE_DEFAULT_SYSBUS 0xffff8002
|
---|
690 | #define HANDLE_X_BUS 0xffff8003
|
---|
691 | #define HANDLE_PCI_BUS 0xffff8004
|
---|
692 | #define HANDLE_PREVIOUS_DETECTED 0xffff8005
|
---|
693 | #define HANDLE_CURRENT_DETECTED 0xffff8006
|
---|
694 |
|
---|
695 | /****************************************************************************/
|
---|
696 | /* */
|
---|
697 | /* Handle Types */
|
---|
698 | /* */
|
---|
699 | /****************************************************************************/
|
---|
700 |
|
---|
701 | #define HANDLE_TYPE_INVALID 0
|
---|
702 | #define HANDLE_TYPE_DRIVER 1
|
---|
703 | #define HANDLE_TYPE_ADAPTER 2
|
---|
704 | #define HANDLE_TYPE_DEVICE 3
|
---|
705 | #define HANDLE_TYPE_RESOURCE 4
|
---|
706 | #define HANDLE_TYPE_LOGDEV 5
|
---|
707 | #define HANDLE_TYPE_SYSDEV 6
|
---|
708 | #define HANDLE_TYPE_DETECTED 7
|
---|
709 |
|
---|
710 | /****************************************************************************/
|
---|
711 | /* */
|
---|
712 | /* Search ID Flags */
|
---|
713 | /* */
|
---|
714 | /****************************************************************************/
|
---|
715 | typedef ULONG SEARCHIDFLAGS;
|
---|
716 |
|
---|
717 | #define SEARCH_ID_DEVICEID 1
|
---|
718 | #define SEARCH_ID_FUNCTIONID 2
|
---|
719 | #define SEARCH_ID_COMPATIBLEID 4
|
---|
720 | #define SEARCH_ID_VENDOR 8
|
---|
721 | #define SEARCH_ID_SERIAL 16
|
---|
722 |
|
---|
723 | /****************************************************************************/
|
---|
724 | /* */
|
---|
725 | /* Convert ID */
|
---|
726 | /* */
|
---|
727 | /****************************************************************************/
|
---|
728 |
|
---|
729 | #define RM_CONVERT_TO_TEXT 1
|
---|
730 | #define RM_CONVERT_TO_ID 2
|
---|
731 |
|
---|
732 | /****************************************************************************/
|
---|
733 | /* */
|
---|
734 | /* SNOOPLEVEL definitions */
|
---|
735 | /* */
|
---|
736 | /****************************************************************************/
|
---|
737 |
|
---|
738 | typedef enum {SNP_NO_RISK,SNP_LOW_RISK,SNP_MEDIUM_RISK,SNP_HIGH_RISK,SNP_WARP_RISK } SNOOPLEVEL;
|
---|
739 |
|
---|
740 | #define SNP_FLG_NEXTBOOT 1
|
---|
741 | #define SNP_FLG_DEFAULT 2
|
---|
742 |
|
---|
743 | /****************************************************************************/
|
---|
744 | /* */
|
---|
745 | /* RMINFO Flag definitions */
|
---|
746 | /* */
|
---|
747 | /****************************************************************************/
|
---|
748 |
|
---|
749 | #define RM_SAVE_DEFAULT 0
|
---|
750 | #define RM_DELETE_DEFAULT 0
|
---|
751 |
|
---|
752 | #endif /* __RM_HEADER__ */
|
---|
753 |
|
---|
754 |
|
---|
755 | /****************************************************************************/
|
---|
756 | /* */
|
---|
757 | /* Comon Keys */
|
---|
758 | /* */
|
---|
759 | /****************************************************************************/
|
---|
760 |
|
---|
761 | #define KEY_FIXDISK "DISK_# "
|
---|
762 | #define KEY_TAPE "TAPE_# "
|
---|
763 | #define KEY_PRINTER "PRINTER_# "
|
---|
764 | #define KEY_CPU "CPU_# "
|
---|
765 | #define KEY_WORM "WORM_# "
|
---|
766 | #define KEY_CDROM "CDROM_# "
|
---|
767 | #define KEY_SCANNER "SCANNER_# "
|
---|
768 | #define KEY_OPTICAL_MEM "OPTICAL_MEM_# "
|
---|
769 | #define KEY_CHANGER "CHANGER_# "
|
---|
770 | #define KEY_COMM "COMM_# "
|
---|
771 | #define KEY_SCSI_UNKNOWN "UNKNOWN_# "
|
---|
772 |
|
---|
773 | /****************************************************************************/
|
---|
774 | /* */
|
---|
775 | /* DDtype for RMGetCommandLine() */
|
---|
776 | /* */
|
---|
777 | /****************************************************************************/
|
---|
778 |
|
---|
779 | #define RM_CMD_BASE 0
|
---|
780 | #define RM_CMD_DEVICE 1
|
---|
781 |
|
---|