datahubsubclassmisc.h

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

H
844
字号
/*++
 
Copyright (c) 2004 - 2006, Intel Corporation                                                         
All rights reserved. This program and the accompanying materials                          
are licensed and made available under the terms and conditions of the BSD License         
which accompanies this distribution.  The full text of the license may be found at        
http://opensource.org/licenses/bsd-license.php                                            
                                                                                          
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             

Module Name:

  DataHubSubClassMisc.h
    
Abstract:

  Definitions for Misc sub class data records

Revision History

--*/

#ifndef _DATAHUB_SUBCLASS_MISC_H_
#define _DATAHUB_SUBCLASS_MISC_H_

#include EFI_GUID_DEFINITION(DataHubRecords)

#define EFI_MISC_SUBCLASS_GUID \
{ 0x772484B2, 0x7482, 0x4b91, 0x9F, 0x9A, 0xAD, 0x43, 0xF8, 0x1C, 0x58, 0x81 }

#define EFI_MISC_SUBCLASS_VERSION     0x0100

#pragma pack(1)
//
//////////////////////////////////////////////////////////////////////////////
//
// Last PCI Bus Number
//
#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER   0x00000001

typedef struct {
  UINT8   LastPciBus;
} EFI_MISC_LAST_PCI_BUS;

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. BIOS Vendor - SMBIOS Type 0
//
#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER  0x00000002

typedef struct {
  UINT32  Reserved1                         :2;
  UINT32  Unknown                           :1;
  UINT32  BiosCharacteristicsNotSupported   :1;
  UINT32  IsaIsSupported                    :1;
  UINT32  McaIsSupported                    :1;
  UINT32  EisaIsSupported                   :1;
  UINT32  PciIsSupported                    :1;
  UINT32  PcmciaIsSupported                 :1;
  UINT32  PlugAndPlayIsSupported            :1;
  UINT32  ApmIsSupported                    :1;
  UINT32  BiosIsUpgradable                  :1;
  UINT32  BiosShadowingAllowed              :1;
  UINT32  VlVesaIsSupported                 :1;
  UINT32  EscdSupportIsAvailable            :1;
  UINT32  BootFromCdIsSupported             :1;
  UINT32  SelectableBootIsSupported         :1;
  UINT32  RomBiosIsSocketed                 :1;
  UINT32  BootFromPcmciaIsSupported         :1;
  UINT32  EDDSpecificationIsSupported       :1;
  UINT32  JapaneseNecFloppyIsSupported      :1;
  UINT32  JapaneseToshibaFloppyIsSupported  :1;
  UINT32  Floppy525_360IsSupported          :1;
  UINT32  Floppy525_12IsSupported           :1;
  UINT32  Floppy35_720IsSupported           :1;
  UINT32  Floppy35_288IsSupported           :1;
  UINT32  PrintScreenIsSupported            :1;
  UINT32  Keyboard8042IsSupported           :1;
  UINT32  SerialIsSupported                 :1;
  UINT32  PrinterIsSupported                :1;
  UINT32  CgaMonoIsSupported                :1;
  UINT32  NecPc98                           :1;
  UINT32  AcpiIsSupported                   :1;
  UINT32  UsbLegacyIsSupported              :1;
  UINT32  AgpIsSupported                    :1;
  UINT32  I20BootIsSupported                :1;
  UINT32  Ls120BootIsSupported              :1;
  UINT32  AtapiZipDriveBootIsSupported      :1;
  UINT32  Boot1394IsSupported               :1;
  UINT32  SmartBatteryIsSupported           :1;
  UINT32  BiosBootSpecIsSupported           :1;
  UINT32  FunctionKeyNetworkBootIsSupported :1;
  UINT32  TargetContentDistributionEnabled  :1; 
  UINT32  Reserved                          :21;
} EFI_MISC_BIOS_CHARACTERISTICS;

typedef struct {
  UINT32  BiosReserved                      :16;
  UINT32  SystemReserved                    :16;
  UINT32  Reserved                          :32;
} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;

typedef struct {
  STRING_REF                      BiosVendor;
  STRING_REF                      BiosVersion;
  STRING_REF                      BiosReleaseDate;
  EFI_PHYSICAL_ADDRESS            BiosStartingAddress;
  EFI_EXP_BASE2_DATA              BiosPhysicalDeviceSize;
  EFI_MISC_BIOS_CHARACTERISTICS   BiosCharacteristics1;
  EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION  BiosCharacteristics2;
  UINT8                           BiosMajorRelease;
  UINT8                           BiosMinorRelease;
  UINT8                           BiosEmbeddedFirmwareMajorRelease;
  UINT8                           BiosEmbeddedFirmwareMinorRelease;
} EFI_MISC_BIOS_VENDOR;       

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. System Manufacturer - SMBIOS Type 1
//
#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003

