datahubsubclassmisc.h

来自「EFI BIOS是Intel提出的下一代的BIOS标准。这里上传的Edk源代码是」· C头文件 代码 · 共 844 行 · 第 1/2 页

H
844
字号
  EfiSlotDataBusWidth64Bit = 6,
  EfiSlotDataBusWidth128Bit = 7,
  EfiSlotDataBusWidth1xOrx1 = 8,
  EfiSlotDataBusWidth2xOrx2 = 9,
  EfiSlotDataBusWidth4xOrx4 = 0xA,
  EfiSlotDataBusWidth8xOrx8 = 0xB,
  EfiSlotDataBusWidth12xOrx12 = 0xC,
  EfiSlotDataBusWidth16xOrx16 = 0xD,
  EfiSlotDataBusWidth32xOrx32 = 0xE,
} EFI_MISC_SLOT_DATA_BUS_WIDTH;

typedef enum {  
  EfiSlotUsageOther = 1,
  EfiSlotUsageUnknown = 2,
  EfiSlotUsageAvailable = 3,
  EfiSlotUsageInUse = 4,
} EFI_MISC_SLOT_USAGE;
  
typedef enum {  
  EfiSlotLengthOther = 1,
  EfiSlotLengthUnknown = 2,
  EfiSlotLengthShort = 3,
  EfiSlotLengthLong = 4
} EFI_MISC_SLOT_LENGTH;

typedef struct {
  UINT32  CharacteristicsUnknown  :1;
  UINT32  Provides50Volts         :1;
  UINT32  Provides33Volts         :1;
  UINT32  SharedSlot              :1;
  UINT32  PcCard16Supported       :1;
  UINT32  CardBusSupported        :1;
  UINT32  ZoomVideoSupported      :1;
  UINT32  ModemRingResumeSupported:1;
  UINT32  PmeSignalSupported      :1;
  UINT32  HotPlugDevicesSupported :1;
  UINT32  SmbusSignalSupported    :1;
  UINT32  Reserved                :21;
} EFI_MISC_SLOT_CHARACTERISTICS;

typedef struct {
  STRING_REF                    SlotDesignation;
  EFI_MISC_SLOT_TYPE            SlotType;
  EFI_MISC_SLOT_DATA_BUS_WIDTH  SlotDataBusWidth;
  EFI_MISC_SLOT_USAGE           SlotUsage;
  EFI_MISC_SLOT_LENGTH          SlotLength;
  UINT16                        SlotId;
  EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;
  EFI_DEVICE_PATH_PROTOCOL      SlotDevicePath;
} EFI_MISC_SYSTEM_SLOT_DESIGNATION;      

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Onboard Device - SMBIOS Type 10
//
#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008

typedef enum {  
  EfiOnBoardDeviceTypeOther = 1,
  EfiOnBoardDeviceTypeUnknown = 2,
  EfiOnBoardDeviceTypeVideo = 3,
  EfiOnBoardDeviceTypeScsiController = 4,
  EfiOnBoardDeviceTypeEthernet = 5,
  EfiOnBoardDeviceTypeTokenRing = 6,
  EfiOnBoardDeviceTypeSound = 7,
} EFI_MISC_ONBOARD_DEVICE_TYPE;

typedef struct {
  UINT32  DeviceType    :16;
  UINT32  DeviceEnabled :1;
  UINT32  Reserved      :15;
} EFI_MISC_ONBOARD_DEVICE_STATUS;

typedef struct {
  STRING_REF                      OnBoardDeviceDescription;
  EFI_MISC_ONBOARD_DEVICE_STATUS  OnBoardDeviceStatus;
  EFI_DEVICE_PATH_PROTOCOL        OnBoardDevicePath;
} EFI_MISC_ONBOARD_DEVICE;

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. BIOS Language Information - SMBIOS Type 11
//
#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009

typedef struct {
  STRING_REF                          OemStringRef[1];
} EFI_MISC_OEM_STRING;

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. System Options - SMBIOS Type 12
//
typedef struct {
  STRING_REF                          SystemOptionStringRef[1];
} EFI_MISC_SYSTEM_OPTION_STRING;      

#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Number of Installable Languages - SMBIOS Type 13
//
#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B

