windows-nt/Source/XPSP1/NT/base/boot/detect/i386/pnpbios.h
2020-09-26 16:20:57 +08:00

114 lines
2.6 KiB
C

/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1991 Microsoft Corporation
Module Name:
biosp.h
Abstract:
PnP BIOS/ISA sepc related definitions
Author:
Shie-Lin Tzong (shielint) April 12, 1995
Revision History:
--*/
//
// Pnp BIOS device node structure
//
typedef struct _PNP_BIOS_DEVICE_NODE {
USHORT Size;
UCHAR Node;
ULONG ProductId;
UCHAR DeviceType[3];
USHORT DeviceAttributes;
// followed by AllocatedResourceBlock, PossibleResourceBlock
// and CompatibleDeviceId
} PNP_BIOS_DEVICE_NODE, far *FPPNP_BIOS_DEVICE_NODE;
//
// Pnp BIOS Installation check
//
typedef struct _PNP_BIOS_INSTALLATION_CHECK {
UCHAR Signature[4]; // $PnP (ascii)
UCHAR Revision;
UCHAR Length;
USHORT ControlField;
UCHAR Checksum;
ULONG EventFlagAddress; // Physical address
USHORT RealModeEntryOffset;
USHORT RealModeEntrySegment;
USHORT ProtectedModeEntryOffset;
ULONG ProtectedModeCodeBaseAddress;
ULONG OemDeviceId;
USHORT RealModeDataBaseAddress;
ULONG ProtectedModeDataBaseAddress;
} PNP_BIOS_INSTALLATION_CHECK, far *FPPNP_BIOS_INSTALLATION_CHECK;
//
// PnP BIOS ROM definitions
//
#define PNP_BIOS_START 0xF0000
#define PNP_BIOS_END 0xFFFFF
#define PNP_BIOS_HEADER_INCREMENT 16
//
// PnP BIOS API function codes
//
#define PNP_BIOS_GET_NUMBER_DEVICE_NODES 0
#define PNP_BIOS_GET_DEVICE_NODE 1
#define PNP_BIOS_SET_DEVICE_NODE 2
#define PNP_BIOS_GET_EVENT 3
#define PNP_BIOS_SEND_MESSAGE 4
#define PNP_BIOS_GET_DOCK_INFORMATION 5
// Function 6 is reserved.
#define PNP_BIOS_SELECT_BOOT_DEVICE 7
#define PNP_BIOS_GET_BOOT_DEVICE 8
#define PNP_BIOS_SET_OLD_ISA_RESOURCES 9
#define PNP_BIOS_GET_OLD_ISA_RESOURCES 0xA
#define PNP_BIOS_GET_ISA_CONFIGURATION 0x40
//
// SMBIOS function codes
#define GET_DMI_INFORMATION 0x50
#define GET_DMI_STRUCTURE 0x51
#define SET_DMI_STRUCTURE 0x52
#define GET_DMI_STRUCTURE_CHANGE_INFO 0x53
#define DMI_CONTROL 0x54
#define GET_GPNV_INFORMATION 0x55
#define READ_GPNV_DATA 0x56
#define WRITE_GPNV_DATA 0x57
typedef USHORT ( far * ENTRY_POINT) (int Function, ...);
//
// Control Flags for Get_Device_Node
//
#define GET_CURRENT_CONFIGURATION 1
#define GET_NEXT_BOOT_CONFIGURATION 2
//
// SMBIOS definitions
typedef SMBIOS_EPS_HEADER far *FPSMBIOS_EPS_HEADER;
typedef SMBIOS_STRUCT_HEADER far *FPSMBIOS_STRUCT_HEADER;
typedef DMIBIOS_EPS_HEADER far *FPDMIBIOS_EPS_HEADER;
//
// We cannot accomodate more than this amount of SMBIOS data to be passed
// from NTDETECT to NTOSKRNL.
#define MAXSMBIOS20SIZE 0x1000