typedef enum {  
  EfiSystemWakeupTypeReserved = 0,
  EfiSystemWakeupTypeOther = 1,
  EfiSystemWakeupTypeUnknown = 2,
  EfiSystemWakeupTypeApmTimer = 3,
  EfiSystemWakeupTypeModemRing = 4,
  EfiSystemWakeupTypeLanRemote = 5,
  EfiSystemWakeupTypePowerSwitch = 6,
  EfiSystemWakeupTypePciPme = 7,
  EfiSystemWakeupTypeAcPowerRestored = 8,
} EFI_MISC_SYSTEM_WAKEUP_TYPE;

typedef struct {
  STRING_REF                      SystemManufacturer;
  STRING_REF                      SystemProductName;
  STRING_REF                      SystemVersion;
  STRING_REF                      SystemSerialNumber;
  EFI_GUID                        SystemUuid;
  EFI_MISC_SYSTEM_WAKEUP_TYPE     SystemWakeupType;
  STRING_REF                      SystemSKUNumber;
  STRING_REF                      SystemFamily;
} EFI_MISC_SYSTEM_MANUFACTURER;        

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Base Board Manufacturer - SMBIOS Type 2
//
#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004

typedef struct {
  UINT32  Motherboard           :1;
  UINT32  RequiresDaughterCard  :1;
  UINT32  Removable             :1;
  UINT32  Replaceable           :1;
  UINT32  HotSwappable          :1;
  UINT32  Reserved              :27;
} EFI_BASE_BOARD_FEATURE_FLAGS;

typedef enum {  
  EfiBaseBoardTypeUnknown = 1,
  EfiBaseBoardTypeOther = 2,
  EfiBaseBoardTypeServerBlade = 3,
  EfiBaseBoardTypeConnectivitySwitch = 4,
  EfiBaseBoardTypeSystemManagementModule = 5,
  EfiBaseBoardTypeProcessorModule = 6,
  EfiBaseBoardTypeIOModule = 7,
  EfiBaseBoardTypeMemoryModule = 8,
  EfiBaseBoardTypeDaughterBoard = 9,
  EfiBaseBoardTypeMotherBoard = 0xA,
  EfiBaseBoardTypeProcessorMemoryModule = 0xB,
  EfiBaseBoardTypeProcessorIOModule = 0xC,
  EfiBaseBoardTypeInterconnectBoard = 0xD,
} EFI_BASE_BOARD_TYPE;

typedef struct {
  STRING_REF                      BaseBoardManufacturer;
  STRING_REF                      BaseBoardProductName;
  STRING_REF                      BaseBoardVersion;
  STRING_REF                      BaseBoardSerialNumber;
  STRING_REF                      BaseBoardAssetTag;
  STRING_REF                      BaseBoardChassisLocation;
  EFI_BASE_BOARD_FEATURE_FLAGS    BaseBoardFeatureFlags;
  EFI_BASE_BOARD_TYPE             BaseBoardType;
  EFI_INTER_LINK_DATA             BaseBoardChassisLink;
  UINT32                          BaseBoardNumberLinks;
  EFI_INTER_LINK_DATA             LinkN;
} EFI_MISC_BASE_BOARD_MANUFACTURER;       

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. System/Chassis Enclosure - SMBIOS Type 3
//
#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER  0x00000005

typedef enum {  
  EfiMiscChassisTypeOther = 0x1,
  EfiMiscChassisTypeUnknown = 0x2,
  EfiMiscChassisTypeDeskTop = 0x3,
  EfiMiscChassisTypeLowProfileDesktop = 0x4,
  EfiMiscChassisTypePizzaBox = 0x5,
  EfiMiscChassisTypeMiniTower = 0x6,
  EfiMiscChassisTypeTower = 0x7,
  EfiMiscChassisTypePortable = 0x8,
  EfiMiscChassisTypeLapTop = 0x9,
  EfiMiscChassisTypeNotebook = 0xA,
  EfiMiscChassisTypeHandHeld = 0xB,
  EfiMiscChassisTypeDockingStation = 0xC,
  EfiMiscChassisTypeAllInOne = 0xD,
  EfiMiscChassisTypeSubNotebook = 0xE,
  EfiMiscChassisTypeSpaceSaving = 0xF,
  EfiMiscChassisTypeLunchBox = 0x10,
  EfiMiscChassisTypeMainServerChassis = 0x11,
  EfiMiscChassisTypeExpansionChassis = 0x12,
  EfiMiscChassisTypeSubChassis = 0x13,
  EfiMiscChassisTypeBusExpansionChassis = 0x14,
  EfiMiscChassisTypePeripheralChassis = 0x15,
  EfiMiscChassisTypeRaidChassis = 0x16,
  EfiMiscChassisTypeRackMountChassis = 0x17,
  EfiMiscChassisTypeSealedCasePc = 0x18,
  EfiMiscChassisMultiSystemChassis = 0x19,
} EFI_MISC_CHASSIS_TYPE;

