22 #define MAX_MEM_REGISTERS 9 23 #define MAX_IO_PORTS 20 29 #define PNPinterrupt0 "PNP0000" 30 #define PNPinterrupt1 "PNP0001" 31 #define PNPinterrupt2 "PNP0002" 32 #define PNPinterrupt3 "PNP0003" 33 #define PNPExtInt "IBM000D" 37 #define PNPtimer0 "PNP0100" 38 #define PNPtimer1 "PNP0101" 39 #define PNPtimer2 "PNP0102" 43 #define PNPdma0 "PNP0200" 44 #define PNPdma1 "PNP0201" 45 #define PNPdma2 "PNP0202" 49 #define PNPCMOS "IBM0009" 52 #define PNPL2 "IBM0007" 55 #define PNPNVRAM "IBM0008" 58 #define PNPPM "IBM0005" 63 #define PNPkeyboard0 "PNP0300" 64 #define PNPkeyboard1 "PNP0301" 65 #define PNPkeyboard2 "PNP0302" 66 #define PNPkeyboard3 "PNP0303" 67 #define PNPkeyboard4 "PNP0304" 68 #define PNPkeyboard5 "PNP0305" 69 #define PNPkeyboard6 "PNP0306" 70 #define PNPkeyboard7 "PNP0307" 74 #define PNPparallel0 "PNP0400" 75 #define PNPparallel1 "PNP0401" 76 #define PNPepp "IBM001C" 80 #define PNPserial0 "PNP0500" 81 #define PNPSerial1 "PNP0501" 85 #define PNPdisk0 "PNP0600" 86 #define PNPdisk1 "PNP0601" 87 #define PNPdisk2 "PNP0602" 91 #define PNPdiskette0 "PNP0700" 95 #define PNPdisplay0 "PNP0900" 96 #define PNPdisplay1 "PNP0901" 97 #define PNPdisplay2 "PNP0902" 98 #define PNPdisplay3 "PNP0903" 99 #define PNPdisplay4 "PNP0904" 100 #define PNPdisplay5 "PNP0905" 101 #define PNPdisplay6 "PNP0906" 102 #define PNPdisplay7 "PNP0907" 103 #define PNPdisplay8 "PNP0908" 104 #define PNPdisplay9 "PNP0909" 105 #define PNPdisplayA "PNP090A" 106 #define PNPdisplayB "PNP090B" 107 #define PNPdisplayC "PNP090C" 108 #define PNPdisplayD "PNP090D" 109 #define PNPdisplayE "PNP090E" 110 #define PNPdisplayF "PNP090F" 114 #define PNPbuses0 "PNP0A00" 115 #define PNPbuses1 "PNP0A01" 116 #define PNPbuses2 "PNP0A02" 117 #define PNPbuses3 "PNP0A03" 118 #define PNPbuses4 "PNP0A04" 122 #define PNPspeaker0 "PNP0800" 123 #define PNPrtc0 "PNP0B00" 124 #define PNPpnpbios0 "PNP0C00" 125 #define PNPpnpbios1 "PNP0C01" 126 #define PNPpnpbios2 "PNP0C02" 127 #define PNPpnpbios3 "PNP0C03" 131 #define PNPpcmcia0 "PNP0E00" 135 #define PNPmouse0 "PNP0F00" 136 #define PNPmouse1 "PNP0F01" 137 #define PNPmouse2 "PNP0F02" 138 #define PNPmouse3 "PNP0F03" 139 #define PNPmouse4 "PNP0F04" 140 #define PNPmouse5 "PNP0F05" 141 #define PNPmouse6 "PNP0F06" 142 #define PNPmouse7 "PNP0F07" 143 #define PNPmouse8 "PNP0F08" 144 #define PNPmouse9 "PNP0F09" 145 #define PNPmouseA "PNP0F0A" 146 #define PNPmouseB "PNP0F0B" 150 #define PNPmodem0 "PNP9000" 154 #define PNPnetworkC9 "PNP80C9" 155 #define PNPnetworkCA "PNP80CA" 156 #define PNPnetworkCB "PNP80CB" 157 #define PNPnetworkCC "PNP80CC" 158 #define PNPnetwork27 "PNP8327" 159 #define PNPnetworket "IBM0010" 160 #define PNPneteisaet "IBM2001" 161 #define PNPAMD79C970 "IBM0016" 165 #define PNPscsi0 "PNPA000" 166 #define PNPscsi1 "PNPA001" 167 #define PNPscsi2 "PNPA002" 168 #define PNPscsi3 "PNPA003" 169 #define PNPscsiF "IBM000F" 170 #define PNPscsi825 "IBM001B" 171 #define PNPscsi875 "IBM0018" 175 #define PNPmm0 "PNPB000" 176 #define PNPmm1 "PNPB001" 177 #define PNPmmF "IBM000E" 178 #define PNPv7310 "IBM0015" 179 #define PNPmm4232 "IBM0017" 180 #define PNPpmsyn "IBM001D" 181 #define PNPgp4232 "IBM0012" 182 #define PNPmidi4232 "IBM0013" 185 #define PNPopctl "IBM000B" 188 #define PNPsp "IBM0011" 189 #define PNPLTsp "IBM001E" 190 #define PNPLTmsp "IBM001F" 193 #define PNPmemctl "IBM000A" 196 #define PNPg_assist "IBM0014" 199 #define PNPtablet "IBM0019" 203 #define S1_Packet 0x0A 204 #define S2_Packet 0x15 205 #define S2_Packet_flags 0x16 206 #define S3_Packet 0x1C 207 #define S4_Packet 0x22 208 #define S4_Packet_flags 0x23 209 #define S5_Packet 0x2A 210 #define S6_Packet 0x30 211 #define S6_Packet_priority 0x31 212 #define S7_Packet 0x38 213 #define S8_Packet 0x47 214 #define S9_Packet_fixed 0x4B 215 #define S14_Packet 0x71 216 #define S15_Packet 0x78 217 #define S15_Packet_checksum 0x79 218 #define L1_Packet 0x81 219 #define L1_Shadow 0x20 220 #define L1_32bit_mem 0x18 221 #define L1_8_16bit_mem 0x10 222 #define L1_Decode_Hi 0x04 223 #define L1_Cache 0x02 224 #define L1_Writeable 0x01 225 #define L2_Packet 0x82 226 #define L3_Packet 0x83 227 #define L4_Packet 0x84 228 #define L5_Packet 0x85 229 #define L6_Packet 0x86 231 #define DF_START_TAG 0x30 232 #define DF_START_TAG_priority 0x31 233 #define DF_END_TAG 0x38 234 #define SUBOPTIMAL_CONFIGURATION 0x2 238 typedef enum _PnP_BASE_TYPE {
240 MassStorageDevice = 1,
241 NetworkInterfaceController = 2,
242 DisplayController = 3,
243 MultimediaController = 4,
244 MemoryController = 5,
245 BridgeController = 6,
246 CommunicationsDevice = 7,
247 SystemPeripheral = 8,
249 ServiceProcessor = 0x0A,
254 typedef enum _PnP_SUB_TYPE {
257 FloppyController = 2,
259 OtherMassStorageController = 0x80,
261 EthernetController = 0,
262 TokenRingController = 1,
264 OtherNetworkController = 0x80,
269 OtherDisplayController = 0x80,
273 OtherMultimediaController = 0x80,
277 OtherMemoryDevice = 0x80,
279 HostProcessorBridge = 0,
282 MicroChannelBridge = 3,
286 OtherBridgeDevice = 0x80,
289 ATCompatibleParallelPort = 1,
290 OtherCommunicationsDevice = 0x80,
292 ProgrammableInterruptController = 0,
301 ServiceProcessorClass1 = 9,
302 ServiceProcessorClass2 = 0xA,
303 ServiceProcessorClass3 = 0xB,
306 OtherSystemPeripheral = 0x80,
308 KeyboardController = 0,
311 TabletController = 3,
312 OtherInputController = 0x80,
314 GeneralMemoryController = 0,
319 typedef enum _PnP_INTERFACE {
351 PCIMemoryController = 0,
352 RS6KMemoryController = 1,
354 GeneralHostBridge = 0,
355 GeneralISABridge = 0,
356 GeneralEISABridge = 0,
357 GeneralMCABridge = 0,
358 GeneralPCIBridge = 0,
360 PCIBridgeIndirect = 1,
362 GeneralPCMCIABridge = 0,
363 GeneralVMEBridge = 0,
409 GeneralPowerManagement = 0,
410 EPOWPowerManagement = 1,
422 CHRP_SystemStatusLED = 7,
424 GeneralServiceProcessor = 0,
430 GeneralSystemPlanar = 0,
439 unsigned char VendorID0;
444 unsigned char VendorID1;
448 unsigned char VendorID2;
449 unsigned char VendorID3;
454 unsigned char Serial0;
455 unsigned char Serial1;
456 unsigned char Serial2;
457 unsigned char Serial3;
458 unsigned char Checksum;
461 typedef enum _PnPItemName {
465 CompatibleDevice = 3,
475 SmallVendorItem = 14,
479 UnicodeIdentifier = 3,
482 MemoryRangeFixed32 = 6,
488 #define tag_type(t) (((t) & 0x80)>>7) 489 #define set_tag_type(t,v) (t = (t & 0x7f) | ((v)<<7)) 492 #define tag_small_item_name(t) (((t) & 0x78)>>3) 493 #define set_tag_small_item_name(t,v) (t = (t & 0x07) | ((v)<<3)) 496 #define tag_small_count(t) ((t) & 0x07) 497 #define set_tag_count(t,v) (t = (t & 0x78) | (v)) 500 #define tag_large_item_name(t) ((t) & 0x7f) 501 #define set_tag_large_item_name(t,v) (t = (t | 0x80) | (v)) 508 unsigned char Version[2];
513 unsigned char DevId[4];
514 unsigned char Flags[2];
521 unsigned char CompatId[4];
526 unsigned char IRQMask[2];
528 unsigned char IRQInfo;
538 unsigned char DMAMask;
539 unsigned char DMAInfo;
544 unsigned char Priority;
556 unsigned char IOInfo;
557 #define ISAAddr16bit 0x01 558 unsigned char RangeMin[2];
559 unsigned char RangeMax[2];
560 unsigned char IOAlign;
566 unsigned char Range[2];
573 unsigned char Data[7];
576 unsigned char PPCData[6];
588 unsigned char Count0;
589 unsigned char Count1;
590 unsigned char Data[9];
596 unsigned char Count0;
597 unsigned char Count1;
598 unsigned char Identifier[1];
604 unsigned char Count0;
605 unsigned char Count1;
606 unsigned char Country0;
607 unsigned char Country1;
608 unsigned char Identifier[1];
614 unsigned char Count0;
615 unsigned char Count1;
617 unsigned char Data[1];
621 unsigned char PPCData[1];
629 unsigned char Count0;
630 unsigned char Count1;
631 unsigned char Data[17];
636 unsigned char Count0;
637 unsigned char Count1;
638 unsigned char Data[9];