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