typedef struct {
  UINT32  ChassisType       :16;
  UINT32  ChassisLockPresent:1;
  UINT32  Reserved          :15;
} EFI_MISC_CHASSIS_STATUS;

typedef enum {  
  EfiChassisStateOther = 1,
  EfiChassisStateUnknown = 2,
  EfiChassisStateSafe = 3,
  EfiChassisStateWarning = 4,
  EfiChassisStateCritical = 5,
  EfiChassisStateNonRecoverable = 6,
} EFI_MISC_CHASSIS_STATE;

typedef enum {  
  EfiChassisSecurityStatusOther = 1,
  EfiChassisSecurityStatusUnknown = 2,
  EfiChassisSecurityStatusNone = 3,
  EfiChassisSecurityStatusExternalInterfaceLockedOut = 4,
  EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 5,
} EFI_MISC_CHASSIS_SECURITY_STATE;

typedef struct {
  UINT32  RecordType  :1;
  UINT32  Reserved    :24;
} EFI_MISC_ELEMENT_TYPE;

typedef struct {
  EFI_MISC_ELEMENT_TYPE   ChassisElementType;
  EFI_INTER_LINK_DATA     ChassisElementStructure;
  EFI_BASE_BOARD_TYPE     ChassisBaseBoard;
  UINT32                  ChassisElementMinimum;
  UINT32                  ChassisElementMaximum;
} EFI_MISC_ELEMENTS; 

typedef struct {
  STRING_REF                      ChassisManufacturer;
  STRING_REF                      ChassisVersion;
  STRING_REF                      ChassisSerialNumber;
  STRING_REF                      ChassisAssetTag;
  EFI_MISC_CHASSIS_STATUS         ChassisType;
  EFI_MISC_CHASSIS_STATE          ChassisBootupState;
  EFI_MISC_CHASSIS_STATE          ChassisPowerSupplyState;
  EFI_MISC_CHASSIS_STATE          ChassisThermalState;
  EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;
  UINT32                          ChassisOemDefined;
  UINT32                          ChassisHeight;
  UINT32                          ChassisNumberPowerCords;
  UINT32                          ChassisElementCount;
  UINT32                          ChassisElementRecordLength;//
  EFI_MISC_ELEMENTS               ChassisElements;
} EFI_MISC_CHASSIS_MANUFACTURER;

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. Port Connector Information - SMBIOS Type 8
//
#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006

typedef enum {  
  EfiPortConnectorTypeNone = 0x0,
  EfiPortConnectorTypeCentronics = 0x1,
  EfiPortConnectorTypeMiniCentronics = 0x2,
  EfiPortConnectorTypeProprietary = 0x3,
  EfiPortConnectorTypeDB25Male = 0x4,
  EfiPortConnectorTypeDB25Female = 0x5,
  EfiPortConnectorTypeDB15Male = 0x6,
  EfiPortConnectorTypeDB15Female = 0x7,
  EfiPortConnectorTypeDB9Male = 0x8,
  EfiPortConnectorTypeDB9Female = 0x9,
  EfiPortConnectorTypeRJ11 = 0xA,
  EfiPortConnectorTypeRJ45 = 0xB,
  EfiPortConnectorType50PinMiniScsi = 0xC,
  EfiPortConnectorTypeMiniDin = 0xD,
  EfiPortConnectorTypeMicriDin = 0xE,
  EfiPortConnectorTypePS2 = 0xF,
  EfiPortConnectorTypeInfrared = 0x10,
  EfiPortConnectorTypeHpHil = 0x11,
  EfiPortConnectorTypeUsb = 0x12,
  EfiPortConnectorTypeSsaScsi = 0x13,
  EfiPortConnectorTypeCircularDin8Male = 0x14,
  EfiPortConnectorTypeCircularDin8Female = 0x15,
  EfiPortConnectorTypeOnboardIde = 0x16,
  EfiPortConnectorTypeOnboardFloppy = 0x17,
  EfiPortConnectorType9PinDualInline = 0x18,
  EfiPortConnectorType25PinDualInline = 0x19,
  EfiPortConnectorType50PinDualInline = 0x1A,
  EfiPortConnectorType68PinDualInline = 0x1B,
  EfiPortConnectorTypeOnboardSoundInput = 0x1C,
  EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,
  EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,
  EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,
  EfiPortConnectorTypeBNC = 0x20,
  EfiPortConnectorType1394 = 0x21,
  EfiPortConnectorTypePC98 = 0xA0,
  EfiPortConnectorTypePC98Hireso = 0xA1,
  EfiPortConnectorTypePCH98 = 0xA2,
  EfiPortConnectorTypePC98Note = 0xA3,
  EfiPortConnectorTypePC98Full = 0xA4,
  EfiPortConnectorTypeOther = 0xFF,
} EFI_MISC_PORT_CONNECTOR_TYPE;