typedef struct {
  UINT32                              AbbreviatedLanguageFormat :1;
  UINT32                              Reserved                  :31;
} EFI_MISC_LANGUAGE_FLAGS;

typedef struct {
  UINT16                              NumberOfInstallableLanguages;
  EFI_MISC_LANGUAGE_FLAGS             LanguageFlags;
  UINT16                              CurrentLanguageNumber;
} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;       

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. System Language String
//
#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C

typedef struct {
  UINT16                              LanguageId;
  STRING_REF                          SystemLanguageString;
} EFI_MISC_SYSTEM_LANGUAGE_STRING;      

//
//////////////////////////////////////////////////////////////////////////////
//
//  Misc. System Event Log  - SMBIOS Type 15
//
#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x0000000D
typedef struct {
  //SMBIOS_STRUCTURE_HDR  Header;
  UINT16                LogAreaLength;
  UINT16                LogHeaderStartOffset;
  UINT16                LogDataStartOffset;
  UINT8                 AccessMethod;
  UINT8                 LogStatus;
  UINT32                LogChangeToken;
  UINT32                AccessMethodAddress;
  UINT8                 LogHeaderFormat;
  UINT8                 NumberOfSupportedLogType;
  UINT8                 LengthOfLogDescriptor;
} EFI_MISC_SYSTEM_EVENT_LOG;

//
// Access Method.
//  0x00~0x04:  as following definition
//  0x05~0x7f:  Available for future assignment.
//  0x80~0xff:  BIOS Vendor/OEM-specific.
// 
#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT    0x00
#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT    0X01
#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT   0X02
#define ACCESS_MEMORY_MAPPED                  0x03
#define ACCESS_GPNV                           0x04

//
//////////////////////////////////////////////////////////////////////////////
//
//  Misc. Pointing Device Type - SMBIOS Type 21
//
#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F

typedef enum { 
  EfiPointingDeviceTypeOther = 1,
  EfiPointingDeviceTypeUnknown = 2,
  EfiPointingDeviceTypeMouse = 3,
  EfiPointingDeviceTypeTrackBall = 4,
  EfiPointingDeviceTypeTrackPoint = 5,
  EfiPointingDeviceTypeGlidePoint = 6,
  EfiPointingDeviceTouchPad = 7,
  EfiPointingDeviceTouchScreen = 8,
  EfiPointingDeviceOpticalSensor = 9,
} EFI_MISC_POINTING_DEVICE_TYPE;

typedef enum {  
  EfiPointingDeviceInterfaceOther = 1,
  EfiPointingDeviceInterfaceUnknown = 2,
  EfiPointingDeviceInterfaceSerial = 3,
  EfiPointingDeviceInterfacePs2 = 4,
  EfiPointingDeviceInterfaceInfrared = 5,
  EfiPointingDeviceInterfaceHpHil = 6,
  EfiPointingDeviceInterfaceBusMouse = 7,
  EfiPointingDeviceInterfaceADB = 8,
  EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,
  EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,
  EfiPointingDeviceInterfaceUsb = 0xA2,
} EFI_MISC_POINTING_DEVICE_INTERFACE;

typedef struct {
  EFI_MISC_POINTING_DEVICE_TYPE       PointingDeviceType;
  EFI_MISC_POINTING_DEVICE_INTERFACE  PointingDeviceInterface;
  UINT16                              NumberPointingDeviceButtons;
  EFI_DEVICE_PATH_PROTOCOL            PointingDevicePath;
} EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;      

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Reset Capabilities - SMBIOS Type 23
//
#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011

typedef struct {
  UINT32  Status              :1;
  UINT32  BootOption          :2;
  UINT32  BootOptionOnLimit   :2;
  UINT32  WatchdogTimerPresent:1;
  UINT32  Reserved            :26;
} EFI_MISC_RESET_CAPABILITIES_TYPE;

typedef struct {
  EFI_MISC_RESET_CAPABILITIES_TYPE  ResetCapabilities;
  UINT16                            ResetCount;
  UINT16                            ResetLimit;
  UINT16                            ResetTimerInterval;
  UINT16                            ResetTimeout;
} EFI_MISC_RESET_CAPABILITIES;
 
