[8403] | 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 |
|
---|