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