typedef struct {
    EFI_MISC_RESET_CAPABILITIES     ResetCapabilities;
    UINT16                        ResetCount;
    UINT16                        ResetLimit;
    UINT16                        ResetTimerInterval;
    UINT16                        ResetTimeout;
} EFI_MISC_RESET_CAPABILITIES_DATA;       

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Hardware Security - SMBIOS Type 24
//
#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012

typedef enum {
  EfiHardwareSecurityStatusDisabled = 0,
  EfiHardwareSecurityStatusEnabled = 1,
  EfiHardwareSecurityStatusNotImplemented = 2,
  EfiHardwareSecurityStatusUnknown = 3
} EFI_MISC_HARDWARE_SECURITY_STATUS; 

typedef struct {
  EFI_MISC_HARDWARE_SECURITY_STATUS   FrontPanelResetStatus   :2;  
  EFI_MISC_HARDWARE_SECURITY_STATUS   AdministratorPasswordStatus   :2;  
  EFI_MISC_HARDWARE_SECURITY_STATUS   KeyboardPasswordStatus :2;  
  EFI_MISC_HARDWARE_SECURITY_STATUS   PowerOnPasswordStatus :2;  
  EFI_MISC_HARDWARE_SECURITY_STATUS    Reserved :24;  
} EFI_MISC_HARDWARE_SECURITY_SETTINGS;

typedef struct {
  EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;
} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;       

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. BIS Entry Point - SMBIOS Type 31
//
#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER          0x00000019

typedef struct {
  EFI_PHYSICAL_ADDRESS       BisEntryPoint;
} EFI_MISC_BIS_ENTRY_POINT;    

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Boot Information - SMBIOS Type 32
//
#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER  0x0000001A

typedef enum {  
  EfiBootInformationStatusNoError = 0,
  EfiBootInformationStatusNoBootableMedia = 1,
  EfiBootInformationStatusNormalOSFailedLoading = 2,
  EfiBootInformationStatusFirmwareDetectedFailure = 3,
  EfiBootInformationStatusOSDetectedFailure = 4,
  EfiBootInformationStatusUserRequestedBoot = 5,
  EfiBootInformationStatusSystemSecurityViolation = 6,
  EfiBootInformationStatusPreviousRequestedImage = 7,
  EfiBootInformationStatusWatchdogTimerExpired = 8,
  EfiBootInformationStatusStartReserved = 9,
  EfiBootInformationStatusStartOemSpecific = 128,
  EfiBootInformationStatusStartProductSpecific = 192,
} EFI_MISC_BOOT_INFORMATION_STATUS_TYPE;

typedef struct {
    EFI_MISC_BOOT_INFORMATION_STATUS_TYPE BootInformationStatus;
    UINT8                                 BootInformationData[9];
} EFI_MISC_BOOT_INFORMATION_STATUS;

//
//////////////////////////////////////////////////////////////////////////////
//
// IPMI Data Record - SMBIOS Type 38
//
typedef enum {  
  EfiIpmiOther = 0,
  EfiIpmiKcs = 1,
  EfiIpmiSmic = 2,
  EfiIpmiBt = 3,
} EFI_MISC_IPMI_INTERFACE_TYPE;

typedef struct {
  UINT16  IpmiSpecLeastSignificantDigit:4;
  UINT16  IpmiSpecMostSignificantDigit:4;
  UINT16  Reserved:8;
} EFI_MISC_IPMI_SPECIFICATION_REVISION;

typedef struct {
  EFI_MISC_IPMI_INTERFACE_TYPE          IpmiInterfaceType;
  EFI_MISC_IPMI_SPECIFICATION_REVISION  IpmiSpecificationRevision;
  UINT16                                IpmiI2CSlaveAddress;
  UINT16                                IpmiNvDeviceAddress;
  UINT64                                IpmiBaseAddress;
  EFI_DEVICE_PATH_PROTOCOL              IpmiDevicePath;
} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;
       
#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER  0x0000001D

//
//////////////////////////////////////////////////////////////////////////////
//
//System Power supply Record - SMBIOS Type 39
//
typedef struct {
  UINT16  PowerSupplyHotReplaceable  :1;
  UINT16  PowerSupplyPresent         :1;
  UINT16  PowerSupplyUnplugged       :1;
  UINT16  InputVoltageRangeSwitch    :4;
  UINT16  PowerSupplyStatus           :3;
  UINT16  PowerSupplyType             :4;
  UINT16  Reserved                   :2;
} POWER_SUPPLY_CHARACTERISTICS;