typedef enum {  
  EfiPortTypeNone = 0x0,
  EfiPortTypeParallelXtAtCompatible = 0x1,
  EfiPortTypeParallelPortPs2 = 0x2,
  EfiPortTypeParallelPortEcp = 0x3,
  EfiPortTypeParallelPortEpp = 0x4,
  EfiPortTypeParallelPortEcpEpp = 0x5,
  EfiPortTypeSerialXtAtCompatible = 0x6,
  EfiPortTypeSerial16450Compatible = 0x7,
  EfiPortTypeSerial16550Compatible = 0x8,
  EfiPortTypeSerial16550ACompatible = 0x9,
  EfiPortTypeScsi = 0xA,
  EfiPortTypeMidi = 0xB,
  EfiPortTypeJoyStick = 0xC,
  EfiPortTypeKeyboard = 0xD,
  EfiPortTypeMouse = 0xE,
  EfiPortTypeSsaScsi = 0xF,
  EfiPortTypeUsb = 0x10,
  EfiPortTypeFireWire = 0x11,
  EfiPortTypePcmciaTypeI = 0x12,
  EfiPortTypePcmciaTypeII = 0x13,
  EfiPortTypePcmciaTypeIII = 0x14,
  EfiPortTypeCardBus = 0x15,
  EfiPortTypeAccessBusPort = 0x16,
  EfiPortTypeScsiII = 0x17,
  EfiPortTypeScsiWide = 0x18,
  EfiPortTypePC98 = 0x19,
  EfiPortTypePC98Hireso = 0x1A,
  EfiPortTypePCH98 = 0x1B,
  EfiPortTypeVideoPort = 0x1C,
  EfiPortTypeAudioPort = 0x1D,
  EfiPortTypeModemPort = 0x1E,
  EfiPortTypeNetworkPort = 0x1F,
  EfiPortType8251Compatible = 0xA0,
  EfiPortType8251FifoCompatible = 0xA1,
  EfiPortTypeOther = 0xFF,
} EFI_MISC_PORT_TYPE;


typedef struct {
  EFI_STRING_TOKEN              PortInternalConnectorDesignator;
  EFI_STRING_TOKEN              PortExternalConnectorDesignator;
  EFI_MISC_PORT_CONNECTOR_TYPE  PortInternalConnectorType;
  EFI_MISC_PORT_CONNECTOR_TYPE  PortExternalConnectorType;
  EFI_MISC_PORT_TYPE            PortType;
  EFI_MISC_PORT_DEVICE_PATH      PortPath;
} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;      

//
//////////////////////////////////////////////////////////////////////////////
//
// Misc. System Slots - SMBIOS Type 9
//
#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007

typedef enum {  
  EfiSlotTypeOther = 0x1,
  EfiSlotTypeUnknown = 0x2,
  EfiSlotTypeIsa = 0x3,
  EfiSlotTypeMca = 0x4,
  EfiSlotTypeEisa = 0x5,
  EfiSlotTypePci = 0x6,
  EfiSlotTypePcmcia = 0x7,
  EfiSlotTypeVlVesa = 0x8,
  EfiSlotTypeProprietary = 0x9,
  EfiSlotTypeProcessorCardSlot = 0xA,
  EfiSlotTypeProprietaryMemoryCardSlot = 0xB,
  EfiSlotTypeIORiserCardSlot = 0xC,
  EfiSlotTypeNuBus = 0xD,
  EfiSlotTypePci66MhzCapable = 0xE,
  EfiSlotTypeAgp = 0xF,
  EfiSlotTypeApg2X = 0x10,
  EfiSlotTypeAgp4X = 0x11,
  EfiSlotTypePciX = 0x12,
  EfiSlotTypeAgp4x = 0x13,
  EfiSlotTypePC98C20 = 0xA0,
  EfiSlotTypePC98C24 = 0xA1,
  EfiSlotTypePC98E = 0xA2,
  EfiSlotTypePC98LocalBus = 0xA3,
  EfiSlotTypePC98Card = 0xA4,
  EfiSlotTypePciExpress = 0xA5,
} EFI_MISC_SLOT_TYPE;

typedef enum {  
  EfiSlotDataBusWidthOther = 1,
  EfiSlotDataBusWidthUnknown = 2,
  EfiSlotDataBusWidth8Bit = 3,
  EfiSlotDataBusWidth16Bit = 4,
  EfiSlotDataBusWidth32Bit = 5,

⌨️ 快捷键说明

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