typedef struct {
  UINT16                          PowerUnitGroup;
  STRING_REF                      PowerSupplyLocation;
  STRING_REF                      PowerSupplyDeviceName;
  STRING_REF                      PowerSupplyManufacturer;
  STRING_REF                      PowerSupplySerialNumber;
  STRING_REF                      PowerSupplyAssetTagNumber;
  STRING_REF                      PowerSupplyModelPartNumber;
  STRING_REF                      PowerSupplyRevisionLevel;
  UINT16                          PowerSupplyMaxPowerCapacity;
  POWER_SUPPLY_CHARACTERISTICS    PowerSupplyCharacteristics;
  EFI_INTER_LINK_DATA             PowerSupplyInputVoltageProbeLink;
  EFI_INTER_LINK_DATA             PowerSupplyCoolingDeviceLink;
  EFI_INTER_LINK_DATA             PowerSupplyInputCurrentProbeLink;
} EFI_MISC_SYSTEM_POWER_SUPPLY;
#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E

//
//////////////////////////////////////////////////////////////////////////////
//
// Generic Data Record - All SMBIOS Type
// Put smbios raw data into one datahub record directly. Smbios driver would
// copy smbios raw data into smbios table but not take any translation.
//
typedef struct {
  UINT8       Type;
  UINT8       Length;
  UINT16      Handle;
} SMBIOS_STRUCTURE_HDR;

typedef struct {
  SMBIOS_STRUCTURE_HDR          Header;
  UINT8                         RawData[1];
} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION; 

#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER  0x0000001F 

//
//////////////////////////////////////////////////////////////////////////////
//
//
//
typedef union {
  EFI_MISC_LAST_PCI_BUS                         LastPciBus;
  EFI_MISC_BIOS_VENDOR                          MiscBiosVendor;
  EFI_MISC_SYSTEM_MANUFACTURER                  MiscSystemManufacturer;
  EFI_MISC_BASE_BOARD_MANUFACTURER              MiscBaseBoardManufacturer;
  EFI_MISC_CHASSIS_MANUFACTURER                 MiscChassisManufacturer;  
  EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR   MiscPortInternalConnectorDesignator;
  EFI_MISC_SYSTEM_SLOT_DESIGNATION              MiscSystemSlotDesignation;
  EFI_MISC_ONBOARD_DEVICE                       MiscOnboardDevice;
  EFI_MISC_OEM_STRING                           MiscOemString;
  EFI_MISC_SYSTEM_OPTION_STRING                 MiscOptionString;
  EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES      NumberOfInstallableLanguages;
  EFI_MISC_SYSTEM_LANGUAGE_STRING               MiscSystemLanguageString;
  EFI_MISC_SYSTEM_EVENT_LOG                     MiscSystemEventLog;
  EFI_MISC_ONBOARD_DEVICE_TYPE_DATA             MiscOnboardDeviceTypeData;
  EFI_MISC_RESET_CAPABILITIES_DATA              MiscResetCapablilitiesData;
  EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA      MiscHardwareSecuritySettingsData;  
  EFI_MISC_BIS_ENTRY_POINT                      MiscBisEntryPoint;
  EFI_MISC_BOOT_INFORMATION_STATUS              MiscBootInformationStatus;
  EFI_MISC_IPMI_INTERFACE_TYPE_DATA             MiscIpmiInterfaceTypeData;
  EFI_MISC_SYSTEM_POWER_SUPPLY                  MiscPowerSupplyInfo;
  EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION          MiscSmbiosStructEncapsulation;  
} EFI_MISC_SUBCLASS_RECORDS;

//
//
//
typedef struct {
  EFI_SUBCLASS_TYPE1_HEADER       Header;
  EFI_MISC_SUBCLASS_RECORDS       Record;
} EFI_MISC_SUBCLASS_DRIVER_DATA;

#pragma pack()

#endif /* _DATAHUB_SUBCLASS_MISC_H_ */
/* eof - DataHubSubClassMisc.h */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?