+++ /dev/null
-/** @file\r
- This file defines GUIDs and associated data structures for records posted to the Data Hub.\r
- The producers of these records use these definitions to construct records.\r
- The consumers of these records use these definitions to retrieve, filter and parse records.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: DataHubRecords.h\r
-\r
- @par Revision Reference:\r
- DataHubRecord.h include all data hub sub class defitions from Cache subclass\r
- spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9, Processor\r
- Subclass spec 0.9,Misc SubClass spec 0.9.\r
-\r
-**/\r
-\r
-#ifndef _DATAHUB_RECORDS_H_\r
-#define _DATAHUB_RECORDS_H_\r
-\r
-#include <PiPei.h>\r
-#include <Protocol/DevicePath.h>\r
-\r
-#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
-\r
-#include <Protocol/DevicePath.h>\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct _USB_PORT_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} USB_PORT_DEVICE_PATH;\r
-\r
-//\r
-// IDE\r
-//\r
-typedef struct _IDE_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} IDE_DEVICE_PATH;\r
-\r
-//\r
-// RMC Connector\r
-//\r
-typedef struct _RMC_CONN_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} RMC_CONN_DEVICE_PATH;\r
-\r
-//\r
-// RIDE\r
-//\r
-typedef struct _RIDE_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} RIDE_DEVICE_PATH;\r
-\r
-//\r
-// Gigabit NIC\r
-//\r
-typedef struct _GB_NIC_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH PciBridgeDevicePath;\r
- PCI_DEVICE_PATH PciXBridgeDevicePath;\r
- PCI_DEVICE_PATH PciXBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} GB_NIC_DEVICE_PATH;\r
-\r
-//\r
-// P/S2 Connector\r
-//\r
-typedef struct _PS2_CONN_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH LpcBridgeDevicePath;\r
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} PS2_CONN_DEVICE_PATH;\r
-\r
-//\r
-// Serial Port Connector\r
-//\r
-typedef struct _SERIAL_CONN_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH LpcBridgeDevicePath;\r
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} SERIAL_CONN_DEVICE_PATH;\r
-\r
-//\r
-// Parallel Port Connector\r
-//\r
-typedef struct _PARALLEL_CONN_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH LpcBridgeDevicePath;\r
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} PARALLEL_CONN_DEVICE_PATH;\r
-\r
-//\r
-// Floopy Connector\r
-//\r
-typedef struct _FLOOPY_CONN_DEVICE_PATH {\r
- ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
- PCI_DEVICE_PATH LpcBridgeDevicePath;\r
- ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
-} FLOOPY_CONN_DEVICE_PATH;\r
-\r
-typedef union _EFI_MISC_PORT_DEVICE_PATH {\r
- USB_PORT_DEVICE_PATH UsbDevicePath;\r
- IDE_DEVICE_PATH IdeDevicePath;\r
- RMC_CONN_DEVICE_PATH RmcConnDevicePath;\r
- RIDE_DEVICE_PATH RideDevicePath;\r
- GB_NIC_DEVICE_PATH GbNicDevicePath;\r
- PS2_CONN_DEVICE_PATH Ps2ConnDevicePath;\r
- SERIAL_CONN_DEVICE_PATH SerialConnDevicePath;\r
- PARALLEL_CONN_DEVICE_PATH ParallelConnDevicePath;\r
- FLOOPY_CONN_DEVICE_PATH FloppyConnDevicePath;\r
-} EFI_MISC_PORT_DEVICE_PATH;\r
-\r
-#pragma pack()\r
-\r
-//\r
-// String Token Definition\r
-//\r
-#define EFI_STRING_TOKEN UINT16\r
-\r
-typedef struct {\r
- UINT32 Version;\r
- UINT32 HeaderSize;\r
- UINT16 Instance;\r
- UINT16 SubInstance;\r
- UINT32 RecordType;\r
-} EFI_SUBCLASS_TYPE1_HEADER;\r
-\r
-typedef struct {\r
- EFI_GUID ProducerName;\r
- UINT16 Instance;\r
- UINT16 SubInstance;\r
-} EFI_INTER_LINK_DATA;\r
-\r
-\r
-//\r
-// EXP data\r
-//\r
-\r
-typedef struct {\r
- UINT16 Value;\r
- UINT16 Exponent;\r
-} EFI_EXP_BASE2_DATA;\r
-\r
-\r
-typedef struct {\r
- UINT16 Value;\r
- UINT16 Exponent;\r
-} EFI_EXP_BASE10_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;\r
-\r
-typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;\r
-\r
-typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
-\r
-typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
-\r
-typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
-\r
-typedef struct {\r
- UINT32 ProcessorSteppingId:4;\r
- UINT32 ProcessorModel: 4;\r
- UINT32 ProcessorFamily: 4;\r
- UINT32 ProcessorType: 2;\r
- UINT32 ProcessorReserved1: 2;\r
- UINT32 ProcessorXModel: 4;\r
- UINT32 ProcessorXFamily: 8;\r
- UINT32 ProcessorReserved2: 4;\r
-} EFI_PROCESSOR_SIGNATURE;\r
-\r
-typedef struct {\r
- UINT32 ProcessorBrandIndex :8;\r
- UINT32 ProcessorClflush :8;\r
- UINT32 ProcessorReserved :8;\r
- UINT32 ProcessorDfltApicId :8;\r
-} EFI_PROCESSOR_MISC_INFO;\r
-\r
-typedef struct {\r
- UINT32 ProcessorFpu: 1;\r
- UINT32 ProcessorVme: 1;\r
- UINT32 ProcessorDe: 1;\r
- UINT32 ProcessorPse: 1;\r
- UINT32 ProcessorTsc: 1;\r
- UINT32 ProcessorMsr: 1;\r
- UINT32 ProcessorPae: 1;\r
- UINT32 ProcessorMce: 1;\r
- UINT32 ProcessorCx8: 1;\r
- UINT32 ProcessorApic: 1;\r
- UINT32 ProcessorReserved1: 1;\r
- UINT32 ProcessorSep: 1;\r
- UINT32 ProcessorMtrr: 1;\r
- UINT32 ProcessorPge: 1;\r
- UINT32 ProcessorMca: 1;\r
- UINT32 ProcessorCmov: 1;\r
- UINT32 ProcessorPat: 1;\r
- UINT32 ProcessorPse36: 1;\r
- UINT32 ProcessorPsn: 1;\r
- UINT32 ProcessorClfsh: 1;\r
- UINT32 ProcessorReserved2: 1;\r
- UINT32 ProcessorDs: 1;\r
- UINT32 ProcessorAcpi: 1;\r
- UINT32 ProcessorMmx: 1;\r
- UINT32 ProcessorFxsr: 1;\r
- UINT32 ProcessorSse: 1;\r
- UINT32 ProcessorSse2: 1;\r
- UINT32 ProcessorSs: 1;\r
- UINT32 ProcessorReserved3: 1;\r
- UINT32 ProcessorTm: 1;\r
- UINT32 ProcessorReserved4: 2;\r
-} EFI_PROCESSOR_FEATURE_FLAGS;\r
-\r
-typedef struct {\r
- EFI_PROCESSOR_SIGNATURE Signature;\r
- EFI_PROCESSOR_MISC_INFO MiscInfo;\r
- UINT32 Reserved;\r
- EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
-} EFI_PROCESSOR_ID_DATA;\r
-\r
-typedef enum {\r
- EfiProcessorOther = 1,\r
- EfiProcessorUnknown = 2,\r
- EfiCentralProcessor = 3,\r
- EfiMathProcessor = 4,\r
- EfiDspProcessor = 5,\r
- EfiVideoProcessor = 6\r
-} EFI_PROCESSOR_TYPE_DATA;\r
-\r
-typedef enum {\r
- EfiProcessorFamilyOther = 1,\r
- EfiProcessorFamilyUnknown = 2,\r
- EfiProcessorFamily8086 = 3,\r
- EfiProcessorFamily80286 = 4,\r
- EfiProcessorFamilyIntel386 = 5,\r
- EfiProcessorFamilyIntel486 = 6,\r
- EfiProcessorFamily8087 = 7,\r
- EfiProcessorFamily80287 = 8,\r
- EfiProcessorFamily80387 = 9,\r
- EfiProcessorFamily80487 = 0x0A,\r
- EfiProcessorFamilyPentium = 0x0B,\r
- EfiProcessorFamilyPentiumPro = 0x0C,\r
- EfiProcessorFamilyPentiumII = 0x0D,\r
- EfiProcessorFamilyPentiumMMX = 0x0E,\r
- EfiProcessorFamilyCeleron = 0x0F,\r
- EfiProcessorFamilyPentiumIIXeon = 0x10,\r
- EfiProcessorFamilyPentiumIII = 0x11,\r
- EfiProcessorFamilyM1 = 0x12,\r
- EfiProcessorFamilyM1Reserved1 = 0x13,\r
- EfiProcessorFamilyM1Reserved2 = 0x14,\r
- EfiProcessorFamilyM1Reserved3 = 0x15,\r
- EfiProcessorFamilyM1Reserved4 = 0x16,\r
- EfiProcessorFamilyM1Reserved5 = 0x17,\r
- EfiProcessorFamilyM1Reserved6 = 0x18,\r
- EfiProcessorFamilyK5 = 0x19,\r
- EfiProcessorFamilyK5Reserved1 = 0x1A,\r
- EfiProcessorFamilyK5Reserved2 = 0x1B,\r
- EfiProcessorFamilyK5Reserved3 = 0x1C,\r
- EfiProcessorFamilyK5Reserved4 = 0x1D,\r
- EfiProcessorFamilyK5Reserved5 = 0x1E,\r
- EfiProcessorFamilyK5Reserved6 = 0x1F,\r
- EfiProcessorFamilyPowerPC = 0x20,\r
- EfiProcessorFamilyPowerPC601 = 0x21,\r
- EfiProcessorFamilyPowerPC603 = 0x22,\r
- EfiProcessorFamilyPowerPC603Plus = 0x23,\r
- EfiProcessorFamilyPowerPC604 = 0x24,\r
- EfiProcessorFamilyAlpha2 = 0x30,\r
- EfiProcessorFamilyMips = 0x40,\r
- EfiProcessorFamilySparc = 0x50,\r
- EfiProcessorFamily68040 = 0x60,\r
- EfiProcessorFamily68xxx = 0x61,\r
- EfiProcessorFamily68000 = 0x62,\r
- EfiProcessorFamily68010 = 0x63,\r
- EfiProcessorFamily68020 = 0x64,\r
- EfiProcessorFamily68030 = 0x65,\r
- EfiProcessorFamilyHobbit = 0x70,\r
- EfiProcessorFamilyWeitek = 0x80,\r
- EfiProcessorFamilyPARISC = 0x90,\r
- EfiProcessorFamilyV30 = 0xA0,\r
- EfiProcessorFamilyPentiumIIIXeon = 0xB0,\r
- EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,\r
- EfiProcessorFamilyPentium4 = 0xB2,\r
- EfiProcessorFamilyIntelXeon = 0xB3,\r
- EfiProcessorFamilyAS400 = 0xB4,\r
- EfiProcessorFamilyIntelXeonMP = 0xB5,\r
- EfiProcessorFamilyAMDAthlonXP = 0xB6,\r
- EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
- EfiProcessorFamilyIntelPentiumM = 0xB9,\r
- EfiProcessorFamilyIntelCeleronD = 0xBA,\r
- EfiProcessorFamilyIntelPentiumD = 0xBB,\r
- EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
- EfiProcessorFamilyIBM390 = 0xC8,\r
- EfiProcessorFamilyG4 = 0xC9,\r
- EfiProcessorFamilyG5 = 0xCA,\r
- EfiProcessorFamilyi860 = 0xFA,\r
- EfiProcessorFamilyi960 = 0xFB\r
-} EFI_PROCESSOR_FAMILY_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
-\r
-typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;\r
-\r
-typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;\r
-\r
-typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;\r
-\r
-typedef enum {\r
- EfiProcessorIa32Microcode = 1,\r
- EfiProcessorIpfPalAMicrocode = 2,\r
- EfiProcessorIpfPalBMicrocode = 3\r
-} EFI_PROCESSOR_MICROCODE_TYPE;\r
-\r
-typedef struct {\r
- EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;\r
- UINT32 ProcessorMicrocodeRevisionNumber;\r
-} EFI_PROCESSOR_MICROCODE_REVISION_DATA;\r
-\r
-typedef struct {\r
- UINT32 CpuStatus :3;\r
- UINT32 Reserved1 :3;\r
- UINT32 SocketPopulated :1;\r
- UINT32 Reserved2 :1;\r
- UINT32 ApicEnable :1;\r
- UINT32 BootApplicationProcessor :1;\r
- UINT32 Reserved3 :22;\r
-} EFI_PROCESSOR_STATUS_DATA;\r
-\r
-typedef enum {\r
- EfiCpuStatusUnknown = 0,\r
- EfiCpuStatusEnabled = 1,\r
- EfiCpuStatusDisabledByUser = 2,\r
- EfiCpuStatusDisabledbyBios = 3,\r
- EfiCpuStatusIdle = 4,\r
- EfiCpuStatusOther = 7\r
-} EFI_CPU_STATUS;\r
-\r
-typedef enum {\r
- EfiProcessorSocketOther = 1,\r
- EfiProcessorSocketUnknown = 2,\r
- EfiProcessorSocketDaughterBoard = 3,\r
- EfiProcessorSocketZIF = 4,\r
- EfiProcessorSocketReplacePiggyBack = 5,\r
- EfiProcessorSocketNone = 6,\r
- EfiProcessorSocketLIF = 7,\r
- EfiProcessorSocketSlot1 = 8,\r
- EfiProcessorSocketSlot2 = 9,\r
- EfiProcessorSocket370Pin = 0xA,\r
- EfiProcessorSocketSlotA = 0xB,\r
- EfiProcessorSocketSlotM = 0xC,\r
- EfiProcessorSocket423 = 0xD,\r
- EfiProcessorSocketA462 = 0xE,\r
- EfiProcessorSocket478 = 0xF,\r
- EfiProcessorSocket754 = 0x10,\r
- EfiProcessorSocket940 = 0x11,\r
- EfiProcessorSocket939 = 0x12,\r
- EfiProcessorSocketmPGA604 = 0x13,\r
- EfiProcessorSocketLGA771 = 0x14,\r
- EfiProcessorSocketLGA775 = 0x15\r
-\r
-} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
-\r
-typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
-\r
-typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
-\r
-typedef enum {\r
- EfiProcessorHealthy = 1,\r
- EfiProcessorPerfRestricted = 2,\r
- EfiProcessorFuncRestricted = 3\r
-} EFI_PROCESSOR_HEALTH_STATUS;\r
-\r
-typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
-\r
-\r
-typedef enum {\r
- ProcessorCoreFrequencyRecordType = 1,\r
- ProcessorFsbFrequencyRecordType = 2,\r
- ProcessorVersionRecordType = 3,\r
- ProcessorManufacturerRecordType = 4,\r
- ProcessorSerialNumberRecordType = 5,\r
- ProcessorIdRecordType = 6,\r
- ProcessorTypeRecordType = 7,\r
- ProcessorFamilyRecordType = 8,\r
- ProcessorVoltageRecordType = 9,\r
- ProcessorApicBaseAddressRecordType = 10,\r
- ProcessorApicIdRecordType = 11,\r
- ProcessorApicVersionNumberRecordType = 12,\r
- CpuUcodeRevisionDataRecordType = 13,\r
- ProcessorStatusRecordType = 14,\r
- ProcessorSocketTypeRecordType = 15,\r
- ProcessorSocketNameRecordType = 16,\r
- CacheAssociationRecordType = 17,\r
- ProcessorMaxCoreFrequencyRecordType = 18,\r
- ProcessorAssetTagRecordType = 19,\r
- ProcessorMaxFsbFrequencyRecordType = 20,\r
- ProcessorPackageNumberRecordType = 21,\r
- ProcessorCoreFrequencyListRecordType = 22,\r
- ProcessorFsbFrequencyListRecordType = 23,\r
- ProcessorHealthStatusRecordType = 24\r
-} EFI_CPU_VARIABLE_RECORD_TYPE;\r
-\r
-typedef union {\r
- EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;\r
- EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;\r
- EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;\r
- EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;\r
- EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;\r
- EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;\r
- EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;\r
- EFI_PROCESSOR_VERSION_DATA ProcessorVersion;\r
- EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;\r
- EFI_PROCESSOR_ID_DATA ProcessorId;\r
- EFI_PROCESSOR_TYPE_DATA ProcessorType;\r
- EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;\r
- EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;\r
- EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;\r
- EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;\r
- EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;\r
- EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;\r
- EFI_PROCESSOR_STATUS_DATA ProcessorStatus;\r
- EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
- EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
- EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
- EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
- EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
-} EFI_CPU_VARIABLE_RECORD;\r
-\r
-typedef struct {\r
- EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
- EFI_CPU_VARIABLE_RECORD VariableRecord;\r
-} EFI_CPU_DATA_RECORD;\r
-\r
-#define EFI_CACHE_SUBCLASS_VERSION 0x00010000\r
-\r
-\r
-typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
-\r
-typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;\r
-\r
-typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;\r
-\r
-typedef STRING_REF EFI_CACHE_SOCKET_DATA;\r
-\r
-typedef struct {\r
- UINT32 Other :1;\r
- UINT32 Unknown :1;\r
- UINT32 NonBurst :1;\r
- UINT32 Burst :1;\r
- UINT32 PipelineBurst :1;\r
- UINT32 Asynchronous :1;\r
- UINT32 Synchronous :1;\r
- UINT32 Reserved :25;\r
-} EFI_CACHE_SRAM_TYPE_DATA;\r
-\r
-typedef enum {\r
- EfiCacheErrorOther = 1,\r
- EfiCacheErrorUnknown = 2,\r
- EfiCacheErrorNone = 3,\r
- EfiCacheErrorParity = 4,\r
- EfiCacheErrorSingleBit = 5,\r
- EfiCacheErrorMultiBit = 6\r
-} EFI_CACHE_ERROR_TYPE_DATA;\r
-\r
-typedef enum {\r
- EfiCacheTypeOther = 1,\r
- EfiCacheTypeUnknown = 2,\r
- EfiCacheTypeInstruction = 3,\r
- EfiCacheTypeData = 4,\r
- EfiCacheTypeUnified = 5\r
-} EFI_CACHE_TYPE_DATA;\r
-\r
-typedef enum {\r
- EfiCacheAssociativityOther = 1,\r
- EfiCacheAssociativityUnknown = 2,\r
- EfiCacheAssociativityDirectMapped = 3,\r
- EfiCacheAssociativity2Way = 4,\r
- EfiCacheAssociativity4Way = 5,\r
- EfiCacheAssociativityFully = 6,\r
- EfiCacheAssociativity8Way = 7,\r
- EfiCacheAssociativity16Way = 8\r
-} EFI_CACHE_ASSOCIATIVITY_DATA;\r
-\r
-typedef struct {\r
- UINT32 Level :3;\r
- UINT32 Socketed :1;\r
- UINT32 Reserved2 :1;\r
- UINT32 Location :2;\r
- UINT32 Enable :1;\r
- UINT32 OperationalMode :2;\r
- UINT32 Reserved1 :22;\r
-} EFI_CACHE_CONFIGURATION_DATA;\r
-\r
-#define EFI_CACHE_L1 1\r
-#define EFI_CACHE_L2 2\r
-#define EFI_CACHE_L3 3\r
-#define EFI_CACHE_L4 4\r
-#define EFI_CACHE_LMAX EFI_CACHE_L4\r
-\r
-#define EFI_CACHE_SOCKETED 1\r
-#define EFI_CACHE_NOT_SOCKETED 0\r
-\r
-typedef enum {\r
- EfiCacheInternal = 0,\r
- EfiCacheExternal = 1,\r
- EfiCacheReserved = 2,\r
- EfiCacheUnknown = 3\r
-} EFI_CACHE_LOCATION;\r
-\r
-#define EFI_CACHE_ENABLED 1\r
-#define EFI_CACHE_DISABLED 0\r
-\r
-typedef enum {\r
- EfiCacheWriteThrough = 0,\r
- EfiCacheWriteBack = 1,\r
- EfiCacheDynamicMode = 2,\r
- EfiCacheUnknownMode = 3\r
-} EFI_CACHE_OPERATIONAL_MODE;\r
-\r
-\r
-\r
-typedef enum {\r
- CacheSizeRecordType = 1,\r
- MaximumSizeCacheRecordType = 2,\r
- CacheSpeedRecordType = 3,\r
- CacheSocketRecordType = 4,\r
- CacheSramTypeRecordType = 5,\r
- CacheInstalledSramTypeRecordType = 6,\r
- CacheErrorTypeRecordType = 7,\r
- CacheTypeRecordType = 8,\r
- CacheAssociativityRecordType = 9,\r
- CacheConfigRecordType = 10\r
-} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
-\r
-\r
-typedef union {\r
- EFI_CACHE_SIZE_DATA CacheSize;\r
- EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
- EFI_CACHE_SPEED_DATA CacheSpeed;\r
- EFI_CACHE_SOCKET_DATA CacheSocket;\r
- EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
- EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
- EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
- EFI_CACHE_TYPE_DATA CacheType;\r
- EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
- EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
- EFI_CACHE_ASSOCIATION_DATA CacheAssociation;\r
-} EFI_CACHE_VARIABLE_RECORD;\r
-\r
-typedef struct {\r
- EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
- EFI_CACHE_VARIABLE_RECORD VariableRecord;\r
-} EFI_CACHE_DATA_RECORD;\r
-\r
-#define EFI_MEMORY_SUBCLASS_VERSION 0x0100\r
-\r
-\r
-#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001\r
-\r
-typedef enum _EFI_MEMORY_REGION_TYPE {\r
- EfiMemoryRegionMemory = 0x01,\r
- EfiMemoryRegionReserved = 0x02,\r
- EfiMemoryRegionAcpi = 0x03,\r
- EfiMemoryRegionNvs = 0x04\r
-} EFI_MEMORY_REGION_TYPE;\r
-\r
-typedef struct {\r
- UINT32 ProcessorNumber;\r
- UINT16 StartBusNumber;\r
- UINT16 EndBusNumber;\r
- EFI_MEMORY_REGION_TYPE MemoryRegionType;\r
- EFI_EXP_BASE2_DATA MemorySize;\r
- EFI_PHYSICAL_ADDRESS MemoryStartAddress;\r
-} EFI_MEMORY_SIZE_DATA;\r
-\r
-\r
-#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002\r
-\r
-typedef enum _EFI_MEMORY_ARRAY_LOCATION {\r
- EfiMemoryArrayLocationOther = 0x01,\r
- EfiMemoryArrayLocationUnknown = 0x02,\r
- EfiMemoryArrayLocationSystemBoard = 0x03,\r
- EfiMemoryArrayLocationIsaAddonCard = 0x04,\r
- EfiMemoryArrayLocationEisaAddonCard = 0x05,\r
- EfiMemoryArrayLocationPciAddonCard = 0x06,\r
- EfiMemoryArrayLocationMcaAddonCard = 0x07,\r
- EfiMemoryArrayLocationPcmciaAddonCard = 0x08,\r
- EfiMemoryArrayLocationProprietaryAddonCard = 0x09,\r
- EfiMemoryArrayLocationNuBus = 0x0A,\r
- EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,\r
- EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,\r
- EfiMemoryArrayLocationPc98EAddonCard = 0xA2,\r
- EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3\r
-} EFI_MEMORY_ARRAY_LOCATION;\r
-\r
-typedef enum _EFI_MEMORY_ARRAY_USE {\r
- EfiMemoryArrayUseOther = 0x01,\r
- EfiMemoryArrayUseUnknown = 0x02,\r
- EfiMemoryArrayUseSystemMemory = 0x03,\r
- EfiMemoryArrayUseVideoMemory = 0x04,\r
- EfiMemoryArrayUseFlashMemory = 0x05,\r
- EfiMemoryArrayUseNonVolatileRam = 0x06,\r
- EfiMemoryArrayUseCacheMemory = 0x07,\r
-} EFI_MEMORY_ARRAY_USE;\r
-\r
-typedef enum _EFI_MEMORY_ERROR_CORRECTION {\r
- EfiMemoryErrorCorrectionOther = 0x01,\r
- EfiMemoryErrorCorrectionUnknown = 0x02,\r
- EfiMemoryErrorCorrectionNone = 0x03,\r
- EfiMemoryErrorCorrectionParity = 0x04,\r
- EfiMemoryErrorCorrectionSingleBitEcc = 0x05,\r
- EfiMemoryErrorCorrectionMultiBitEcc = 0x06,\r
- EfiMemoryErrorCorrectionCrc = 0x07,\r
-} EFI_MEMORY_ERROR_CORRECTION;\r
-\r
-typedef struct {\r
- EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
- EFI_MEMORY_ARRAY_USE MemoryArrayUse;\r
- EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
- EFI_EXP_BASE2_DATA MaximumMemoryCapacity;\r
- UINT16 NumberMemoryDevices;\r
-} EFI_MEMORY_ARRAY_LOCATION_DATA;\r
-\r
-\r
-#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003\r
-\r
-typedef enum _EFI_MEMORY_FORM_FACTOR {\r
- EfiMemoryFormFactorOther = 0x01,\r
- EfiMemoryFormFactorUnknown = 0x02,\r
- EfiMemoryFormFactorSimm = 0x03,\r
- EfiMemoryFormFactorSip = 0x04,\r
- EfiMemoryFormFactorChip = 0x05,\r
- EfiMemoryFormFactorDip = 0x06,\r
- EfiMemoryFormFactorZip = 0x07,\r
- EfiMemoryFormFactorProprietaryCard = 0x08,\r
- EfiMemoryFormFactorDimm = 0x09,\r
- EfiMemoryFormFactorTsop = 0x0A,\r
- EfiMemoryFormFactorRowOfChips = 0x0B,\r
- EfiMemoryFormFactorRimm = 0x0C,\r
- EfiMemoryFormFactorSodimm = 0x0D,\r
- EfiMemoryFormFactorSrimm = 0x0E,\r
- EfiMemoryFormFactorFbDimm = 0x0F\r
-} EFI_MEMORY_FORM_FACTOR;\r
-\r
-typedef enum _EFI_MEMORY_ARRAY_TYPE {\r
- EfiMemoryTypeOther = 0x01,\r
- EfiMemoryTypeUnknown = 0x02,\r
- EfiMemoryTypeDram = 0x03,\r
- EfiMemoryTypeEdram = 0x04,\r
- EfiMemoryTypeVram = 0x05,\r
- EfiMemoryTypeSram = 0x06,\r
- EfiMemoryTypeRam = 0x07,\r
- EfiMemoryTypeRom = 0x08,\r
- EfiMemoryTypeFlash = 0x09,\r
- EfiMemoryTypeEeprom = 0x0A,\r
- EfiMemoryTypeFeprom = 0x0B,\r
- EfiMemoryTypeEprom = 0x0C,\r
- EfiMemoryTypeCdram = 0x0D,\r
- EfiMemoryType3Dram = 0x0E,\r
- EfiMemoryTypeSdram = 0x0F,\r
- EfiMemoryTypeSgram = 0x10,\r
- EfiMemoryTypeRdram = 0x11,\r
- EfiMemoryTypeDdr = 0x12,\r
- EfiMemoryTypeDdr2 = 0x13,\r
- EfiMemoryTypeDdr2FbDimm = 0x14\r
-} EFI_MEMORY_ARRAY_TYPE;\r
-\r
-typedef struct {\r
- UINT32 Reserved :1;\r
- UINT32 Other :1;\r
- UINT32 Unknown :1;\r
- UINT32 FastPaged :1;\r
- UINT32 StaticColumn :1;\r
- UINT32 PseudoStatic :1;\r
- UINT32 Rambus :1;\r
- UINT32 Synchronous :1;\r
- UINT32 Cmos :1;\r
- UINT32 Edo :1;\r
- UINT32 WindowDram :1;\r
- UINT32 CacheDram :1;\r
- UINT32 Nonvolatile :1;\r
- UINT32 Reserved1 :19;\r
-} EFI_MEMORY_TYPE_DETAIL;\r
-\r
-typedef enum {\r
- EfiMemoryStateEnabled = 0,\r
- EfiMemoryStateUnknown = 1,\r
- EfiMemoryStateUnsupported = 2,\r
- EfiMemoryStateError = 3,\r
- EfiMemoryStateAbsent = 4,\r
- EfiMemoryStateDisabled = 5,\r
- EfiMemoryStatePartial = 6\r
-} EFI_MEMORY_STATE;\r
-\r
-typedef struct {\r
- STRING_REF MemoryDeviceLocator;\r
- STRING_REF MemoryBankLocator;\r
- STRING_REF MemoryManufacturer;\r
- STRING_REF MemorySerialNumber;\r
- STRING_REF MemoryAssetTag;\r
- STRING_REF MemoryPartNumber;\r
- EFI_INTER_LINK_DATA MemoryArrayLink;\r
- EFI_INTER_LINK_DATA MemorySubArrayLink;\r
- UINT16 MemoryTotalWidth;\r
- UINT16 MemoryDataWidth;\r
- EFI_EXP_BASE2_DATA MemoryDeviceSize;\r
- EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
- UINT8 MemoryDeviceSet;\r
- EFI_MEMORY_ARRAY_TYPE MemoryType;\r
- EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
- EFI_EXP_BASE10_DATA MemorySpeed;\r
- EFI_MEMORY_STATE MemoryState;\r
-} EFI_MEMORY_ARRAY_LINK_DATA;\r
-\r
-\r
-#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004\r
-\r
-typedef struct {\r
- EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;\r
- EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;\r
- EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
- UINT16 MemoryArrayPartitionWidth;\r
-} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;\r
-\r
-\r
-#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005\r
-\r
-typedef struct {\r
- EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;\r
- EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;\r
- EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;\r
- EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
- UINT8 MemoryDevicePartitionRowPosition;\r
- UINT8 MemoryDeviceInterleavePosition;\r
- UINT8 MemoryDeviceInterleaveDataDepth;\r
-} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;\r
-\r
-\r
-//\r
-// Memory. Channel Device Type - SMBIOS Type 37\r
-//\r
-\r
-#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006\r
-\r
-typedef enum _EFI_MEMORY_CHANNEL_TYPE {\r
- EfiMemoryChannelTypeOther = 1,\r
- EfiMemoryChannelTypeUnknown = 2,\r
- EfiMemoryChannelTypeRambus = 3,\r
- EfiMemoryChannelTypeSyncLink = 4\r
-} EFI_MEMORY_CHANNEL_TYPE;\r
-\r
-typedef struct {\r
- EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;\r
- UINT8 MemoryChannelMaximumLoad;\r
- UINT8 MemoryChannelDeviceCount;\r
-} EFI_MEMORY_CHANNEL_TYPE_DATA;\r
-\r
-#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007\r
-\r
-typedef struct {\r
- UINT8 DeviceId;\r
- EFI_INTER_LINK_DATA DeviceLink;\r
- UINT8 MemoryChannelDeviceLoad;\r
-} EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
-\r
-\r
-\r
-typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
- EFI_MEMORY_SIZE_DATA SizeData;\r
- EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;\r
- EFI_MEMORY_ARRAY_LINK_DATA ArrayLink;\r
- EFI_MEMORY_ARRAY_START_ADDRESS_DATA ArrayStartAddress;\r
- EFI_MEMORY_DEVICE_START_ADDRESS_DATA DeviceStartAddress;\r
- EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;\r
- EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;\r
-} EFI_MEMORY_SUBCLASS_RECORDS;\r
-\r
-typedef struct {\r
- EFI_SUBCLASS_TYPE1_HEADER Header;\r
- EFI_MEMORY_SUBCLASS_RECORDS Record;\r
-} EFI_MEMORY_SUBCLASS_DRIVER_DATA;\r
-\r
-#define EFI_MISC_SUBCLASS_VERSION 0x0100\r
-\r
-#pragma pack(1)\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Last PCI Bus Number\r
-//\r
-#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001\r
-\r
-typedef struct {\r
- UINT8 LastPciBus;\r
-} EFI_MISC_LAST_PCI_BUS_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. BIOS Vendor - SMBIOS Type 0\r
-//\r
-#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002\r
-\r
-typedef struct {\r
- UINT64 Reserved1 :2;\r
- UINT64 Unknown :1;\r
- UINT64 BiosCharacteristicsNotSupported :1;\r
- UINT64 IsaIsSupported :1;\r
- UINT64 McaIsSupported :1;\r
- UINT64 EisaIsSupported :1;\r
- UINT64 PciIsSupported :1;\r
- UINT64 PcmciaIsSupported :1;\r
- UINT64 PlugAndPlayIsSupported :1;\r
- UINT64 ApmIsSupported :1;\r
- UINT64 BiosIsUpgradable :1;\r
- UINT64 BiosShadowingAllowed :1;\r
- UINT64 VlVesaIsSupported :1;\r
- UINT64 EscdSupportIsAvailable :1;\r
- UINT64 BootFromCdIsSupported :1;\r
- UINT64 SelectableBootIsSupported :1;\r
- UINT64 RomBiosIsSocketed :1;\r
- UINT64 BootFromPcmciaIsSupported :1;\r
- UINT64 EDDSpecificationIsSupported :1;\r
- UINT64 JapaneseNecFloppyIsSupported :1;\r
- UINT64 JapaneseToshibaFloppyIsSupported :1;\r
- UINT64 Floppy525_360IsSupported :1;\r
- UINT64 Floppy525_12IsSupported :1;\r
- UINT64 Floppy35_720IsSupported :1;\r
- UINT64 Floppy35_288IsSupported :1;\r
- UINT64 PrintScreenIsSupported :1;\r
- UINT64 Keyboard8042IsSupported :1;\r
- UINT64 SerialIsSupported :1;\r
- UINT64 PrinterIsSupported :1;\r
- UINT64 CgaMonoIsSupported :1;\r
- UINT64 NecPc98 :1;\r
- UINT64 AcpiIsSupported :1;\r
- UINT64 UsbLegacyIsSupported :1;\r
- UINT64 AgpIsSupported :1;\r
- UINT64 I20BootIsSupported :1;\r
- UINT64 Ls120BootIsSupported :1;\r
- UINT64 AtapiZipDriveBootIsSupported :1;\r
- UINT64 Boot1394IsSupported :1;\r
- UINT64 SmartBatteryIsSupported :1;\r
- UINT64 BiosBootSpecIsSupported :1;\r
- UINT64 FunctionKeyNetworkBootIsSupported :1;\r
- UINT64 Reserved :22;\r
-} EFI_MISC_BIOS_CHARACTERISTICS;\r
-\r
-typedef struct {\r
- UINT64 BiosReserved :16;\r
- UINT64 SystemReserved :16;\r
- UINT64 Reserved :32;\r
-} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;\r
-\r
-typedef struct {\r
- STRING_REF BiosVendor;\r
- STRING_REF BiosVersion;\r
- STRING_REF BiosReleaseDate;\r
- EFI_PHYSICAL_ADDRESS BiosStartingAddress;\r
- EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;\r
- EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
- EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;\r
- UINT8 BiosMajorRelease;\r
- UINT8 BiosMinorRelease;\r
- UINT8 BiosEmbeddedFirmwareMajorRelease;\r
- UINT8 BiosEmbeddedFirmwareMinorRelease;\r
-} EFI_MISC_BIOS_VENDOR_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. System Manufacturer - SMBIOS Type 1\r
-//\r
-#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003\r
-\r
-typedef enum {\r
- EfiSystemWakeupTypeReserved = 0,\r
- EfiSystemWakeupTypeOther = 1,\r
- EfiSystemWakeupTypeUnknown = 2,\r
- EfiSystemWakeupTypeApmTimer = 3,\r
- EfiSystemWakeupTypeModemRing = 4,\r
- EfiSystemWakeupTypeLanRemote = 5,\r
- EfiSystemWakeupTypePowerSwitch = 6,\r
- EfiSystemWakeupTypePciPme = 7,\r
- EfiSystemWakeupTypeAcPowerRestored = 8,\r
-} EFI_MISC_SYSTEM_WAKEUP_TYPE;\r
-\r
-typedef struct {\r
- STRING_REF SystemManufacturer;\r
- STRING_REF SystemProductName;\r
- STRING_REF SystemVersion;\r
- STRING_REF SystemSerialNumber;\r
- EFI_GUID SystemUuid;\r
- EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
- STRING_REF SystemSKUNumber;\r
- STRING_REF SystemFamily;\r
-} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Base Board Manufacturer - SMBIOS Type 2\r
-//\r
-#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004\r
-\r
-typedef struct {\r
- UINT32 Motherboard :1;\r
- UINT32 RequiresDaughterCard :1;\r
- UINT32 Removable :1;\r
- UINT32 Replaceable :1;\r
- UINT32 HotSwappable :1;\r
- UINT32 Reserved :27;\r
-} EFI_BASE_BOARD_FEATURE_FLAGS;\r
-\r
-typedef enum {\r
- EfiBaseBoardTypeUnknown = 1,\r
- EfiBaseBoardTypeOther = 2,\r
- EfiBaseBoardTypeServerBlade = 3,\r
- EfiBaseBoardTypeConnectivitySwitch = 4,\r
- EfiBaseBoardTypeSystemManagementModule = 5,\r
- EfiBaseBoardTypeProcessorModule = 6,\r
- EfiBaseBoardTypeIOModule = 7,\r
- EfiBaseBoardTypeMemoryModule = 8,\r
- EfiBaseBoardTypeDaughterBoard = 9,\r
- EfiBaseBoardTypeMotherBoard = 0xA,\r
- EfiBaseBoardTypeProcessorMemoryModule = 0xB,\r
- EfiBaseBoardTypeProcessorIOModule = 0xC,\r
- EfiBaseBoardTypeInterconnectBoard = 0xD,\r
-} EFI_BASE_BOARD_TYPE;\r
-\r
-typedef struct {\r
- STRING_REF BaseBoardManufacturer;\r
- STRING_REF BaseBoardProductName;\r
- STRING_REF BaseBoardVersion;\r
- STRING_REF BaseBoardSerialNumber;\r
- STRING_REF BaseBoardAssetTag;\r
- STRING_REF BaseBoardChassisLocation;\r
- EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;\r
- EFI_BASE_BOARD_TYPE BaseBoardType;\r
- EFI_INTER_LINK_DATA BaseBoardChassisLink;\r
- UINT32 BaseBoardNumberLinks;\r
- EFI_INTER_LINK_DATA LinkN;\r
-} EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. System/Chassis Enclosure - SMBIOS Type 3\r
-//\r
-#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005\r
-\r
-typedef enum {\r
- EfiMiscChassisTypeOther = 0x1,\r
- EfiMiscChassisTypeUnknown = 0x2,\r
- EfiMiscChassisTypeDeskTop = 0x3,\r
- EfiMiscChassisTypeLowProfileDesktop = 0x4,\r
- EfiMiscChassisTypePizzaBox = 0x5,\r
- EfiMiscChassisTypeMiniTower = 0x6,\r
- EfiMiscChassisTypeTower = 0x7,\r
- EfiMiscChassisTypePortable = 0x8,\r
- EfiMiscChassisTypeLapTop = 0x9,\r
- EfiMiscChassisTypeNotebook = 0xA,\r
- EfiMiscChassisTypeHandHeld = 0xB,\r
- EfiMiscChassisTypeDockingStation = 0xC,\r
- EfiMiscChassisTypeAllInOne = 0xD,\r
- EfiMiscChassisTypeSubNotebook = 0xE,\r
- EfiMiscChassisTypeSpaceSaving = 0xF,\r
- EfiMiscChassisTypeLunchBox = 0x10,\r
- EfiMiscChassisTypeMainServerChassis = 0x11,\r
- EfiMiscChassisTypeExpansionChassis = 0x12,\r
- EfiMiscChassisTypeSubChassis = 0x13,\r
- EfiMiscChassisTypeBusExpansionChassis = 0x14,\r
- EfiMiscChassisTypePeripheralChassis = 0x15,\r
- EfiMiscChassisTypeRaidChassis = 0x16,\r
- EfiMiscChassisTypeRackMountChassis = 0x17,\r
- EfiMiscChassisTypeSealedCasePc = 0x18,\r
- EfiMiscChassisMultiSystemChassis = 0x19,\r
-} EFI_MISC_CHASSIS_TYPE;\r
-\r
-typedef struct {\r
- UINT32 ChassisType :16;\r
- UINT32 ChassisLockPresent:1;\r
- UINT32 Reserved :15;\r
-} EFI_MISC_CHASSIS_STATUS;\r
-\r
-typedef enum {\r
- EfiChassisStateOther = 0x01,\r
- EfiChassisStateUnknown = 0x02,\r
- EfiChassisStateSafe = 0x03,\r
- EfiChassisStateWarning = 0x04,\r
- EfiChassisStateCritical = 0x05,\r
- EfiChassisStateNonRecoverable = 0x06,\r
-} EFI_MISC_CHASSIS_STATE;\r
-\r
-typedef enum {\r
- EfiChassisSecurityStatusOther = 0x01,\r
- EfiChassisSecurityStatusUnknown = 0x02,\r
- EfiChassisSecurityStatusNone = 0x03,\r
- EfiChassisSecurityStatusExternalInterfaceLockedOut = 0x04,\r
- EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05,\r
-} EFI_MISC_CHASSIS_SECURITY_STATE;\r
-\r
-typedef struct {\r
- UINT32 RecordType :1;\r
- UINT32 Reserved :24;\r
-} EFI_MISC_ELEMENT_TYPE;\r
-\r
-typedef struct {\r
- EFI_MISC_ELEMENT_TYPE ChassisElementType;\r
- EFI_INTER_LINK_DATA ChassisElementStructure;\r
- EFI_BASE_BOARD_TYPE ChassisBaseBoard;\r
- UINT32 ChassisElementMinimum;\r
- UINT32 ChassisElementMaximum;\r
-} EFI_MISC_ELEMENTS;\r
-\r
-typedef struct {\r
- STRING_REF ChassisManufacturer;\r
- STRING_REF ChassisVersion;\r
- STRING_REF ChassisSerialNumber;\r
- STRING_REF ChassisAssetTag;\r
- EFI_MISC_CHASSIS_STATUS ChassisType;\r
- EFI_MISC_CHASSIS_STATE ChassisBootupState;\r
- EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;\r
- EFI_MISC_CHASSIS_STATE ChassisThermalState;\r
- EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;\r
- UINT32 ChassisOemDefined;\r
- UINT32 ChassisHeight;\r
- UINT32 ChassisNumberPowerCords;\r
- UINT32 ChassisElementCount;\r
- UINT32 ChassisElementRecordLength;//\r
- EFI_MISC_ELEMENTS ChassisElements;\r
-} EFI_MISC_CHASSIS_MANUFACTURER_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Port Connector Information - SMBIOS Type 8\r
-//\r
-#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006\r
-\r
-typedef enum {\r
- EfiPortConnectorTypeNone = 0x00,\r
- EfiPortConnectorTypeCentronics = 0x01,\r
- EfiPortConnectorTypeMiniCentronics = 0x02,\r
- EfiPortConnectorTypeProprietary = 0x03,\r
- EfiPortConnectorTypeDB25Male = 0x04,\r
- EfiPortConnectorTypeDB25Female = 0x05,\r
- EfiPortConnectorTypeDB15Male = 0x06,\r
- EfiPortConnectorTypeDB15Female = 0x07,\r
- EfiPortConnectorTypeDB9Male = 0x08,\r
- EfiPortConnectorTypeDB9Female = 0x09,\r
- EfiPortConnectorTypeRJ11 = 0x0A,\r
- EfiPortConnectorTypeRJ45 = 0x0B,\r
- EfiPortConnectorType50PinMiniScsi = 0x0C,\r
- EfiPortConnectorTypeMiniDin = 0x0D,\r
- EfiPortConnectorTypeMicriDin = 0x0E,\r
- EfiPortConnectorTypePS2 = 0x0F,\r
- EfiPortConnectorTypeInfrared = 0x10,\r
- EfiPortConnectorTypeHpHil = 0x11,\r
- EfiPortConnectorTypeUsb = 0x12,\r
- EfiPortConnectorTypeSsaScsi = 0x13,\r
- EfiPortConnectorTypeCircularDin8Male = 0x14,\r
- EfiPortConnectorTypeCircularDin8Female = 0x15,\r
- EfiPortConnectorTypeOnboardIde = 0x16,\r
- EfiPortConnectorTypeOnboardFloppy = 0x17,\r
- EfiPortConnectorType9PinDualInline = 0x18,\r
- EfiPortConnectorType25PinDualInline = 0x19,\r
- EfiPortConnectorType50PinDualInline = 0x1A,\r
- EfiPortConnectorType68PinDualInline = 0x1B,\r
- EfiPortConnectorTypeOnboardSoundInput = 0x1C,\r
- EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,\r
- EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,\r
- EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,\r
- EfiPortConnectorTypeBNC = 0x20,\r
- EfiPortConnectorType1394 = 0x21,\r
- EfiPortConnectorTypePC98 = 0xA0,\r
- EfiPortConnectorTypePC98Hireso = 0xA1,\r
- EfiPortConnectorTypePCH98 = 0xA2,\r
- EfiPortConnectorTypePC98Note = 0xA3,\r
- EfiPortConnectorTypePC98Full = 0xA4,\r
- EfiPortConnectorTypeOther = 0xFF,\r
-} EFI_MISC_PORT_CONNECTOR_TYPE;\r
-\r
-typedef enum {\r
- EfiPortTypeNone = 0x00,\r
- EfiPortTypeParallelXtAtCompatible = 0x01,\r
- EfiPortTypeParallelPortPs2 = 0x02,\r
- EfiPortTypeParallelPortEcp = 0x03,\r
- EfiPortTypeParallelPortEpp = 0x04,\r
- EfiPortTypeParallelPortEcpEpp = 0x05,\r
- EfiPortTypeSerialXtAtCompatible = 0x06,\r
- EfiPortTypeSerial16450Compatible = 0x07,\r
- EfiPortTypeSerial16550Compatible = 0x08,\r
- EfiPortTypeSerial16550ACompatible = 0x09,\r
- EfiPortTypeScsi = 0x0A,\r
- EfiPortTypeMidi = 0x0B,\r
- EfiPortTypeJoyStick = 0x0C,\r
- EfiPortTypeKeyboard = 0x0D,\r
- EfiPortTypeMouse = 0x0E,\r
- EfiPortTypeSsaScsi = 0x0F,\r
- EfiPortTypeUsb = 0x10,\r
- EfiPortTypeFireWire = 0x11,\r
- EfiPortTypePcmciaTypeI = 0x12,\r
- EfiPortTypePcmciaTypeII = 0x13,\r
- EfiPortTypePcmciaTypeIII = 0x14,\r
- EfiPortTypeCardBus = 0x15,\r
- EfiPortTypeAccessBusPort = 0x16,\r
- EfiPortTypeScsiII = 0x17,\r
- EfiPortTypeScsiWide = 0x18,\r
- EfiPortTypePC98 = 0x19,\r
- EfiPortTypePC98Hireso = 0x1A,\r
- EfiPortTypePCH98 = 0x1B,\r
- EfiPortTypeVideoPort = 0x1C,\r
- EfiPortTypeAudioPort = 0x1D,\r
- EfiPortTypeModemPort = 0x1E,\r
- EfiPortTypeNetworkPort = 0x1F,\r
- EfiPortType8251Compatible = 0xA0,\r
- EfiPortType8251FifoCompatible = 0xA1,\r
- EfiPortTypeOther = 0xFF,\r
-} EFI_MISC_PORT_TYPE;\r
-\r
-typedef struct {\r
- STRING_REF PortInternalConnectorDesignator;\r
- STRING_REF PortExternalConnectorDesignator;\r
- EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
- EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
- EFI_MISC_PORT_TYPE PortType;\r
- EFI_MISC_PORT_DEVICE_PATH PortPath;\r
-} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. System Slots - SMBIOS Type 9\r
-//\r
-#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007\r
-\r
-typedef enum {\r
- EfiSlotTypeOther = 0x01,\r
- EfiSlotTypeUnknown = 0x02,\r
- EfiSlotTypeIsa = 0x03,\r
- EfiSlotTypeMca = 0x04,\r
- EfiSlotTypeEisa = 0x05,\r
- EfiSlotTypePci = 0x06,\r
- EfiSlotTypePcmcia = 0x07,\r
- EfiSlotTypeVlVesa = 0x08,\r
- EfiSlotTypeProprietary = 0x09,\r
- EfiSlotTypeProcessorCardSlot = 0x0A,\r
- EfiSlotTypeProprietaryMemoryCardSlot = 0x0B,\r
- EfiSlotTypeIORiserCardSlot = 0x0C,\r
- EfiSlotTypeNuBus = 0x0D,\r
- EfiSlotTypePci66MhzCapable = 0x0E,\r
- EfiSlotTypeAgp = 0x0F,\r
- EfiSlotTypeApg2X = 0x10,\r
- EfiSlotTypeAgp4X = 0x11,\r
- EfiSlotTypePciX = 0x12,\r
- EfiSlotTypeAgp4x = 0x13,\r
- EfiSlotTypePC98C20 = 0xA0,\r
- EfiSlotTypePC98C24 = 0xA1,\r
- EfiSlotTypePC98E = 0xA2,\r
- EfiSlotTypePC98LocalBus = 0xA3,\r
- EfiSlotTypePC98Card = 0xA4,\r
- EfiSlotTypePciExpress = 0xA5\r
-} EFI_MISC_SLOT_TYPE;\r
-\r
-typedef enum {\r
- EfiSlotDataBusWidthOther = 0x01,\r
- EfiSlotDataBusWidthUnknown = 0x02,\r
- EfiSlotDataBusWidth8Bit = 0x03,\r
- EfiSlotDataBusWidth16Bit = 0x04,\r
- EfiSlotDataBusWidth32Bit = 0x05,\r
- EfiSlotDataBusWidth64Bit = 0x06,\r
- EfiSlotDataBusWidth128Bit = 0x07,\r
-} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
-\r
-typedef enum {\r
- EfiSlotUsageOther = 1,\r
- EfiSlotUsageUnknown = 2,\r
- EfiSlotUsageAvailable = 3,\r
- EfiSlotUsageInUse = 4,\r
-} EFI_MISC_SLOT_USAGE;\r
-\r
-typedef enum {\r
- EfiSlotLengthOther = 1,\r
- EfiSlotLengthUnknown = 2,\r
- EfiSlotLengthShort = 3,\r
- EfiSlotLengthLong = 4\r
-} EFI_MISC_SLOT_LENGTH;\r
-\r
-typedef struct {\r
- UINT32 CharacteristicsUnknown :1;\r
- UINT32 Provides50Volts :1;\r
- UINT32 Provides33Volts :1;\r
- UINT32 SharedSlot :1;\r
- UINT32 PcCard16Supported :1;\r
- UINT32 CardBusSupported :1;\r
- UINT32 ZoomVideoSupported :1;\r
- UINT32 ModemRingResumeSupported:1;\r
- UINT32 PmeSignalSupported :1;\r
- UINT32 HotPlugDevicesSupported :1;\r
- UINT32 SmbusSignalSupported :1;\r
- UINT32 Reserved :21;\r
-} EFI_MISC_SLOT_CHARACTERISTICS;\r
-\r
-typedef struct {\r
- STRING_REF SlotDesignation;\r
- EFI_MISC_SLOT_TYPE SlotType;\r
- EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;\r
- EFI_MISC_SLOT_USAGE SlotUsage;\r
- EFI_MISC_SLOT_LENGTH SlotLength;\r
- UINT16 SlotId;\r
- EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;\r
- EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;\r
-} EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Onboard Device - SMBIOS Type 10\r
-//\r
-#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008\r
-\r
-typedef enum {\r
- EfiOnBoardDeviceTypeOther = 1,\r
- EfiOnBoardDeviceTypeUnknown = 2,\r
- EfiOnBoardDeviceTypeVideo = 3,\r
- EfiOnBoardDeviceTypeScsiController = 4,\r
- EfiOnBoardDeviceTypeEthernet = 5,\r
- EfiOnBoardDeviceTypeTokenRing = 6,\r
- EfiOnBoardDeviceTypeSound = 7,\r
-} EFI_MISC_ONBOARD_DEVICE_TYPE;\r
-\r
-typedef struct {\r
- UINT32 DeviceType :16;\r
- UINT32 DeviceEnabled :1;\r
- UINT32 Reserved :15;\r
-} EFI_MISC_ONBOARD_DEVICE_STATUS;\r
-\r
-typedef struct {\r
- STRING_REF OnBoardDeviceDescription;\r
- EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
- EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;\r
-} EFI_MISC_ONBOARD_DEVICE_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. BIOS Language Information - SMBIOS Type 11\r
-//\r
-#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009\r
-\r
-typedef struct {\r
- STRING_REF OemStringRef[1];\r
-} EFI_MISC_OEM_STRING_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. System Options - SMBIOS Type 12\r
-//\r
-typedef struct {\r
- STRING_REF SystemOptionStringRef[1];\r
-} EFI_MISC_SYSTEM_OPTION_STRING_DATA;\r
-\r
-#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Number of Installable Languages - SMBIOS Type 13\r
-//\r
-#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B\r
-\r
-typedef struct {\r
- UINT32 AbbreviatedLanguageFormat :1;\r
- UINT32 Reserved :31;\r
-} EFI_MISC_LANGUAGE_FLAGS;\r
-\r
-typedef struct {\r
- UINT16 NumberOfInstallableLanguages;\r
- EFI_MISC_LANGUAGE_FLAGS LanguageFlags;\r
- UINT16 CurrentLanguageNumber;\r
-} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. System Language String\r
-//\r
-#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C\r
-\r
-typedef struct {\r
- UINT16 LanguageId;\r
- STRING_REF SystemLanguageString;\r
-} EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Group Associations - SMBIOS Type 14\r
-//\r
-#define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D\r
-\r
-typedef struct {\r
- STRING_REF GroupName;\r
- UINT16 NumberGroupItems;\r
- UINT16 GroupId;\r
-} EFI_MISC_GROUP_NAME_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Group Item Set Element\r
-//\r
-#define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E\r
-\r
-typedef struct {\r
- EFI_GUID SubClass;\r
- EFI_INTER_LINK_DATA GroupLink;\r
- UINT16 GroupId;\r
- UINT16 GroupElementId;\r
-} EFI_MISC_GROUP_ITEM_SET_DATA;\r
-\r
-// Misc. System Event Log - SMBIOS Type 15\r
-//\r
-#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x0000000D\r
-typedef struct {\r
- UINT16 LogAreaLength;\r
- UINT16 LogHeaderStartOffset;\r
- UINT16 LogDataStartOffset;\r
- UINT8 AccessMethod;\r
- UINT8 LogStatus;\r
- UINT32 LogChangeToken;\r
- UINT32 AccessMethodAddress;\r
- UINT8 LogHeaderFormat;\r
- UINT8 NumberOfSupportedLogType;\r
- UINT8 LengthOfLogDescriptor;\r
-} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
-\r
-//\r
-// Access Method.\r
-// 0x00~0x04: as following definition\r
-// 0x05~0x7f: Available for future assignment.\r
-// 0x80~0xff: BIOS Vendor/OEM-specific.\r
-//\r
-#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00\r
-#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01\r
-#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02\r
-#define ACCESS_MEMORY_MAPPED 0x03\r
-#define ACCESS_GPNV 0x04\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Pointing Device Type - SMBIOS Type 21\r
-//\r
-#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F\r
-\r
-typedef enum {\r
- EfiPointingDeviceTypeOther = 0x01,\r
- EfiPointingDeviceTypeUnknown = 0x02,\r
- EfiPointingDeviceTypeMouse = 0x03,\r
- EfiPointingDeviceTypeTrackBall = 0x04,\r
- EfiPointingDeviceTypeTrackPoint = 0x05,\r
- EfiPointingDeviceTypeGlidePoint = 0x06,\r
- EfiPointingDeviceTouchPad = 0x07,\r
- EfiPointingDeviceTouchScreen = 0x08,\r
- EfiPointingDeviceOpticalSensor = 0x09,\r
-} EFI_MISC_POINTING_DEVICE_TYPE;\r
-\r
-typedef enum {\r
- EfiPointingDeviceInterfaceOther = 0x01,\r
- EfiPointingDeviceInterfaceUnknown = 0x02,\r
- EfiPointingDeviceInterfaceSerial = 0x03,\r
- EfiPointingDeviceInterfacePs2 = 0x04,\r
- EfiPointingDeviceInterfaceInfrared = 0x05,\r
- EfiPointingDeviceInterfaceHpHil = 0x06,\r
- EfiPointingDeviceInterfaceBusMouse = 0x07,\r
- EfiPointingDeviceInterfaceADB = 0x08,\r
- EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,\r
- EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,\r
- EfiPointingDeviceInterfaceUsb = 0xA2,\r
-} EFI_MISC_POINTING_DEVICE_INTERFACE;\r
-\r
-typedef struct {\r
- EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;\r
- EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;\r
- UINT16 NumberPointingDeviceButtons;\r
- EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;\r
-} EFI_MISC_PORTING_DEVICE_TYPE_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Portable Battery - SMBIOS Type 22\r
-//\r
-#define EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER 0x00000010\r
-\r
-typedef enum {\r
- EfiBatteryDeviceChemistryTypeOther = 0x01,\r
- EfiBatteryDeviceChemistryTypeUnknown = 0x02,\r
- EfiBatteryDeviceChemistryTypeLeadAcid = 0x03,\r
- EfiBatteryDeviceChemistryTypeNickelCadmium = 0x04,\r
- EfiBatteryDeviceChemistryTypeNickelMetalHydride = 0x05,\r
- EfiBatteryDeviceChemistryTypeLithiumIon = 0x06,\r
- EfiBatteryDeviceChemistryTypeZincAir = 0x07,\r
- EfiBatteryDeviceChemistryTypeLithiumPolymer = 0x08,\r
-} EFI_MISC_BATTERY_DEVICE_CHEMISTRY;\r
-\r
-typedef struct {\r
- UINT32 Date :5;\r
- UINT32 Month :4;\r
- UINT32 Year :7;\r
- UINT32 Reserved :16;\r
-} EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE;\r
-\r
-typedef struct {\r
- STRING_REF BatteryLocation;\r
- STRING_REF BatteryManufacturer;\r
- STRING_REF BatteryManufactureDate;\r
- STRING_REF BatterySerialNumber;\r
- STRING_REF BatteryDeviceName;\r
- STRING_REF BatterySbdsVersionNumber;\r
- STRING_REF BatterySbdsDeviceChemistry;\r
- EFI_MISC_BATTERY_DEVICE_CHEMISTRY BatteryDeviceChemistry;\r
- EFI_EXP_BASE10_DATA BatteryDesignCapacity;\r
- EFI_EXP_BASE10_DATA BatteryDesignVoltage;\r
- UINT16 BatteryMaximumError;\r
- UINT16 BatterySbdsSerialNumber;\r
- EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE\r
- BatterySbdsManufacturingDate;\r
- UINT32 BatteryOemSpecific;\r
-} EFI_MISC_BATTERY_LOCATION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Reset Capabilities - SMBIOS Type 23\r
-//\r
-#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011\r
-\r
-typedef struct {\r
- UINT32 Status :1;\r
- UINT32 BootOption :2;\r
- UINT32 BootOptionOnLimit :2;\r
- UINT32 WatchdogTimerPresent:1;\r
- UINT32 Reserved :26;\r
-} EFI_MISC_RESET_CAPABILITIES_TYPE;\r
-\r
-typedef struct {\r
- EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;\r
- UINT16 ResetCount;\r
- UINT16 ResetLimit;\r
- UINT16 ResetTimerInterval;\r
- UINT16 ResetTimeout;\r
-} EFI_MISC_RESET_CAPABILITIES;\r
-\r
-typedef struct {\r
- EFI_MISC_RESET_CAPABILITIES ResetCapabilities;\r
- UINT16 ResetCount;\r
- UINT16 ResetLimit;\r
- UINT16 ResetTimerInterval;\r
- UINT16 ResetTimeout;\r
-} EFI_MISC_RESET_CAPABILITIES_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Hardware Security - SMBIOS Type 24\r
-//\r
-#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012\r
-\r
-typedef enum {\r
- EfiHardwareSecurityStatusDisabled = 0,\r
- EfiHardwareSecurityStatusEnabled = 1,\r
- EfiHardwareSecurityStatusNotImplemented = 2,\r
- EfiHardwareSecurityStatusUnknown = 3\r
-} EFI_MISC_HARDWARE_SECURITY_STATUS;\r
-\r
-typedef struct {\r
- EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;\r
- EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;\r
-} EFI_MISC_HARDWARE_SECURITY_SETTINGS;\r
-\r
-typedef struct {\r
- EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;\r
-} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// System Power Controls - SMBIOS Type 25\r
-//\r
-#define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013\r
-\r
-typedef struct {\r
- UINT16 ScheduledPoweronMonth;\r
- UINT16 ScheduledPoweronDayOfMonth;\r
- UINT16 ScheduledPoweronHour;\r
- UINT16 ScheduledPoweronMinute;\r
- UINT16 ScheduledPoweronSecond;\r
-} EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Voltage Probe - SMBIOS Type 26\r
-//\r
-#define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014\r
-\r
-typedef struct {\r
- UINT32 VoltageProbeSite :5;\r
- UINT32 VoltageProbeStatus :3;\r
- UINT32 Reserved :24;\r
-} EFI_MISC_VOLTAGE_PROBE_LOCATION;\r
-\r
-typedef struct {\r
- STRING_REF VoltageProbeDescription;\r
- EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;\r
- EFI_EXP_BASE10_DATA VoltageProbeMaximumValue;\r
- EFI_EXP_BASE10_DATA VoltageProbeMinimumValue;\r
- EFI_EXP_BASE10_DATA VoltageProbeResolution;\r
- EFI_EXP_BASE10_DATA VoltageProbeTolerance;\r
- EFI_EXP_BASE10_DATA VoltageProbeAccuracy;\r
- EFI_EXP_BASE10_DATA VoltageProbeNominalValue;\r
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
- UINT32 VoltageProbeOemDefined;\r
-} EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Cooling Device - SMBIOS Type 27\r
-//\r
-#define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015\r
-\r
-typedef struct {\r
- UINT32 CoolingDevice :5;\r
- UINT32 CoolingDeviceStatus :3;\r
- UINT32 Reserved :24;\r
-} EFI_MISC_COOLING_DEVICE_TYPE;\r
-\r
-typedef struct {\r
- EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
- EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
- UINT16 CoolingDeviceUnitGroup;\r
- EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
- UINT32 CoolingDeviceOemDefined;\r
-} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Temperature Probe - SMBIOS Type 28\r
-//\r
-#define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016\r
-\r
-typedef struct {\r
- UINT32 TemperatureProbeSite :5;\r
- UINT32 TemperatureProbeStatus :3;\r
- UINT32 Reserved :24;\r
-} EFI_MISC_TEMPERATURE_PROBE_LOCATION;\r
-\r
-typedef struct {\r
- STRING_REF TemperatureProbeDescription;\r
- EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
- TemperatureProbeLocation;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
- EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
- EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
- EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
- EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
- UINT32 TemperatureProbeOemDefined;\r
-} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Electrical Current Probe - SMBIOS Type 29\r
-//\r
-\r
-#define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017\r
-\r
-typedef struct {\r
- UINT32 ElectricalCurrentProbeSite :5;\r
- UINT32 ElectricalCurrentProbeStatus :3;\r
- UINT32 Reserved :24;\r
-} EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;\r
-\r
-typedef struct {\r
- STRING_REF ElectricalCurrentProbeDescription;\r
- EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION\r
- ElectricalCurrentProbeLocation;\r
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeMaximumValue;\r
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeMinimumValue;\r
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeResolution;\r
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeTolerance;\r
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeAccuracy;\r
- EFI_EXP_BASE10_DATA ElectricalCurrentProbeNominalValue;\r
- EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
- EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
- EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
- UINT32 ElectricalCurrentProbeOemDefined;\r
-} EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Out-of-Band Remote Access - SMBIOS Type 30\r
-//\r
-\r
-#define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018\r
-\r
-typedef struct {\r
- UINT32 InboundConnectionEnabled :1;\r
- UINT32 OutboundConnectionEnabled :1;\r
- UINT32 Reserved :30;\r
-} EFI_MISC_REMOTE_ACCESS_CONNECTIONS;\r
-\r
-typedef struct {\r
- STRING_REF RemoteAccessManufacturerNameDescription;\r
- EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;\r
-} EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. BIS Entry Point - SMBIOS Type 31\r
-//\r
-#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019\r
-\r
-typedef struct {\r
- EFI_PHYSICAL_ADDRESS BisEntryPoint;\r
-} EFI_MISC_BIS_ENTRY_POINT_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Misc. Boot Information - SMBIOS Type 32\r
-//\r
-#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A\r
-\r
-typedef enum {\r
- EfiBootInformationStatusNoError = 0x00,\r
- EfiBootInformationStatusNoBootableMedia = 0x01,\r
- EfiBootInformationStatusNormalOSFailedLoading = 0x02,\r
- EfiBootInformationStatusFirmwareDetectedFailure = 0x03,\r
- EfiBootInformationStatusOSDetectedFailure = 0x04,\r
- EfiBootInformationStatusUserRequestedBoot = 0x05,\r
- EfiBootInformationStatusSystemSecurityViolation = 0x06,\r
- EfiBootInformationStatusPreviousRequestedImage = 0x07,\r
- EfiBootInformationStatusWatchdogTimerExpired = 0x08,\r
- EfiBootInformationStatusStartReserved = 0x09,\r
- EfiBootInformationStatusStartOemSpecific = 0x80,\r
- EfiBootInformationStatusStartProductSpecific = 0xC0,\r
-} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;\r
-\r
-typedef struct {\r
- EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
- UINT8 BootInformationData[9];\r
-} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Management Device - SMBIOS Type 34\r
-//\r
-#define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B\r
-\r
-typedef enum {\r
- EfiManagementDeviceTypeOther = 0x01,\r
- EfiManagementDeviceTypeUnknown = 0x02,\r
- EfiManagementDeviceTypeLm75 = 0x03,\r
- EfiManagementDeviceTypeLm78 = 0x04,\r
- EfiManagementDeviceTypeLm79 = 0x05,\r
- EfiManagementDeviceTypeLm80 = 0x06,\r
- EfiManagementDeviceTypeLm81 = 0x07,\r
- EfiManagementDeviceTypeAdm9240 = 0x08,\r
- EfiManagementDeviceTypeDs1780 = 0x09,\r
- EfiManagementDeviceTypeMaxim1617 = 0x0A,\r
- EfiManagementDeviceTypeGl518Sm = 0x0B,\r
- EfiManagementDeviceTypeW83781D = 0x0C,\r
- EfiManagementDeviceTypeHt82H791 = 0x0D,\r
-} EFI_MISC_MANAGEMENT_DEVICE_TYPE;\r
-\r
-typedef enum {\r
- EfiManagementDeviceAddressTypeOther = 1,\r
- EfiManagementDeviceAddressTypeUnknown = 2,\r
- EfiManagementDeviceAddressTypeIOPort = 3,\r
- EfiManagementDeviceAddressTypeMemory = 4,\r
- EfiManagementDeviceAddressTypeSmbus = 5\r
-} EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;\r
-\r
-typedef struct {\r
- STRING_REF ManagementDeviceDescription;\r
- EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;\r
- UINTN ManagementDeviceAddress;\r
- EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE\r
- ManagementDeviceAddressType;\r
-} EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Management Device Component - SMBIOS Type 35\r
-//\r
-\r
-#define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C\r
-\r
-typedef struct {\r
- STRING_REF ManagementDeviceComponentDescription;\r
- EFI_INTER_LINK_DATA ManagementDeviceLink;\r
- EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
-} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// IPMI Data Record - SMBIOS Type 38\r
-//\r
-typedef enum {\r
- EfiIpmiOther = 0,\r
- EfiIpmiKcs = 1,\r
- EfiIpmiSmic = 2,\r
- EfiIpmiBt = 3,\r
-} EFI_MISC_IPMI_INTERFACE_TYPE;\r
-\r
-typedef struct {\r
- UINT16 IpmiSpecLeastSignificantDigit:4;\r
- UINT16 IpmiSpecMostSignificantDigit: 4;\r
- UINT16 Reserved: 8;\r
-} EFI_MISC_IPMI_SPECIFICATION_REVISION;\r
-\r
-typedef struct {\r
- EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;\r
- EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;\r
- UINT16 IpmiI2CSlaveAddress;\r
- UINT16 IpmiNvDeviceAddress;\r
- UINT64 IpmiBaseAddress;\r
- EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;\r
-} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
-\r
-#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-//System Power supply Record - SMBIOS Type 39\r
-//\r
-typedef struct {\r
- UINT16 PowerSupplyHotReplaceable :1;\r
- UINT16 PowerSupplyPresent :1;\r
- UINT16 PowerSupplyUnplugged :1;\r
- UINT16 InputVoltageRangeSwitch :4;\r
- UINT16 PowerSupplyStatus :3;\r
- UINT16 PowerSupplyType :4;\r
- UINT16 Reserved :2;\r
-} POWER_SUPPLY_CHARACTERISTICS;\r
-\r
-typedef struct {\r
- UINT16 PowerUnitGroup;\r
- STRING_REF PowerSupplyLocation;\r
- STRING_REF PowerSupplyDeviceName;\r
- STRING_REF PowerSupplyManufacturer;\r
- STRING_REF PowerSupplySerialNumber;\r
- STRING_REF PowerSupplyAssetTagNumber;\r
- STRING_REF PowerSupplyModelPartNumber;\r
- STRING_REF PowerSupplyRevisionLevel;\r
- UINT16 PowerSupplyMaxPowerCapacity;\r
- POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\r
- EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;\r
- EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;\r
- EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;\r
-} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;\r
-\r
-#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E\r
-\r
-//\r
-//////////////////////////////////////////////////////////////////////////////\r
-//\r
-// OEM Data Record - SMBIOS Type 0x80-0xFF\r
-//\r
-typedef struct {\r
- UINT8 Type;\r
- UINT8 Length;\r
- UINT16 Handle;\r
-} SMBIOS_STRUCTURE_HDR;\r
-\r
-typedef struct {\r
- SMBIOS_STRUCTURE_HDR Header;\r
- UINT8 RawData[1];\r
-} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;\r
-\r
-#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F\r
-\r
-//\r
-// Declare the following strutures alias to use them more conviniently.\r
-//\r
-typedef EFI_MISC_LAST_PCI_BUS_DATA EFI_MISC_LAST_PCI_BUS;\r
-typedef EFI_MISC_BIOS_VENDOR_DATA EFI_MISC_BIOS_VENDOR;\r
-typedef EFI_MISC_SYSTEM_MANUFACTURER_DATA EFI_MISC_SYSTEM_MANUFACTURER;\r
-typedef EFI_MISC_BASE_BOARD_MANUFACTURER_DATA EFI_MISC_BASE_BOARD_MANUFACTURER;\r
-typedef EFI_MISC_CHASSIS_MANUFACTURER_DATA EFI_MISC_CHASSIS_MANUFACTURER;\r
-typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;\r
-typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;\r
-typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;\r
-typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
-typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;\r
-typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;\r
-typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;\r
-typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUAGE_STRING;\r
-typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG;\r
-typedef EFI_MISC_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;\r
-typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;\r
-typedef EFI_MISC_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;\r
-typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;\r
-\r
-typedef union {\r
- EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;\r
- EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;\r
- EFI_MISC_SYSTEM_MANUFACTURER_DATA MiscSystemManufacturer;\r
- EFI_MISC_BASE_BOARD_MANUFACTURER_DATA MiscBaseBoardManufacturer;\r
- EFI_MISC_CHASSIS_MANUFACTURER_DATA MiscChassisManufacturer;\r
- EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA MiscPortInternalConnectorDesignator;\r
- EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA MiscSystemSlotDesignation;\r
- EFI_MISC_ONBOARD_DEVICE_DATA MiscOnboardDevice;\r
- EFI_MISC_OEM_STRING_DATA MiscOemString;\r
- EFI_MISC_SYSTEM_OPTION_STRING_DATA MiscOptionString;\r
- EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA NumberOfInstallableLanguages;\r
- EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA MiscSystemLanguageString;\r
- EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;\r
- EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;\r
- EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;\r
- EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;\r
- EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;\r
- EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;\r
- EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;\r
- EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA MiscVoltagePorbeDescriptionData;\r
- EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA MiscCoolingDeviceTempLinkData;\r
- EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA MiscTemperatureProbeDescriptionData;\r
- EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA MiscElectricalCurrentProbeDescriptionData;\r
- EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA\r
- MiscRemoteAccessManufacturerDescriptionData;\r
- EFI_MISC_BIS_ENTRY_POINT_DATA MiscBisEntryPoint;\r
- EFI_MISC_BOOT_INFORMATION_STATUS_DATA MiscBootInformationStatus;\r
- EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA MiscMangementDeviceDescriptionData;\r
- EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
- MiscmangementDeviceComponentDescriptionData;\r
- EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;\r
- EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;\r
- EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;\r
-} EFI_MISC_SUBCLASS_RECORDS;\r
-\r
-//\r
-//\r
-//\r
-typedef struct {\r
- EFI_SUBCLASS_TYPE1_HEADER Header;\r
- EFI_MISC_SUBCLASS_RECORDS Record;\r
-} EFI_MISC_SUBCLASS_DRIVER_DATA;\r
-\r
-#pragma pack()\r
-\r
-//\r
-// Sub Class Header type1\r
-//\r
-\r
-#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
-#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- Include file that supportes Framework extension to the EFI 1.10 spec.\r
-\r
- This include file must only contain things defined in the Framework\r
- specifications. If a code construct is defined in the Framework specification\r
- it must be included by this include file.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkDxeCis.h\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_DXE_CIS_H_\r
-#define _FRAMEWORK_DXE_CIS_H_\r
-\r
-#include <PiDxe.h>\r
-#include <Common/FrameworkStatusCode.h>\r
-#include <Protocol/StatusCode.h>\r
-\r
-//\r
-// Function prototype for invoking a function on an Application Processor\r
-// Used by both the SMM infrastructure and the MP Services Protocol\r
-//\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_AP_PROCEDURE) (\r
- IN VOID *Buffer\r
- );\r
-\r
-typedef struct {\r
- EFI_TABLE_HEADER Hdr;\r
-\r
- //\r
- // Time services\r
- //\r
- EFI_GET_TIME GetTime;\r
- EFI_SET_TIME SetTime;\r
- EFI_GET_WAKEUP_TIME GetWakeupTime;\r
- EFI_SET_WAKEUP_TIME SetWakeupTime;\r
-\r
- //\r
- // Virtual memory services\r
- //\r
- EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;\r
- EFI_CONVERT_POINTER ConvertPointer;\r
-\r
- //\r
- // Variable services\r
- //\r
- EFI_GET_VARIABLE GetVariable;\r
- EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;\r
- EFI_SET_VARIABLE SetVariable;\r
-\r
- //\r
- // Misc\r
- //\r
- EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;\r
- EFI_RESET_SYSTEM ResetSystem;\r
-\r
- //\r
- // Framework extension to EFI 1.10 runtime table\r
- // It was moved to a protocol to not conflict with UEFI 2.0\r
- //\r
- EFI_REPORT_STATUS_CODE ReportStatusCode;\r
-} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
-\r
-#define EFI_EVENT_RUNTIME_CONTEXT 0x20000000\r
-#define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400\r
-#define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203\r
-#define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204\r
-\r
-\r
-typedef struct {\r
- EFI_DEVICE_PATH_PROTOCOL Header;\r
- EFI_GUID TianoSpecificDevicePath;\r
- UINT32 Type;\r
-} TIANO_DEVICE_PATH;\r
-\r
-#define TIANO_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE 0x01\r
-typedef struct {\r
- TIANO_DEVICE_PATH Tiano;\r
- EFI_GUID NameGuid;\r
-} FRAMEWORK_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
-\r
-\r
-//\r
-// Function prototype for invoking a function on an Application Processor\r
-// Used by both the SMM infrastructure and the MP Services Protocol\r
-//\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_AP_PROCEDURE) (\r
- IN VOID *Buffer\r
- );\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- This file defines the data structures that comprise the FFS file system.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkFirmwareFileSystem.h\r
-\r
- @par Revision Reference:\r
- These definitions are from Firmware File System Spec 0.9 but not in PI specs.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
-#define _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
-\r
-#include <PiPei.h>\r
-\r
-typedef UINT16 EFI_FFS_FILE_TAIL;\r
-\r
-#define FFS_ATTRIB_TAIL_PRESENT 0x01\r
-#define FFS_ATTRIB_RECOVERY 0x02\r
-#define FFS_ATTRIB_HEADER_EXTENSION 0x04\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- Defines data structure that is the volume header found at the beginning of\r
- all firmware volumes that are either memory mapped, or have an\r
- associated FirmwareVolumeBlock protocol.\r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: FirmwareVolumeHeader.h\r
-\r
- @par Revision Reference:\r
- These definitions are from Firmware Volume Block Spec 0.9.\r
-\r
-**/\r
-\r
-#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__\r
-#define __EFI_FIRMWARE_VOLUME_HEADER_H__\r
-\r
-//\r
-// Firmware Volume Block Attributes definition\r
-//\r
-typedef UINT32 EFI_FVB_ATTRIBUTES;\r
-\r
-//\r
-// Firmware Volume Block Attributes bit definitions\r
-//\r
-#define EFI_FVB_READ_DISABLED_CAP 0x00000001\r
-#define EFI_FVB_READ_ENABLED_CAP 0x00000002\r
-#define EFI_FVB_READ_STATUS 0x00000004\r
-\r
-#define EFI_FVB_WRITE_DISABLED_CAP 0x00000008\r
-#define EFI_FVB_WRITE_ENABLED_CAP 0x00000010\r
-#define EFI_FVB_WRITE_STATUS 0x00000020\r
-\r
-#define EFI_FVB_LOCK_CAP 0x00000040\r
-#define EFI_FVB_LOCK_STATUS 0x00000080\r
-\r
-#define EFI_FVB_STICKY_WRITE 0x00000200\r
-#define EFI_FVB_MEMORY_MAPPED 0x00000400\r
-#define EFI_FVB_ERASE_POLARITY 0x00000800\r
-\r
-#define EFI_FVB_ALIGNMENT_CAP 0x00008000\r
-#define EFI_FVB_ALIGNMENT_2 0x00010000\r
-#define EFI_FVB_ALIGNMENT_4 0x00020000\r
-#define EFI_FVB_ALIGNMENT_8 0x00040000\r
-#define EFI_FVB_ALIGNMENT_16 0x00080000\r
-#define EFI_FVB_ALIGNMENT_32 0x00100000\r
-#define EFI_FVB_ALIGNMENT_64 0x00200000\r
-#define EFI_FVB_ALIGNMENT_128 0x00400000\r
-#define EFI_FVB_ALIGNMENT_256 0x00800000\r
-#define EFI_FVB_ALIGNMENT_512 0x01000000\r
-#define EFI_FVB_ALIGNMENT_1K 0x02000000\r
-#define EFI_FVB_ALIGNMENT_2K 0x04000000\r
-#define EFI_FVB_ALIGNMENT_4K 0x08000000\r
-#define EFI_FVB_ALIGNMENT_8K 0x10000000\r
-#define EFI_FVB_ALIGNMENT_16K 0x20000000\r
-#define EFI_FVB_ALIGNMENT_32K 0x40000000\r
-#define EFI_FVB_ALIGNMENT_64K 0x80000000\r
-\r
-#define EFI_FVB_CAPABILITIES (EFI_FVB_READ_DISABLED_CAP | \\r
- EFI_FVB_READ_ENABLED_CAP | \\r
- EFI_FVB_WRITE_DISABLED_CAP | \\r
- EFI_FVB_WRITE_ENABLED_CAP | \\r
- EFI_FVB_LOCK_CAP \\r
- )\r
-\r
-#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \\r
- ( \\r
- (BOOLEAN) ( \\r
- (FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \\r
- ) \\r
- )\r
-\r
-#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- This file defines the data structures that are architecturally defined for file\r
- images loaded via the FirmwareVolume protocol. The Firmware Volume specification\r
- is the basis for these definitions.\r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: FrameworkFimrwareVolumeImageFormat.h\r
-\r
- @par Revision Reference:\r
- These definitions are from Firmware Volume Spec 0.9.\r
-\r
-**/\r
-\r
-#ifndef __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
-#define __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
-\r
-//\r
-// Bit values for AuthenticationStatus\r
-//\r
-#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001\r
-#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED 0x000002\r
-#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED 0x000004\r
-#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED 0x000008\r
-#define EFI_AGGREGATE_AUTH_STATUS_ALL 0x00000f\r
-\r
-#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE 0x010000\r
-#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED 0x020000\r
-#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED 0x040000\r
-#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED 0x080000\r
-#define EFI_LOCAL_AUTH_STATUS_ALL 0x0f0000\r
-\r
-\r
-#define EFI_FV_FILETYPE_ALL 0x00\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- This file defines the data structures per HOB specification v0.9.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkFirmwareFileSystem.h\r
-\r
- @par Revision Reference:\r
- These definitions are from HOB Spec 0.9 but not adopted by PI specs.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_HOB_H_\r
-#define _FRAMEWORK_HOB_H_\r
-\r
-#include <PiPei.h>\r
-\r
-//\r
-// Capsule volume HOB -- identical to a firmware volume\r
-//\r
-#define EFI_HOB_TYPE_CV 0x0008\r
-\r
-typedef struct {\r
- EFI_HOB_GENERIC_HEADER Header;\r
- EFI_PHYSICAL_ADDRESS BaseAddress;\r
- UINT64 Length;\r
-} EFI_HOB_CAPSULE_VOLUME;\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- API between 16-bit Legacy BIOS and EFI\r
-\r
- We need to figure out what the 16-bit code is going to use to\r
- represent these data structures. Is a pointer SEG:OFF or 32-bit...\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkLegacy16.h\r
-\r
- @par Revision Reference:\r
- These definitions are from Compatibility Support Module Spec Version 0.96.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_LEGACY_16_H_\r
-#define _FRAMEWORK_LEGACY_16_H_\r
-\r
-#include <Base.h>\r
-\r
-//\r
-// All structures defined in this header file are packed on byte boundary\r
-//\r
-#pragma pack(1)\r
-\r
-typedef UINT8 SERIAL_MODE;\r
-typedef UINT8 PARALLEL_MODE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_COMPATIBILITY16_TABLE is located at a 16-byte boundary starting with the\r
-// signature "$EFI"\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-#define EFI_COMPATIBILITY16_TABLE_SIGNATURE EFI_SIGNATURE_32('$', 'E', 'F', 'I')\r
-\r
-typedef struct {\r
- UINT32 Signature; // "$EFI"\r
- UINT8 TableChecksum;\r
- UINT8 TableLength;\r
- UINT8 EfiMajorRevision;\r
- UINT8 EfiMinorRevision;\r
- UINT8 TableMajorRevision;\r
- UINT8 TableMinorRevision;\r
- UINT16 Reserved;\r
- UINT16 Compatibility16CallSegment;\r
- UINT16 Compatibility16CallOffset;\r
- UINT16 PnPInstallationCheckSegment;\r
- UINT16 PnPInstallationCheckOffset;\r
- UINT32 EfiSystemTable; // The physical address of EFI_SYSTEM_TABLE\r
- UINT32 OemIdStringPointer;\r
- UINT32 AcpiRsdPtrPointer;\r
- UINT16 OemRevision;\r
- UINT32 E820Pointer;\r
- UINT32 E820Length;\r
- UINT32 IrqRoutingTablePointer;\r
- UINT32 IrqRoutingTableLength;\r
- UINT32 MpTablePtr;\r
- UINT32 MpTableLength;\r
- UINT16 OemIntSegment;\r
- UINT16 OemIntOffset;\r
- UINT16 Oem32Segment;\r
- UINT16 Oem32Offset;\r
- UINT16 Oem16Segment;\r
- UINT16 Oem16Offset;\r
- UINT16 TpmSegment;\r
- UINT16 TpmOffset;\r
- UINT32 IbvPointer;\r
- UINT32 PciExpressBase;\r
- UINT8 LastPciBus;\r
-} EFI_COMPATIBILITY16_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Functions provided by the CSM binary\r
-///////////////////////////////////////////////////////////////////////////////\r
-typedef enum {\r
- Legacy16InitializeYourself = 0x0000,\r
- Legacy16UpdateBbs = 0x0001,\r
- Legacy16PrepareToBoot = 0x0002,\r
- Legacy16Boot = 0x0003,\r
- Legacy16RetrieveLastBootDevice= 0x0004,\r
- Legacy16DispatchOprom = 0x0005,\r
- Legacy16GetTableAddress = 0x0006,\r
- Legacy16SetKeyboardLeds = 0x0007,\r
- Legacy16InstallPciHandler = 0x0008\r
-} EFI_COMPATIBILITY_FUNCTIONS;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_TO_COMPATIBILITY16_INIT_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
-typedef struct {\r
- UINT32 BiosLessThan1MB;\r
- UINT32 HiPmmMemory;\r
- UINT32 HiPmmMemorySizeInBytes;\r
- UINT16 ReverseThunkCallSegment;\r
- UINT16 ReverseThunkCallOffset;\r
- UINT32 NumberE820Entries;\r
- UINT32 OsMemoryAbove1Mb;\r
- UINT32 ThunkStart;\r
- UINT32 ThunkSizeInBytes;\r
- UINT32 LowPmmMemory;\r
- UINT32 LowPmmMemorySizeInBytes;\r
-} EFI_TO_COMPATIBILITY16_INIT_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-typedef UINT8 SERIAL_MODE;\r
-typedef UINT8 PARALLEL_MODE;\r
-\r
-//\r
-// DEVICE_PRODUCER_SERIAL & its modes\r
-//\r
-typedef struct {\r
- UINT16 Address;\r
- UINT8 Irq;\r
- SERIAL_MODE Mode;\r
-} DEVICE_PRODUCER_SERIAL;\r
-\r
-#define DEVICE_SERIAL_MODE_NORMAL 0x00\r
-#define DEVICE_SERIAL_MODE_IRDA 0x01\r
-#define DEVICE_SERIAL_MODE_ASK_IR 0x02\r
-#define DEVICE_SERIAL_MODE_DUPLEX_HALF 0x00\r
-#define DEVICE_SERIAL_MODE_DUPLEX_FULL 0x10\r
-\r
-//\r
-// DEVICE_PRODUCER_PARALLEL & its modes\r
-//\r
-typedef struct {\r
- UINT16 Address;\r
- UINT8 Irq;\r
- UINT8 Dma;\r
- PARALLEL_MODE Mode;\r
-} DEVICE_PRODUCER_PARALLEL;\r
-\r
-#define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY 0x00\r
-#define DEVICE_PARALLEL_MODE_MODE_BIDIRECTIONAL 0x01\r
-#define DEVICE_PARALLEL_MODE_MODE_EPP 0x02\r
-#define DEVICE_PARALLEL_MODE_MODE_ECP 0x03\r
-\r
-//\r
-// DEVICE_PRODUCER_FLOPPY\r
-//\r
-typedef struct {\r
- UINT16 Address;\r
- UINT8 Irq;\r
- UINT8 Dma;\r
- UINT8 NumberOfFloppy;\r
-} DEVICE_PRODUCER_FLOPPY;\r
-\r
-//\r
-// LEGACY_DEVICE_FLAGS\r
-//\r
-typedef struct {\r
- UINT32 A20Kybd : 1;\r
- UINT32 A20Port90 : 1;\r
- UINT32 Reserved : 30;\r
-} LEGACY_DEVICE_FLAGS;\r
-\r
-//\r
-// DEVICE_PRODUCER_DATA_HEADER\r
-//\r
-typedef struct {\r
- DEVICE_PRODUCER_SERIAL Serial[4];\r
- DEVICE_PRODUCER_PARALLEL Parallel[3];\r
- DEVICE_PRODUCER_FLOPPY Floppy;\r
- UINT8 MousePresent;\r
- LEGACY_DEVICE_FLAGS Flags;\r
-} DEVICE_PRODUCER_DATA_HEADER;\r
-\r
-//\r
-// ATAPI_IDENTIFY\r
-//\r
-typedef struct {\r
- UINT16 Raw[256];\r
-} ATAPI_IDENTIFY;\r
-\r
-//\r
-// HDD_INFO & its status\r
-//\r
-typedef struct {\r
- UINT16 Status;\r
- UINT32 Bus;\r
- UINT32 Device;\r
- UINT32 Function;\r
- UINT16 CommandBaseAddress;\r
- UINT16 ControlBaseAddress;\r
- UINT16 BusMasterAddress;\r
- UINT8 HddIrq;\r
- ATAPI_IDENTIFY IdentifyDrive[2];\r
-} HDD_INFO;\r
-\r
-#define HDD_PRIMARY 0x01\r
-#define HDD_SECONDARY 0x02\r
-#define HDD_MASTER_ATAPI_CDROM 0x04\r
-#define HDD_SLAVE_ATAPI_CDROM 0x08\r
-#define HDD_MASTER_IDE 0x20\r
-#define HDD_SLAVE_IDE 0x40\r
-#define HDD_MASTER_ATAPI_ZIPDISK 0x10\r
-#define HDD_SLAVE_ATAPI_ZIPDISK 0x80\r
-\r
-//\r
-// BBS_STATUS_FLAGS\r
-//\r
-typedef struct {\r
- UINT16 OldPosition : 4;\r
- UINT16 Reserved1 : 4;\r
- UINT16 Enabled : 1;\r
- UINT16 Failed : 1;\r
- UINT16 MediaPresent : 2;\r
- UINT16 Reserved2 : 4;\r
-} BBS_STATUS_FLAGS;\r
-\r
-//\r
-// BBS_TABLE, device type values & boot priority values\r
-//\r
-typedef struct {\r
- UINT16 BootPriority;\r
- UINT32 Bus;\r
- UINT32 Device;\r
- UINT32 Function;\r
- UINT8 Class;\r
- UINT8 SubClass;\r
- UINT16 MfgStringOffset;\r
- UINT16 MfgStringSegment;\r
- UINT16 DeviceType;\r
- BBS_STATUS_FLAGS StatusFlags;\r
- UINT16 BootHandlerOffset;\r
- UINT16 BootHandlerSegment;\r
- UINT16 DescStringOffset;\r
- UINT16 DescStringSegment;\r
- UINT32 InitPerReserved;\r
- UINT32 AdditionalIrq13Handler;\r
- UINT32 AdditionalIrq18Handler;\r
- UINT32 AdditionalIrq19Handler;\r
- UINT32 AdditionalIrq40Handler;\r
- UINT8 AssignedDriveNumber;\r
- UINT32 AdditionalIrq41Handler;\r
- UINT32 AdditionalIrq46Handler;\r
- UINT32 IBV1;\r
- UINT32 IBV2;\r
-} BBS_TABLE;\r
-\r
-#define BBS_FLOPPY 0x01\r
-#define BBS_HARDDISK 0x02\r
-#define BBS_CDROM 0x03\r
-#define BBS_PCMCIA 0x04\r
-#define BBS_USB 0x05\r
-#define BBS_EMBED_NETWORK 0x06\r
-#define BBS_BEV_DEVICE 0x80\r
-#define BBS_UNKNOWN 0xff\r
-\r
-#define BBS_DO_NOT_BOOT_FROM 0xFFFC\r
-#define BBS_LOWEST_PRIORITY 0xFFFD\r
-#define BBS_UNPRIORITIZED_ENTRY 0xFFFE\r
-#define BBS_IGNORE_ENTRY 0xFFFF\r
-\r
-//\r
-// SMM_ATTRIBUTES & relating type, port and data size constants\r
-//\r
-typedef struct {\r
- UINT16 Type : 3;\r
- UINT16 PortGranularity : 3;\r
- UINT16 DataGranularity : 3;\r
- UINT16 Reserved : 7;\r
-} SMM_ATTRIBUTES;\r
-\r
-#define STANDARD_IO 0x00\r
-#define STANDARD_MEMORY 0x01\r
-\r
-#define PORT_SIZE_8 0x00\r
-#define PORT_SIZE_16 0x01\r
-#define PORT_SIZE_32 0x02\r
-#define PORT_SIZE_64 0x03\r
-\r
-#define DATA_SIZE_8 0x00\r
-#define DATA_SIZE_16 0x01\r
-#define DATA_SIZE_32 0x02\r
-#define DATA_SIZE_64 0x03\r
-\r
-//\r
-// SMM_FUNCTION & relating constants\r
-//\r
-typedef struct {\r
- UINT16 Function : 15;\r
- UINT16 Owner : 1;\r
-} SMM_FUNCTION;\r
-\r
-#define INT15_D042 0x0000\r
-#define GET_USB_BOOT_INFO 0x0001\r
-#define DMI_PNP_50_57 0x0002\r
-\r
-#define STANDARD_OWNER 0x0\r
-#define OEM_OWNER 0x1\r
-\r
-//\r
-// SMM_ENTRY\r
-//\r
-// This structure assumes both port and data sizes are 1. SmmAttribute must be\r
-// properly to reflect that assumption.\r
-//\r
-typedef struct {\r
- SMM_ATTRIBUTES SmmAttributes;\r
- SMM_FUNCTION SmmFunction;\r
- UINT8 SmmPort;\r
- UINT8 SmmData;\r
-} SMM_ENTRY;\r
-\r
-//\r
-// SMM_TABLE\r
-//\r
-typedef struct {\r
- UINT16 NumSmmEntries;\r
- SMM_ENTRY SmmEntry;\r
-} SMM_TABLE;\r
-\r
-//\r
-// UDC_ATTRIBUTES\r
-//\r
-typedef struct {\r
- UINT8 DirectoryServiceValidity : 1;\r
- UINT8 RabcaUsedFlag : 1;\r
- UINT8 ExecuteHddDiagnosticsFlag : 1;\r
- UINT8 Reserved : 5;\r
-} UDC_ATTRIBUTES;\r
-\r
-//\r
-// UD_TABLE\r
-//\r
-typedef struct {\r
- UDC_ATTRIBUTES Attributes;\r
- UINT8 DeviceNumber;\r
- UINT8 BbsTableEntryNumberForParentDevice;\r
- UINT8 BbsTableEntryNumberForBoot;\r
- UINT8 BbsTableEntryNumberForHddDiag;\r
- UINT8 BeerData[128];\r
- UINT8 ServiceAreaData[64];\r
-} UD_TABLE;\r
-\r
-//\r
-// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
-//\r
-#define EFI_TO_LEGACY_MAJOR_VERSION 0x02\r
-#define EFI_TO_LEGACY_MINOR_VERSION 0x00\r
-#define MAX_IDE_CONTROLLER 8\r
-\r
-typedef struct {\r
- UINT16 MajorVersion;\r
- UINT16 MinorVersion;\r
- UINT32 AcpiTable; // 4 GB range\r
- UINT32 SmbiosTable; // 4 GB range\r
- UINT32 SmbiosTableLength;\r
-\r
- //\r
- // Legacy SIO state\r
- //\r
- DEVICE_PRODUCER_DATA_HEADER SioData;\r
-\r
- UINT16 DevicePathType;\r
- UINT16 PciIrqMask;\r
- UINT32 NumberE820Entries;\r
-\r
- //\r
- // Controller & Drive Identify[2] per controller information\r
- //\r
- HDD_INFO HddInfo[MAX_IDE_CONTROLLER];\r
-\r
- UINT32 NumberBbsEntries;\r
- UINT32 BbsTable;\r
- UINT32 SmmTable;\r
- UINT32 OsMemoryAbove1Mb;\r
- UINT32 UnconventionalDeviceTable;\r
-} EFI_TO_COMPATIBILITY16_BOOT_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_DISPATCH_OPROM_TABLE\r
-///////////////////////////////////////////////////////////////////////////////\r
-\r
-typedef struct {\r
- UINT16 PnPInstallationCheckSegment;\r
- UINT16 PnPInstallationCheckOffset;\r
- UINT16 OpromSegment;\r
- UINT8 PciBus;\r
- UINT8 PciDeviceFunction;\r
- UINT8 NumberBbsEntries;\r
- VOID *BbsTablePointer; /// @bug: variable size on 32/64-bit systems.\r
-} EFI_DISPATCH_OPROM_TABLE;\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// EFI_LEGACY_INSTALL_PCI_HANDLER\r
-///////////////////////////////////////////////////////////////////////////////\r
-typedef struct {\r
- UINT8 PciBus;\r
- UINT8 PciDeviceFun;\r
- UINT8 PciSegment;\r
- UINT8 PciClass;\r
- UINT8 PciSubclass;\r
- UINT8 PciInterface;\r
-\r
- //\r
- // Primary section\r
- //\r
- UINT8 PrimaryIrq;\r
- UINT8 PrimaryReserved;\r
- UINT16 PrimaryControl;\r
- UINT16 PrimaryBase;\r
- UINT16 PrimaryBusMaster;\r
-\r
- //\r
- // Secondary Section\r
- //\r
- UINT8 SecondaryIrq;\r
- UINT8 SecondaryReserved;\r
- UINT16 SecondaryControl;\r
- UINT16 SecondaryBase;\r
- UINT16 SecondaryBusMaster;\r
-} EFI_LEGACY_INSTALL_PCI_HANDLER;\r
-\r
-//\r
-// Restore default pack value\r
-//\r
-#pragma pack()\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- Include file matches things in the Smm CIS spec.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkSmmCis.h\r
-\r
- @par Revision Reference:\r
- Version 0.9.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_SMM_CIS_H_\r
-#define _FRAMEWORK_SMM_CIS_H_\r
-\r
-#include <Common/FrameworkDxeCis.h>\r
-\r
-#define EFI_SMM_CPU_IO_GUID \\r
- { \\r
- 0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \\r
- }\r
-\r
-typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;\r
-typedef struct _EFI_SMM_CPU_IO_INTERFACE EFI_SMM_CPU_IO_INTERFACE;\r
-\r
-\r
-//\r
-// SMM Base specification constant and types\r
-//\r
-#define SMM_SMST_SIGNATURE EFI_SIGNATURE_32 ('S', 'M', 'S', 'T')\r
-#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09)\r
-\r
-//\r
-// *******************************************************\r
-// EFI_SMM_IO_WIDTH\r
-// *******************************************************\r
-//\r
-typedef enum {\r
- SMM_IO_UINT8 = 0,\r
- SMM_IO_UINT16 = 1,\r
- SMM_IO_UINT32 = 2,\r
- SMM_IO_UINT64 = 3\r
-} EFI_SMM_IO_WIDTH;\r
-\r
-/**\r
- Provides the basic memory and I/O interfaces that are used to\r
- abstract accesses to devices.\r
-\r
- @param This The EFI_SMM_CPU_IO_INTERFACE instance.\r
- @param Width Signifies the width of the I/O operations.\r
- @param Address The base address of the I/O operations.\r
- @param Count The number of I/O operations to perform.\r
- @param Buffer For read operations, the destination buffer to store the results.\r
- For write operations, the source buffer from which to write data.\r
-\r
- @retval EFI_SUCCESS The data was read from or written to the device.\r
- @retval EFI_UNSUPPORTED The Address is not valid for this system.\r
- @retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
- @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_CPU_IO) (\r
- IN EFI_SMM_CPU_IO_INTERFACE *This,\r
- IN EFI_SMM_IO_WIDTH Width,\r
- IN UINT64 Address,\r
- IN UINTN Count,\r
- IN OUT VOID *Buffer\r
- );\r
-\r
-typedef struct {\r
- EFI_SMM_CPU_IO Read;\r
- EFI_SMM_CPU_IO Write;\r
-} EFI_SMM_IO_ACCESS;\r
-\r
-struct _EFI_SMM_CPU_IO_INTERFACE {\r
- EFI_SMM_IO_ACCESS Mem;\r
- EFI_SMM_IO_ACCESS Io;\r
-};\r
-\r
-/**\r
- Allocates pool memory from SMRAM for IA-32 or runtime memory for\r
- the Itanium processor family.\r
-\r
- @param PoolType The type of pool to allocate.The only supported type is EfiRuntimeServicesData\r
- @param Size The number of bytes to allocate from the pool.\r
- @param Buffer A pointer to a pointer to the allocated buffer if the call\r
- succeeds; undefined otherwise.\r
-\r
- @retval EFI_SUCCESS The requested number of bytes was allocated.\r
- @retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated.\r
- @retval EFI_UNSUPPORTED In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_ALLOCATE_POOL) (\r
- IN EFI_MEMORY_TYPE PoolType,\r
- IN UINTN Size,\r
- OUT VOID **Buffer\r
- );\r
-\r
-/**\r
- Returns pool memory to the system.\r
-\r
- @param Buffer Pointer to the buffer to free.\r
-\r
- @retval EFI_SUCCESS The memory was returned to the system.\r
- @retval EFI_INVALID_PARAMETER Buffer was invalid.\r
- @retval EFI_UNSUPPORTED In runtime.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_FREE_POOL) (\r
- IN VOID *Buffer\r
- );\r
-\r
-/**\r
- Allocates memory pages from the system.\r
-\r
- @param Type The type of allocation to perform.\r
- @param MemoryType The only supported type is EfiRuntimeServicesData\r
- @param NumberofPages The number of contiguous 4 KB pages to allocate\r
- @param Memory Pointer to a physical address. On input, the way in which\r
- the address is used depends on the value of Type. On output, the address\r
- is set to the base of the page range that was allocated.\r
-\r
- @retval EFI_SUCCESS The requested pages were allocated.\r
- @retval EFI_OUT_OF_RESOURCES The pages requested could not be allocated.\r
- @retval EFI_NOT_FOUND The requested pages could not be found.\r
- @retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress\r
- or AllocateAddress. Or MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_ALLOCATE_PAGES) (\r
- IN EFI_ALLOCATE_TYPE Type,\r
- IN EFI_MEMORY_TYPE MemoryType,\r
- IN UINTN NumberOfPages,\r
- OUT EFI_PHYSICAL_ADDRESS *Memory\r
- );\r
-\r
-/**\r
- Frees memory pages for the system.\r
-\r
- @param Memory The base physical address of the pages to be freed\r
- @param NumberOfPages The number of contiguous 4 KB pages to free.\r
-\r
- @retval EFI_SUCCESS The requested memory pages were freed.\r
- @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or NumberOfPages is invalid.\r
- @retval EFI_NOT_FOUND The requested memory pages were not allocated with SmmAllocatePages().\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMMCORE_FREE_PAGES) (\r
- IN EFI_PHYSICAL_ADDRESS Memory,\r
- IN UINTN NumberOfPages\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_STARTUP_THIS_AP) (\r
- IN EFI_AP_PROCEDURE Procedure,\r
- IN UINTN CpuNumber,\r
- IN OUT VOID *ProcArguments OPTIONAL\r
- );\r
-\r
-typedef struct {\r
- UINT8 Reserved1[248];\r
- UINT32 SMBASE;\r
- UINT32 SMMRevId;\r
- UINT16 IORestart;\r
- UINT16 AutoHALTRestart;\r
- UINT8 Reserved2[164];\r
- UINT32 ES;\r
- UINT32 CS;\r
- UINT32 SS;\r
- UINT32 DS;\r
- UINT32 FS;\r
- UINT32 GS;\r
- UINT32 LDTBase;\r
- UINT32 TR;\r
- UINT32 DR7;\r
- UINT32 DR6;\r
- UINT32 EAX;\r
- UINT32 ECX;\r
- UINT32 EDX;\r
- UINT32 EBX;\r
- UINT32 ESP;\r
- UINT32 EBP;\r
- UINT32 ESI;\r
- UINT32 EDI;\r
- UINT32 EIP;\r
- UINT32 EFLAGS;\r
- UINT32 CR3;\r
- UINT32 CR0;\r
-} EFI_SMI_CPU_SAVE_STATE;\r
-\r
-typedef struct {\r
- UINT64 reserved;\r
- UINT64 r1;\r
- UINT64 r2;\r
- UINT64 r3;\r
- UINT64 r4;\r
- UINT64 r5;\r
- UINT64 r6;\r
- UINT64 r7;\r
- UINT64 r8;\r
- UINT64 r9;\r
- UINT64 r10;\r
- UINT64 r11;\r
- UINT64 r12;\r
- UINT64 r13;\r
- UINT64 r14;\r
- UINT64 r15;\r
- UINT64 r16;\r
- UINT64 r17;\r
- UINT64 r18;\r
- UINT64 r19;\r
- UINT64 r20;\r
- UINT64 r21;\r
- UINT64 r22;\r
- UINT64 r23;\r
- UINT64 r24;\r
- UINT64 r25;\r
- UINT64 r26;\r
- UINT64 r27;\r
- UINT64 r28;\r
- UINT64 r29;\r
- UINT64 r30;\r
- UINT64 r31;\r
-\r
- UINT64 pr;\r
-\r
- UINT64 b0;\r
- UINT64 b1;\r
- UINT64 b2;\r
- UINT64 b3;\r
- UINT64 b4;\r
- UINT64 b5;\r
- UINT64 b6;\r
- UINT64 b7;\r
-\r
- // application registers\r
- UINT64 ar_rsc;\r
- UINT64 ar_bsp;\r
- UINT64 ar_bspstore;\r
- UINT64 ar_rnat;\r
-\r
- UINT64 ar_fcr;\r
-\r
- UINT64 ar_eflag;\r
- UINT64 ar_csd;\r
- UINT64 ar_ssd;\r
- UINT64 ar_cflg;\r
- UINT64 ar_fsr;\r
- UINT64 ar_fir;\r
- UINT64 ar_fdr;\r
-\r
- UINT64 ar_ccv;\r
-\r
- UINT64 ar_unat;\r
-\r
- UINT64 ar_fpsr;\r
-\r
- UINT64 ar_pfs;\r
- UINT64 ar_lc;\r
- UINT64 ar_ec;\r
-\r
- // control registers\r
- UINT64 cr_dcr;\r
- UINT64 cr_itm;\r
- UINT64 cr_iva;\r
- UINT64 cr_pta;\r
- UINT64 cr_ipsr;\r
- UINT64 cr_isr;\r
- UINT64 cr_iip;\r
- UINT64 cr_ifa;\r
- UINT64 cr_itir;\r
- UINT64 cr_iipa;\r
- UINT64 cr_ifs;\r
- UINT64 cr_iim;\r
- UINT64 cr_iha;\r
-\r
- // debug registers\r
- UINT64 dbr0;\r
- UINT64 dbr1;\r
- UINT64 dbr2;\r
- UINT64 dbr3;\r
- UINT64 dbr4;\r
- UINT64 dbr5;\r
- UINT64 dbr6;\r
- UINT64 dbr7;\r
-\r
- UINT64 ibr0;\r
- UINT64 ibr1;\r
- UINT64 ibr2;\r
- UINT64 ibr3;\r
- UINT64 ibr4;\r
- UINT64 ibr5;\r
- UINT64 ibr6;\r
- UINT64 ibr7;\r
-\r
- // virtual registers\r
- UINT64 int_nat; // nat bits for R1-R31\r
-\r
-} EFI_PMI_SYSTEM_CONTEXT;\r
-\r
-typedef union {\r
- EFI_SMI_CPU_SAVE_STATE Ia32SaveState;\r
- EFI_PMI_SYSTEM_CONTEXT ItaniumSaveState;\r
-} EFI_SMM_CPU_SAVE_STATE;\r
-\r
-typedef struct {\r
- UINT16 Fcw;\r
- UINT16 Fsw;\r
- UINT16 Ftw;\r
- UINT16 Opcode;\r
- UINT32 Eip;\r
- UINT16 Cs;\r
- UINT16 Rsvd1;\r
- UINT32 DataOffset;\r
- UINT16 Ds;\r
- UINT8 Rsvd2[10];\r
- UINT8 St0Mm0[10], Rsvd3[6];\r
- UINT8 St0Mm1[10], Rsvd4[6];\r
- UINT8 St0Mm2[10], Rsvd5[6];\r
- UINT8 St0Mm3[10], Rsvd6[6];\r
- UINT8 St0Mm4[10], Rsvd7[6];\r
- UINT8 St0Mm5[10], Rsvd8[6];\r
- UINT8 St0Mm6[10], Rsvd9[6];\r
- UINT8 St0Mm7[10], Rsvd10[6];\r
- UINT8 Rsvd11[22*16];\r
-} EFI_SMI_OPTIONAL_FPSAVE_STATE;\r
-\r
-typedef struct {\r
- UINT64 f2[2];\r
- UINT64 f3[2];\r
- UINT64 f4[2];\r
- UINT64 f5[2];\r
- UINT64 f6[2];\r
- UINT64 f7[2];\r
- UINT64 f8[2];\r
- UINT64 f9[2];\r
- UINT64 f10[2];\r
- UINT64 f11[2];\r
- UINT64 f12[2];\r
- UINT64 f13[2];\r
- UINT64 f14[2];\r
- UINT64 f15[2];\r
- UINT64 f16[2];\r
- UINT64 f17[2];\r
- UINT64 f18[2];\r
- UINT64 f19[2];\r
- UINT64 f20[2];\r
- UINT64 f21[2];\r
- UINT64 f22[2];\r
- UINT64 f23[2];\r
- UINT64 f24[2];\r
- UINT64 f25[2];\r
- UINT64 f26[2];\r
- UINT64 f27[2];\r
- UINT64 f28[2];\r
- UINT64 f29[2];\r
- UINT64 f30[2];\r
- UINT64 f31[2];\r
-} EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT;\r
-\r
-typedef union {\r
- EFI_SMI_OPTIONAL_FPSAVE_STATE Ia32FpSave;\r
- EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT ItaniumFpSave;\r
-} EFI_SMM_FLOATING_POINT_SAVE_STATE;\r
-\r
-/**\r
- This function is the main entry point for an SMM handler dispatch\r
- or communicate-based callback.\r
-\r
- @param SmmImageHandle A unique value returned by the SMM infrastructure\r
- in response to registration for a communicate-based callback or dispatch.\r
- @param CommunicationBuffer\r
- An optional buffer that will be populated\r
- by the SMM infrastructure in response to a non-SMM agent (preboot or runtime)\r
- invoking the EFI_SMM_BASE_PROTOCOL.Communicate() service.\r
- @param SourceSize If CommunicationBuffer is non-NULL, this field\r
- indicates the size of the data payload in this buffer.\r
-\r
- @return Status Code\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_HANDLER_ENTRY_POINT) (\r
- IN EFI_HANDLE SmmImageHandle,\r
- IN OUT VOID *CommunicationBuffer OPTIONAL,\r
- IN OUT UINTN *SourceSize OPTIONAL\r
- );\r
-\r
-/**\r
- The SmmInstallConfigurationTable() function is used to maintain the list\r
- of configuration tables that are stored in the System Management System\r
- Table. The list is stored as an array of (GUID, Pointer) pairs. The list\r
- must be allocated from pool memory with PoolType set to EfiRuntimeServicesData.\r
-\r
- @param SystemTable A pointer to the SMM System Table.\r
- @param Guid A pointer to the GUID for the entry to add, update, or remove.\r
- @param Table A pointer to the buffer of the table to add.\r
- @param TableSize The size of the table to install.\r
-\r
- @retval EFI_SUCCESS The (Guid, Table) pair was added, updated, or removed.\r
- @retval EFI_INVALID_PARAMETER Guid is not valid.\r
- @retval EFI_NOT_FOUND An attempt was made to delete a non-existent entry.\r
- @retval EFI_OUT_OF_RESOURCES There is not enough memory available to complete the operation.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE) (\r
- IN EFI_SMM_SYSTEM_TABLE *SystemTable,\r
- IN EFI_GUID *Guid,\r
- IN VOID *Table,\r
- IN UINTN TableSize\r
- );\r
-\r
-//\r
-// System Management System Table (SMST)\r
-//\r
-struct _EFI_SMM_SYSTEM_TABLE {\r
- EFI_TABLE_HEADER Hdr;\r
-\r
- CHAR16 *SmmFirmwareVendor;\r
- UINT32 SmmFirmwareRevision;\r
-\r
- EFI_SMM_INSTALL_CONFIGURATION_TABLE SmmInstallConfigurationTable;\r
-\r
- //\r
- // I/O Services\r
- //\r
- EFI_GUID EfiSmmCpuIoGuid;\r
- EFI_SMM_CPU_IO_INTERFACE SmmIo;\r
-\r
- //\r
- // Runtime memory service\r
- //\r
- EFI_SMMCORE_ALLOCATE_POOL SmmAllocatePool;\r
- EFI_SMMCORE_FREE_POOL SmmFreePool;\r
- EFI_SMMCORE_ALLOCATE_PAGES SmmAllocatePages;\r
- EFI_SMMCORE_FREE_PAGES SmmFreePages;\r
-\r
- //\r
- // MP service\r
- //\r
- EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp;\r
-\r
- //\r
- // CPU information records\r
- //\r
- UINTN CurrentlyExecutingCpu;\r
- UINTN NumberOfCpus;\r
- EFI_SMM_CPU_SAVE_STATE *CpuSaveState;\r
- EFI_SMM_FLOATING_POINT_SAVE_STATE *CpuOptionalFloatingPointState;\r
-\r
- //\r
- // Extensibility table\r
- //\r
- UINTN NumberOfTableEntries;\r
- EFI_CONFIGURATION_TABLE *SmmConfigurationTable;\r
-};\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- Status Code Definitions, according to Intel Platform Innovation Framework\r
- for EFI Status Codes Specification\r
-\r
- The file is divided into sections for ease of use.\r
-\r
-<pre>\r
- Section: Contents:\r
- 1 General Status Code Definitions\r
- 2 Class definitions\r
- 3 Computing Unit Subclasses, Progress and Error Codes\r
- 4 Peripheral Subclasses, Progress and Error Codes.\r
- 5 IO Bus Subclasses, Progress and Error Codes.\r
- 6 Software Subclasses, Progress and Error Codes.\r
- 7 Debug Codes\r
-</pre>\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: StatusCode.h\r
-\r
- @par Revision Reference:\r
- Version 0.92.\r
-\r
-**/\r
-\r
-#ifndef _FRAMEWORK_STATUS_CODE_H_\r
-#define _FRAMEWORK_STATUS_CODE_H_\r
-\r
-#include <PiPei.h>\r
-\r
-//\r
-// /////////////////////////////////////////////////////////////////////////////\r
-// Section 1\r
-////////////////////////////////////////////////////////////////////////////////\r
-\r
-//\r
-// Data Hub Status Code class record definition\r
-// This structure isn't adopted by PI, so is defined here.\r
-//\r
-typedef struct {\r
- EFI_STATUS_CODE_TYPE CodeType;\r
- EFI_STATUS_CODE_VALUE Value;\r
- UINT32 Instance;\r
- EFI_GUID CallerId;\r
- EFI_STATUS_CODE_DATA Data;\r
-} DATA_HUB_STATUS_CODE_DATA_RECORD;\r
-\r
-//\r
-// /////////////////////////////////////////////////////////////////////////////\r
-// Section 2\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Class definitions\r
-// Values of 4-127 are reserved for future use by this\r
-// specification.\r
-// Values in the range 127-255 are reserved for OEM use.\r
-//\r
-#define EFI_COMPUTING_UNIT 0x00000000\r
-#define EFI_PERIPHERAL 0x01000000\r
-#define EFI_IO_BUS 0x02000000\r
-#define EFI_SOFTWARE 0x03000000\r
-\r
-//\r
-// General partitioning scheme for Progress and Error Codes are\r
-// 0x0000-0x0FFF - Shared by all sub-classes in a given class\r
-// 0x1000-0x7FFF - Subclass Specific\r
-// 0x8000-0xFFFF - OEM specific\r
-//\r
-#define EFI_SUBCLASS_SPECIFIC 0x1000\r
-#define EFI_OEM_SPECIFIC 0x8000\r
-\r
-//\r
-// /////////////////////////////////////////////////////////////////////////////\r
-// Section 3\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Computing Unit Subclass definitions.\r
-// Values of 8-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_COMPUTING_UNIT_UNSPECIFIED (EFI_COMPUTING_UNIT | 0x00000000)\r
-#define EFI_COMPUTING_UNIT_HOST_PROCESSOR (EFI_COMPUTING_UNIT | 0x00010000)\r
-#define EFI_COMPUTING_UNIT_FIRMWARE_PROCESSOR (EFI_COMPUTING_UNIT | 0x00020000)\r
-#define EFI_COMPUTING_UNIT_IO_PROCESSOR (EFI_COMPUTING_UNIT | 0x00030000)\r
-#define EFI_COMPUTING_UNIT_CACHE (EFI_COMPUTING_UNIT | 0x00040000)\r
-#define EFI_COMPUTING_UNIT_MEMORY (EFI_COMPUTING_UNIT | 0x00050000)\r
-#define EFI_COMPUTING_UNIT_CHIPSET (EFI_COMPUTING_UNIT | 0x00060000)\r
-\r
-//\r
-// Computing Unit Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_CU_PC_INIT_BEGIN 0x00000000\r
-#define EFI_CU_PC_INIT_END 0x00000001\r
-\r
-//\r
-// Computing Unit Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit Host Processor Subclass Progress Code definitions.\r
-//\r
-#define EFI_CU_HP_PC_POWER_ON_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_HP_PC_CACHE_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_HP_PC_RAM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_HP_PC_MEMORY_CONTROLLER_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_HP_PC_IO_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_HP_PC_BSP_SELECT (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_HP_PC_BSP_RESELECT (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_CU_HP_PC_AP_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_CU_HP_PC_SMM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-\r
-//\r
-// Computing Unit Firmware Processor Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit IO Processor Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit Cache Subclass Progress Code definitions.\r
-//\r
-#define EFI_CU_CACHE_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_CACHE_PC_CONFIGURATION (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Computing Unit Memory Subclass Progress Code definitions.\r
-//\r
-#define EFI_CU_MEMORY_PC_SPD_READ (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_MEMORY_PC_PRESENCE_DETECT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_MEMORY_PC_TIMING (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_MEMORY_PC_CONFIGURING (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_MEMORY_PC_OPTIMIZING (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_MEMORY_PC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_MEMORY_PC_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-\r
-//\r
-// Computing Unit Chipset Subclass Progress Code definitions.\r
-//\r
-//\r
-// Computing Unit Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_CU_EC_NON_SPECIFIC 0x00000000\r
-#define EFI_CU_EC_DISABLED 0x00000001\r
-#define EFI_CU_EC_NOT_SUPPORTED 0x00000002\r
-#define EFI_CU_EC_NOT_DETECTED 0x00000003\r
-#define EFI_CU_EC_NOT_CONFIGURED 0x00000004\r
-\r
-//\r
-// Computing Unit Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// Computing Unit Host Processor Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_HP_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_HP_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_HP_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_HP_EC_TIMER_EXPIRED (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_HP_EC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_HP_EC_INTERNAL (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_HP_EC_THERMAL (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_CU_HP_EC_LOW_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_CU_HP_EC_HIGH_VOLTAGE (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_CU_HP_EC_CACHE (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_CU_HP_EC_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_CU_HP_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_CU_HP_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_CU_HP_EC_NO_MICROCODE_UPDATE (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-\r
-//\r
-// Computing Unit Firmware Processor Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_FP_EC_HARD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_FP_EC_SOFT_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_FP_EC_COMM_ERROR (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// Computing Unit IO Processor Subclass Error Code definitions.\r
-//\r
-//\r
-// Computing Unit Cache Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_CACHE_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_CACHE_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_CACHE_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_CACHE_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-\r
-//\r
-// Computing Unit Memory Subclass Error Code definitions.\r
-//\r
-#define EFI_CU_MEMORY_EC_INVALID_TYPE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_CU_MEMORY_EC_INVALID_SPEED (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_CU_MEMORY_EC_CORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_CU_MEMORY_EC_UNCORRECTABLE (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_CU_MEMORY_EC_SPD_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_CU_MEMORY_EC_INVALID_SIZE (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_CU_MEMORY_EC_MISMATCH (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_CU_MEMORY_EC_S3_RESUME_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_CU_MEMORY_EC_UPDATE_FAIL (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_CU_MEMORY_EC_NONE_DETECTED (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_CU_MEMORY_EC_NONE_USEFUL (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-\r
-//\r
-// Computing Unit Chipset Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 4\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Peripheral Subclass definitions.\r
-// Values of 12-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_PERIPHERAL_UNSPECIFIED (EFI_PERIPHERAL | 0x00000000)\r
-#define EFI_PERIPHERAL_KEYBOARD (EFI_PERIPHERAL | 0x00010000)\r
-#define EFI_PERIPHERAL_MOUSE (EFI_PERIPHERAL | 0x00020000)\r
-#define EFI_PERIPHERAL_LOCAL_CONSOLE (EFI_PERIPHERAL | 0x00030000)\r
-#define EFI_PERIPHERAL_REMOTE_CONSOLE (EFI_PERIPHERAL | 0x00040000)\r
-#define EFI_PERIPHERAL_SERIAL_PORT (EFI_PERIPHERAL | 0x00050000)\r
-#define EFI_PERIPHERAL_PARALLEL_PORT (EFI_PERIPHERAL | 0x00060000)\r
-#define EFI_PERIPHERAL_FIXED_MEDIA (EFI_PERIPHERAL | 0x00070000)\r
-#define EFI_PERIPHERAL_REMOVABLE_MEDIA (EFI_PERIPHERAL | 0x00080000)\r
-#define EFI_PERIPHERAL_AUDIO_INPUT (EFI_PERIPHERAL | 0x00090000)\r
-#define EFI_PERIPHERAL_AUDIO_OUTPUT (EFI_PERIPHERAL | 0x000A0000)\r
-#define EFI_PERIPHERAL_LCD_DEVICE (EFI_PERIPHERAL | 0x000B0000)\r
-#define EFI_PERIPHERAL_NETWORK (EFI_PERIPHERAL | 0x000C0000)\r
-\r
-//\r
-// Peripheral Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_P_PC_INIT 0x00000000\r
-#define EFI_P_PC_RESET 0x00000001\r
-#define EFI_P_PC_DISABLE 0x00000002\r
-#define EFI_P_PC_PRESENCE_DETECT 0x00000003\r
-#define EFI_P_PC_ENABLE 0x00000004\r
-#define EFI_P_PC_RECONFIG 0x00000005\r
-#define EFI_P_PC_DETECTED 0x00000006\r
-\r
-//\r
-// Peripheral Class Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Keyboard Subclass Progress Code definitions.\r
-//\r
-#define EFI_P_KEYBOARD_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_P_KEYBOARD_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Peripheral Class Mouse Subclass Progress Code definitions.\r
-//\r
-#define EFI_P_MOUSE_PC_SELF_TEST (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Peripheral Class Local Console Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Remote Console Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Serial Port Subclass Progress Code definitions.\r
-//\r
-#define EFI_P_SERIAL_PORT_PC_CLEAR_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Peripheral Class Parallel Port Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Fixed Media Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Removable Media Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Input Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Output Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class LCD Device Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Network Subclass Progress Code definitions.\r
-//\r
-//\r
-// Peripheral Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_P_EC_NON_SPECIFIC 0x00000000\r
-#define EFI_P_EC_DISABLED 0x00000001\r
-#define EFI_P_EC_NOT_SUPPORTED 0x00000002\r
-#define EFI_P_EC_NOT_DETECTED 0x00000003\r
-#define EFI_P_EC_NOT_CONFIGURED 0x00000004\r
-#define EFI_P_EC_INTERFACE_ERROR 0x00000005\r
-#define EFI_P_EC_CONTROLLER_ERROR 0x00000006\r
-#define EFI_P_EC_INPUT_ERROR 0x00000007\r
-#define EFI_P_EC_OUTPUT_ERROR 0x00000008\r
-#define EFI_P_EC_RESOURCE_CONFLICT 0x00000009\r
-\r
-//\r
-// Peripheral Class Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Keyboard Subclass Error Code definitions.\r
-//\r
-#define EFI_P_KEYBOARD_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_P_KEYBOARD_EC_STUCK_KEY (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Peripheral Class Mouse Subclass Error Code definitions.\r
-//\r
-#define EFI_P_MOUSE_EC_LOCKED (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Peripheral Class Local Console Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Remote Console Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Serial Port Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Parallel Port Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Fixed Media Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Removable Media Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Input Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Audio Output Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class LCD Device Subclass Error Code definitions.\r
-//\r
-//\r
-// Peripheral Class Network Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 5\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// IO Bus Subclass definitions.\r
-// Values of 14-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_IO_BUS_UNSPECIFIED (EFI_IO_BUS | 0x00000000)\r
-#define EFI_IO_BUS_PCI (EFI_IO_BUS | 0x00010000)\r
-#define EFI_IO_BUS_USB (EFI_IO_BUS | 0x00020000)\r
-#define EFI_IO_BUS_IBA (EFI_IO_BUS | 0x00030000)\r
-#define EFI_IO_BUS_AGP (EFI_IO_BUS | 0x00040000)\r
-#define EFI_IO_BUS_PC_CARD (EFI_IO_BUS | 0x00050000)\r
-#define EFI_IO_BUS_LPC (EFI_IO_BUS | 0x00060000)\r
-#define EFI_IO_BUS_SCSI (EFI_IO_BUS | 0x00070000)\r
-#define EFI_IO_BUS_ATA_ATAPI (EFI_IO_BUS | 0x00080000)\r
-#define EFI_IO_BUS_FC (EFI_IO_BUS | 0x00090000)\r
-#define EFI_IO_BUS_IP_NETWORK (EFI_IO_BUS | 0x000A0000)\r
-#define EFI_IO_BUS_SMBUS (EFI_IO_BUS | 0x000B0000)\r
-#define EFI_IO_BUS_I2C (EFI_IO_BUS | 0x000C0000)\r
-\r
-//\r
-// IO Bus Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_IOB_PC_INIT 0x00000000\r
-#define EFI_IOB_PC_RESET 0x00000001\r
-#define EFI_IOB_PC_DISABLE 0x00000002\r
-#define EFI_IOB_PC_DETECT 0x00000003\r
-#define EFI_IOB_PC_ENABLE 0x00000004\r
-#define EFI_IOB_PC_RECONFIG 0x00000005\r
-#define EFI_IOB_PC_HOTPLUG 0x00000006\r
-\r
-//\r
-// IO Bus Class Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class PCI Subclass Progress Code definitions.\r
-//\r
-#define EFI_IOB_PCI_PC_BUS_ENUM (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_PCI_PC_RES_ALLOC (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_IOB_PCI_PC_HPC_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// IO Bus Class USB Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class IBA Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class AGP Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class PC Card Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class LPC Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class SCSI Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class ATA/ATAPI Subclass Progress Code definitions.\r
-//\r
-#define EFI_IOB_ATA_BUS_SMART_ENABLE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_ATA_BUS_SMART_DISABLE (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-\r
-//\r
-// IO Bus Class FC Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class IP Network Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class SMBUS Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class I2C Subclass Progress Code definitions.\r
-//\r
-//\r
-// IO Bus Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_IOB_EC_NON_SPECIFIC 0x00000000\r
-#define EFI_IOB_EC_DISABLED 0x00000001\r
-#define EFI_IOB_EC_NOT_SUPPORTED 0x00000002\r
-#define EFI_IOB_EC_NOT_DETECTED 0x00000003\r
-#define EFI_IOB_EC_NOT_CONFIGURED 0x00000004\r
-#define EFI_IOB_EC_INTERFACE_ERROR 0x00000005\r
-#define EFI_IOB_EC_CONTROLLER_ERROR 0x00000006\r
-#define EFI_IOB_EC_READ_ERROR 0x00000007\r
-#define EFI_IOB_EC_WRITE_ERROR 0x00000008\r
-#define EFI_IOB_EC_RESOURCE_CONFLICT 0x00000009\r
-\r
-//\r
-// IO Bus Class Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class PCI Subclass Error Code definitions.\r
-//\r
-#define EFI_IOB_PCI_EC_PERR (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_PCI_EC_SERR (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// IO Bus Class USB Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class IBA Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class AGP Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class PC Card Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class LPC Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class SCSI Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class ATA/ATAPI Subclass Error Code definitions.\r
-//\r
-#define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_IOB_ATA_BUS_SMART_DISABLED (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// IO Bus Class FC Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class IP Network Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class SMBUS Subclass Error Code definitions.\r
-//\r
-//\r
-// IO Bus Class I2C Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 6\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Software Subclass definitions.\r
-// Values of 14-127 are reserved for future use by this\r
-// specification.\r
-// Values of 128-255 are reserved for OEM use.\r
-//\r
-#define EFI_SOFTWARE_UNSPECIFIED (EFI_SOFTWARE | 0x00000000)\r
-#define EFI_SOFTWARE_SEC (EFI_SOFTWARE | 0x00010000)\r
-#define EFI_SOFTWARE_PEI_CORE (EFI_SOFTWARE | 0x00020000)\r
-#define EFI_SOFTWARE_PEI_MODULE (EFI_SOFTWARE | 0x00030000)\r
-#define EFI_SOFTWARE_DXE_CORE (EFI_SOFTWARE | 0x00040000)\r
-#define EFI_SOFTWARE_DXE_BS_DRIVER (EFI_SOFTWARE | 0x00050000)\r
-#define EFI_SOFTWARE_DXE_RT_DRIVER (EFI_SOFTWARE | 0x00060000)\r
-#define EFI_SOFTWARE_SMM_DRIVER (EFI_SOFTWARE | 0x00070000)\r
-#define EFI_SOFTWARE_EFI_APPLICATION (EFI_SOFTWARE | 0x00080000)\r
-#define EFI_SOFTWARE_EFI_OS_LOADER (EFI_SOFTWARE | 0x00090000)\r
-#define EFI_SOFTWARE_RT (EFI_SOFTWARE | 0x000A0000)\r
-#define EFI_SOFTWARE_AL (EFI_SOFTWARE | 0x000B0000)\r
-#define EFI_SOFTWARE_EBC_EXCEPTION (EFI_SOFTWARE | 0x000C0000)\r
-#define EFI_SOFTWARE_IA32_EXCEPTION (EFI_SOFTWARE | 0x000D0000)\r
-#define EFI_SOFTWARE_IPF_EXCEPTION (EFI_SOFTWARE | 0x000E0000)\r
-#define EFI_SOFTWARE_PEI_SERVICE (EFI_SOFTWARE | 0x000F0000)\r
-#define EFI_SOFTWARE_EFI_BOOT_SERVICE (EFI_SOFTWARE | 0x00100000)\r
-#define EFI_SOFTWARE_EFI_RUNTIME_SERVICE (EFI_SOFTWARE | 0x00110000)\r
-#define EFI_SOFTWARE_EFI_DXE_SERVICE (EFI_SOFTWARE | 0x00120000)\r
-#define EFI_SOFTWARE_X64_EXCEPTION (EFI_SOFTWARE | 0x00130000)\r
-\r
-//\r
-// Software Class Progress Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_SW_PC_INIT 0x00000000\r
-#define EFI_SW_PC_LOAD 0x00000001\r
-#define EFI_SW_PC_INIT_BEGIN 0x00000002\r
-#define EFI_SW_PC_INIT_END 0x00000003\r
-#define EFI_SW_PC_AUTHENTICATE_BEGIN 0x00000004\r
-#define EFI_SW_PC_AUTHENTICATE_END 0x00000005\r
-#define EFI_SW_PC_INPUT_WAIT 0x00000006\r
-#define EFI_SW_PC_USER_SETUP 0x00000007\r
-\r
-//\r
-// Software Class Unspecified Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class SEC Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_SEC_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_SEC_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Software Class PEI Core Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_PEI_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_PEI_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// Software Class PEI Module Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_PEIM_PC_RECOVERY_BEGIN (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PEIM_PC_CAPSULE_LOAD (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_PEIM_PC_CAPSULE_START (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_PEIM_PC_RECOVERY_USER (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_PEIM_PC_RECOVERY_AUTO (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-\r
-//\r
-// Software Class DXE Core Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_DXE_CORE_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DXE_CORE_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DXE_CORE_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DXE_CORE_PC_START_DRIVER (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-\r
-//\r
-// Software Class DXE BS Driver Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_DXE_BS_PC_LEGACY_OPROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DXE_BS_PC_LEGACY_BOOT_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DXE_BS_PC_EXIT_BOOT_SERVICES_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_DXE_BS_PC_VIRTUAL_ADDRESS_CHANGE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_DXE_BS_PC_BEGIN_CONNECTING_DRIVERS (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_DXE_BS_PC_VERIFYING_PASSWORD (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-\r
-//\r
-// Software Class DXE RT Driver Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_DXE_RT_PC_S0 (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DXE_RT_PC_S1 (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DXE_RT_PC_S2 (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DXE_RT_PC_S3 (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_DXE_RT_PC_S4 (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_DXE_RT_PC_S5 (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-\r
-//\r
-// Software Class SMM Driver Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class EFI Application Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class EFI OS Loader Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class EFI RT Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_RT_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_RT_PC_HANDOFF_TO_NEXT (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_RT_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-\r
-//\r
-// Software Class EFI AL Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_AL_PC_ENTRY_POINT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_AL_PC_RETURN_TO_LAST (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Software Class EBC Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class IA32 Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class X64 Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class IPF Exception Subclass Progress Code definitions.\r
-//\r
-//\r
-// Software Class PEI Services Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_PS_PC_INSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PS_PC_REINSTALL_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_PS_PC_LOCATE_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_PS_PC_NOTIFY_PPI (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_PS_PC_GET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_PS_PC_SET_BOOT_MODE (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_PS_PC_GET_HOB_LIST (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_PS_PC_CREATE_HOB (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_PS_PC_FFS_FIND_NEXT_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_PS_PC_FFS_FIND_NEXT_FILE (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_PS_PC_FFS_FIND_SECTION_DATA (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_SW_PS_PC_INSTALL_PEI_MEMORY (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_SW_PS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_SW_PS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-#define EFI_SW_PS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
-#define EFI_SW_PS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
-\r
-//\r
-// Software Class EFI Boot Services Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_BS_PC_RAISE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_BS_PC_RESTORE_TPL (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_BS_PC_ALLOCATE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_BS_PC_FREE_PAGES (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_BS_PC_GET_MEMORY_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_BS_PC_ALLOCATE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_BS_PC_FREE_POOL (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_BS_PC_CREATE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_BS_PC_SET_TIMER (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_BS_PC_WAIT_FOR_EVENT (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_BS_PC_SIGNAL_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_SW_BS_PC_CLOSE_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_SW_BS_PC_CHECK_EVENT (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_SW_BS_PC_INSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-#define EFI_SW_BS_PC_REINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
-#define EFI_SW_BS_PC_UNINSTALL_PROTOCOL_INTERFACE (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
-#define EFI_SW_BS_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000010)\r
-#define EFI_SW_BS_PC_PC_HANDLE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000011)\r
-#define EFI_SW_BS_PC_REGISTER_PROTOCOL_NOTIFY (EFI_SUBCLASS_SPECIFIC | 0x00000012)\r
-#define EFI_SW_BS_PC_LOCATE_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000013)\r
-#define EFI_SW_BS_PC_INSTALL_CONFIGURATION_TABLE (EFI_SUBCLASS_SPECIFIC | 0x00000014)\r
-#define EFI_SW_BS_PC_LOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000015)\r
-#define EFI_SW_BS_PC_START_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000016)\r
-#define EFI_SW_BS_PC_EXIT (EFI_SUBCLASS_SPECIFIC | 0x00000017)\r
-#define EFI_SW_BS_PC_UNLOAD_IMAGE (EFI_SUBCLASS_SPECIFIC | 0x00000018)\r
-#define EFI_SW_BS_PC_EXIT_BOOT_SERVICES (EFI_SUBCLASS_SPECIFIC | 0x00000019)\r
-#define EFI_SW_BS_PC_GET_NEXT_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x0000001A)\r
-#define EFI_SW_BS_PC_STALL (EFI_SUBCLASS_SPECIFIC | 0x0000001B)\r
-#define EFI_SW_BS_PC_SET_WATCHDOG_TIMER (EFI_SUBCLASS_SPECIFIC | 0x0000001C)\r
-#define EFI_SW_BS_PC_CONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001D)\r
-#define EFI_SW_BS_PC_DISCONNECT_CONTROLLER (EFI_SUBCLASS_SPECIFIC | 0x0000001E)\r
-#define EFI_SW_BS_PC_OPEN_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x0000001F)\r
-#define EFI_SW_BS_PC_CLOSE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000020)\r
-#define EFI_SW_BS_PC_OPEN_PROTOCOL_INFORMATION (EFI_SUBCLASS_SPECIFIC | 0x00000021)\r
-#define EFI_SW_BS_PC_PROTOCOLS_PER_HANDLE (EFI_SUBCLASS_SPECIFIC | 0x00000022)\r
-#define EFI_SW_BS_PC_LOCATE_HANDLE_BUFFER (EFI_SUBCLASS_SPECIFIC | 0x00000023)\r
-#define EFI_SW_BS_PC_LOCATE_PROTOCOL (EFI_SUBCLASS_SPECIFIC | 0x00000024)\r
-#define EFI_SW_BS_PC_INSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000025)\r
-#define EFI_SW_BS_PC_UNINSTALL_MULTIPLE_INTERFACES (EFI_SUBCLASS_SPECIFIC | 0x00000026)\r
-#define EFI_SW_BS_PC_CALCULATE_CRC_32 (EFI_SUBCLASS_SPECIFIC | 0x00000027)\r
-#define EFI_SW_BS_PC_COPY_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000028)\r
-#define EFI_SW_BS_PC_SET_MEM (EFI_SUBCLASS_SPECIFIC | 0x00000029)\r
-\r
-//\r
-// Software Class EFI Runtime Services Subclass Progress Code definitions.\r
-//\r
-#define EFI_SW_RS_PC_GET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_RS_PC_SET_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_RS_PC_GET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_RS_PC_SET_WAKEUP_TIME (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_RS_PC_SET_VIRTUAL_ADDRESS_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_RS_PC_CONVERT_POINTER (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_RS_PC_GET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_RS_PC_GET_NEXT_VARIABLE_NAME (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_RS_PC_SET_VARIABLE (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_RS_PC_GET_NEXT_HIGH_MONOTONIC_COUNT (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_RS_PC_RESET_SYSTEM (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-\r
-//\r
-// Software Class EFI DXE Services Subclass Progress Code definitions\r
-//\r
-#define EFI_SW_DS_PC_ADD_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_DS_PC_ALLOCATE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-#define EFI_SW_DS_PC_FREE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000002)\r
-#define EFI_SW_DS_PC_REMOVE_MEMORY_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000003)\r
-#define EFI_SW_DS_PC_GET_MEMORY_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000004)\r
-#define EFI_SW_DS_PC_SET_MEMORY_SPACE_ATTRIBUTES (EFI_SUBCLASS_SPECIFIC | 0x00000005)\r
-#define EFI_SW_DS_PC_GET_MEMORY_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x00000006)\r
-#define EFI_SW_DS_PC_ADD_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000007)\r
-#define EFI_SW_DS_PC_ALLOCATE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000008)\r
-#define EFI_SW_DS_PC_FREE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000009)\r
-#define EFI_SW_DS_PC_REMOVE_IO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x0000000A)\r
-#define EFI_SW_DS_PC_GET_IO_SPACE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x0000000B)\r
-#define EFI_SW_DS_PC_GET_IO_SPACE_MAP (EFI_SUBCLASS_SPECIFIC | 0x0000000C)\r
-#define EFI_SW_DS_PC_DISPATCH (EFI_SUBCLASS_SPECIFIC | 0x0000000D)\r
-#define EFI_SW_DS_PC_SCHEDULE (EFI_SUBCLASS_SPECIFIC | 0x0000000E)\r
-#define EFI_SW_DS_PC_TRUST (EFI_SUBCLASS_SPECIFIC | 0x0000000F)\r
-#define EFI_SW_DS_PC_PROCESS_FIRMWARE_VOLUME (EFI_SUBCLASS_SPECIFIC | 0x00000010)\r
-\r
-//\r
-// Software Class Error Code definitions.\r
-// These are shared by all subclasses.\r
-//\r
-#define EFI_SW_EC_NON_SPECIFIC 0x00000000\r
-#define EFI_SW_EC_LOAD_ERROR 0x00000001\r
-#define EFI_SW_EC_INVALID_PARAMETER 0x00000002\r
-#define EFI_SW_EC_UNSUPPORTED 0x00000003\r
-#define EFI_SW_EC_INVALID_BUFFER 0x00000004\r
-#define EFI_SW_EC_OUT_OF_RESOURCES 0x00000005\r
-#define EFI_SW_EC_ABORTED 0x00000006\r
-#define EFI_SW_EC_ILLEGAL_SOFTWARE_STATE 0x00000007\r
-#define EFI_SW_EC_ILLEGAL_HARDWARE_STATE 0x00000008\r
-#define EFI_SW_EC_START_ERROR 0x00000009\r
-#define EFI_SW_EC_BAD_DATE_TIME 0x0000000A\r
-#define EFI_SW_EC_CFG_INVALID 0x0000000B\r
-#define EFI_SW_EC_CFG_CLR_REQUEST 0x0000000C\r
-#define EFI_SW_EC_CFG_DEFAULT 0x0000000D\r
-#define EFI_SW_EC_PWD_INVALID 0x0000000E\r
-#define EFI_SW_EC_PWD_CLR_REQUEST 0x0000000F\r
-#define EFI_SW_EC_PWD_CLEARED 0x00000010\r
-#define EFI_SW_EC_EVENT_LOG_FULL 0x00000011\r
-\r
-//\r
-// Software Class Unspecified Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class SEC Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class PEI Core Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_PEI_CORE_EC_DXE_CORRUPT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Software Class PEI Module Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_PEIM_EC_NO_RECOVERY_CAPSULE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-#define EFI_SW_PEIM_EC_INVALID_CAPSULE_DESCRIPTOR (EFI_SUBCLASS_SPECIFIC | 0x00000001)\r
-\r
-//\r
-// Software Class DXE Core Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_CSM_LEGACY_ROM_INIT (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-//\r
-// Software Class DXE Boot Service Driver Subclass Error Code definitions.\r
-//\r
-#define EFI_SW_DXE_BS_EC_LEGACY_OPROM_NO_SPACE (EFI_SUBCLASS_SPECIFIC | 0x00000000)\r
-\r
-//\r
-// Software Class DXE Runtime Service Driver Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class SMM Driver Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI Application Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI OS Loader Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI RT Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI AL Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EBC Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_EBC_UNDEFINED (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_UNDEFINED)\r
-#define EFI_SW_EC_EBC_DIVIDE_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DIVIDE_ERROR)\r
-#define EFI_SW_EC_EBC_DEBUG (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_DEBUG)\r
-#define EFI_SW_EC_EBC_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BREAKPOINT)\r
-#define EFI_SW_EC_EBC_OVERFLOW (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_OVERFLOW)\r
-#define EFI_SW_EC_EBC_INVALID_OPCODE (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INVALID_OPCODE)\r
-#define EFI_SW_EC_EBC_STACK_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STACK_FAULT)\r
-#define EFI_SW_EC_EBC_ALIGNMENT_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_ALIGNMENT_CHECK)\r
-#define EFI_SW_EC_EBC_INSTRUCTION_ENCODING (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_INSTRUCTION_ENCODING)\r
-#define EFI_SW_EC_EBC_BAD_BREAK (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_BAD_BREAK)\r
-#define EFI_SW_EC_EBC_STEP (EFI_SUBCLASS_SPECIFIC | EXCEPT_EBC_STEP)\r
-\r
-//\r
-// Software Class IA32 Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_IA32_DIVIDE_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DIVIDE_ERROR)\r
-#define EFI_SW_EC_IA32_DEBUG (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DEBUG)\r
-#define EFI_SW_EC_IA32_NMI (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_NMI)\r
-#define EFI_SW_EC_IA32_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BREAKPOINT)\r
-#define EFI_SW_EC_IA32_OVERFLOW (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_OVERFLOW)\r
-#define EFI_SW_EC_IA32_BOUND (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_BOUND)\r
-#define EFI_SW_EC_IA32_INVALID_OPCODE (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_OPCODE)\r
-#define EFI_SW_EC_IA32_DOUBLE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_DOUBLE_FAULT)\r
-#define EFI_SW_EC_IA32_INVALID_TSS (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_INVALID_TSS)\r
-#define EFI_SW_EC_IA32_SEG_NOT_PRESENT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SEG_NOT_PRESENT)\r
-#define EFI_SW_EC_IA32_STACK_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_STACK_FAULT)\r
-#define EFI_SW_EC_IA32_GP_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_GP_FAULT)\r
-#define EFI_SW_EC_IA32_PAGE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_PAGE_FAULT)\r
-#define EFI_SW_EC_IA32_FP_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_FP_ERROR)\r
-#define EFI_SW_EC_IA32_ALIGNMENT_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_ALIGNMENT_CHECK)\r
-#define EFI_SW_EC_IA32_MACHINE_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_MACHINE_CHECK)\r
-#define EFI_SW_EC_IA32_SIMD (EFI_SUBCLASS_SPECIFIC | EXCEPT_IA32_SIMD)\r
-\r
-//\r
-// Software Class X64 Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_X64_DIVIDE_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DIVIDE_ERROR)\r
-#define EFI_SW_EC_X64_DEBUG (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DEBUG)\r
-#define EFI_SW_EC_X64_NMI (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_NMI)\r
-#define EFI_SW_EC_X64_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BREAKPOINT)\r
-#define EFI_SW_EC_X64_OVERFLOW (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_OVERFLOW)\r
-#define EFI_SW_EC_X64_BOUND (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_BOUND)\r
-#define EFI_SW_EC_X64_INVALID_OPCODE (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_OPCODE)\r
-#define EFI_SW_EC_X64_DOUBLE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_DOUBLE_FAULT)\r
-#define EFI_SW_EC_X64_INVALID_TSS (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_INVALID_TSS)\r
-#define EFI_SW_EC_X64_SEG_NOT_PRESENT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SEG_NOT_PRESENT)\r
-#define EFI_SW_EC_X64_STACK_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_STACK_FAULT)\r
-#define EFI_SW_EC_X64_GP_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_GP_FAULT)\r
-#define EFI_SW_EC_X64_PAGE_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_PAGE_FAULT)\r
-#define EFI_SW_EC_X64_FP_ERROR (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_FP_ERROR)\r
-#define EFI_SW_EC_X64_ALIGNMENT_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_ALIGNMENT_CHECK)\r
-#define EFI_SW_EC_X64_MACHINE_CHECK (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_MACHINE_CHECK)\r
-#define EFI_SW_EC_X64_SIMD (EFI_SUBCLASS_SPECIFIC | EXCEPT_X64_SIMD)\r
-\r
-//\r
-// Software Class IPF Exception Subclass Error Code definitions.\r
-// These exceptions are derived from the debug protocol definitions in the EFI\r
-// specification.\r
-//\r
-#define EFI_SW_EC_IPF_ALT_DTLB (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_ALT_DTLB)\r
-#define EFI_SW_EC_IPF_DNESTED_TLB (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DNESTED_TLB)\r
-#define EFI_SW_EC_IPF_BREAKPOINT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_BREAKPOINT)\r
-#define EFI_SW_EC_IPF_EXTERNAL_INTERRUPT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_EXTERNAL_INTERRUPT)\r
-#define EFI_SW_EC_IPF_GEN_EXCEPT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_GEN_EXCEPT)\r
-#define EFI_SW_EC_IPF_NAT_CONSUMPTION (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_NAT_CONSUMPTION)\r
-#define EFI_SW_EC_IPF_DEBUG_EXCEPT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_DEBUG_EXCEPT)\r
-#define EFI_SW_EC_IPF_UNALIGNED_ACCESS (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_UNALIGNED_ACCESS)\r
-#define EFI_SW_EC_IPF_FP_FAULT (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_FAULT)\r
-#define EFI_SW_EC_IPF_FP_TRAP (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_FP_TRAP)\r
-#define EFI_SW_EC_IPF_TAKEN_BRANCH (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_TAKEN_BRANCH)\r
-#define EFI_SW_EC_IPF_SINGLE_STEP (EFI_SUBCLASS_SPECIFIC | EXCEPT_IPF_SINGLE_STEP)\r
-\r
-\r
-//\r
-// Software Class PEI Service Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI Boot Service Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI Runtime Service Subclass Error Code definitions.\r
-//\r
-//\r
-// Software Class EFI DXE Service Subclass Error Code definitions.\r
-//\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
-// Section 7\r
-///////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Debug Code definitions for all classes and subclass\r
-// Only one debug code is defined at this point and should\r
-// be used for anything that gets sent to debug stream.\r
-//\r
-#define EFI_DC_UNSPECIFIED 0x0\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- This file defines the data structures to support Status Code Data.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkStatusCodeDataTypeId.h\r
-\r
- @par Revision Reference:\r
- These definitions are from Framework of EFI Status Code Spec\r
- Version 0.92.\r
-\r
-**/\r
-\r
-#ifndef __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
-#define __FRAMEWORK_STATUS_CODE_DATA_TYPE_ID_H__\r
-\r
-#include <Common/DataHubRecords.h>\r
-#include <Protocol/DebugSupport.h>\r
-\r
-///\r
-/// The size of string\r
-///\r
-#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150\r
-\r
-///\r
-/// This is the max data size including all the headers which can be passed\r
-/// as Status Code data. This data should be multiple of 8 byte\r
-/// to avoid any kind of boundary issue. Also, sum of this data size (inclusive\r
-/// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of\r
-/// data hub\r
-///\r
-#define EFI_STATUS_CODE_DATA_MAX_SIZE 200\r
-\r
-#pragma pack(1)\r
-typedef enum {\r
- EfiStringAscii,\r
- EfiStringUnicode,\r
- EfiStringToken\r
-} EFI_STRING_TYPE;\r
-\r
-typedef struct {\r
- EFI_HII_HANDLE Handle;\r
- STRING_REF Token;\r
-} EFI_STATUS_CODE_STRING_TOKEN;\r
-\r
-typedef union {\r
- CHAR8 *Ascii;\r
- CHAR16 *Unicode;\r
- EFI_STATUS_CODE_STRING_TOKEN Hii;\r
-} EFI_STATUS_CODE_STRING;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_STRING_TYPE StringType;\r
- EFI_STATUS_CODE_STRING String;\r
-} EFI_STATUS_CODE_STRING_DATA;\r
-\r
-#pragma pack()\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
- UINT32 ErrorLevel;\r
- //\r
- // 12 * sizeof (UINT64) Var Arg stack\r
- //\r
- // ascii DEBUG () Format string\r
- //\r
-} EFI_DEBUG_INFO;\r
-\r
-#pragma pack()\r
-\r
-//\r
-// declaration for EFI_EXP_DATA. This may change\r
-//\r
-// typedef UINTN EFI_EXP_DATA;\r
-\r
-///\r
-/// Voltage Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_EXP_BASE10_DATA Voltage;\r
- EFI_EXP_BASE10_DATA Threshold;\r
-} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;\r
-\r
-typedef struct {\r
- EFI_EXP_BASE10_DATA Voltage;\r
- EFI_EXP_BASE10_DATA Threshold;\r
-} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Microcode Update Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT32 Version;\r
-} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;\r
-\r
-typedef struct {\r
- UINT32 Version;\r
-} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Asynchronous Timer Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_EXP_BASE10_DATA TimerLimit;\r
-} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;\r
-\r
-typedef struct {\r
- EFI_EXP_BASE10_DATA TimerLimit;\r
-} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Host Processor Mismatch Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT32 Instance;\r
- UINT16 Attributes;\r
-} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;\r
-\r
-typedef struct {\r
- UINT32 Instance;\r
- UINT16 Attributes;\r
-} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA_PAYLOAD;\r
-\r
-//\r
-// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES\r
-// All other attributes are reserved for future use and\r
-// must be initialized to 0.\r
-//\r
-#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001\r
-#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002\r
-#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004\r
-#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008\r
-#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010\r
-#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000\r
-#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000\r
-\r
-///\r
-/// Thermal Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_EXP_BASE10_DATA Temperature;\r
- EFI_EXP_BASE10_DATA Threshold;\r
-} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA;\r
-\r
-typedef struct {\r
- EFI_EXP_BASE10_DATA Temperature;\r
- EFI_EXP_BASE10_DATA Threshold;\r
-} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Processor Disabled Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT32 Cause;\r
- BOOLEAN SoftwareDisabled;\r
-} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;\r
-\r
-typedef struct {\r
- UINT32 Cause;\r
- BOOLEAN SoftwareDisabled;\r
-} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA_PAYLOAD;\r
-\r
-typedef enum {\r
- EfiInitCacheDataOnly,\r
- EfiInitCacheInstrOnly,\r
- EfiInitCacheBoth,\r
- EfiInitCacheUnspecified\r
-} EFI_INIT_CACHE_TYPE;\r
-\r
-///\r
-/// Embedded cache init extended data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT32 Level;\r
- EFI_INIT_CACHE_TYPE Type;\r
-} EFI_CACHE_INIT_DATA;\r
-\r
-typedef struct {\r
- UINT32 Level;\r
- EFI_INIT_CACHE_TYPE Type;\r
-} EFI_CACHE_INIT_DATA_PAYLOAD;\r
-\r
-//\r
-// Memory Extended Error Data\r
-//\r
-\r
-///\r
-/// Memory Error Granularity Definition\r
-///\r
-typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY;\r
-\r
-///\r
-/// Memory Error Operation Definition\r
-///\r
-typedef UINT8 EFI_MEMORY_ERROR_OPERATION;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
- EFI_MEMORY_ERROR_OPERATION Operation;\r
- UINTN Syndrome;\r
- EFI_PHYSICAL_ADDRESS Address;\r
- UINTN Resolution;\r
-} EFI_MEMORY_EXTENDED_ERROR_DATA;\r
-\r
-typedef struct {\r
- EFI_MEMORY_ERROR_GRANULARITY Granularity;\r
- EFI_MEMORY_ERROR_OPERATION Operation;\r
- UINTN Syndrome;\r
- EFI_PHYSICAL_ADDRESS Address;\r
- UINTN Resolution;\r
-} EFI_MEMORY_EXTENDED_ERROR_DATA_PAYLOAD;\r
-\r
-//\r
-// Memory Error Granularities\r
-//\r
-#define EFI_MEMORY_ERROR_OTHER 0x01\r
-#define EFI_MEMORY_ERROR_UNKNOWN 0x02\r
-#define EFI_MEMORY_ERROR_DEVICE 0x03\r
-#define EFI_MEMORY_ERROR_PARTITION 0x04\r
-\r
-//\r
-// Memory Error Operations\r
-//\r
-#define EFI_MEMORY_OPERATION_OTHER 0x01\r
-#define EFI_MEMORY_OPERATION_UNKNOWN 0x02\r
-#define EFI_MEMORY_OPERATION_READ 0x03\r
-#define EFI_MEMORY_OPERATION_WRITE 0x04\r
-#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05\r
-\r
-//\r
-// Define shorthands to describe Group Operations\r
-// Many memory init operations are essentially group\r
-// operations.\r
-\r
-/// A shorthand to describe that the operation is performed\r
-/// on multiple devices within the array\r
-///\r
-#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe\r
-///\r
-/// A shorthand to describe that the operation is performed on all devices within the array\r
-///\r
-#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff\r
-///\r
-/// A shorthand to describe that the operation is performed on multiple arrays\r
-///\r
-#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe\r
-///\r
-/// A shorthand to describe that the operation is performed on all the arrays\r
-///\r
-#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff\r
-\r
-//\r
-// DIMM number\r
-//\r
-#pragma pack(1)\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT16 Array;\r
- UINT16 Device;\r
-} EFI_STATUS_CODE_DIMM_NUMBER;\r
-\r
-typedef struct {\r
- UINT16 Array;\r
- UINT16 Device;\r
-} EFI_STATUS_CODE_DIMM_NUMBER_PAYLOAD;\r
-#pragma pack()\r
-\r
-///\r
-/// Memory Module Mismatch Extended Error Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
-} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_DIMM_NUMBER Instance;\r
-} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Memory Range Extended Data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_PHYSICAL_ADDRESS Start;\r
- EFI_PHYSICAL_ADDRESS Length;\r
-} EFI_MEMORY_RANGE_EXTENDED_DATA;\r
-\r
-typedef struct {\r
- EFI_PHYSICAL_ADDRESS Start;\r
- EFI_PHYSICAL_ADDRESS Length;\r
-} EFI_MEMORY_RANGE_EXTENDED_DATA_PAYLOAD;\r
-\r
-///\r
-/// Device handle Extended Data. Used for many\r
-/// errors and progress codes to point to the device.\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_HANDLE Handle;\r
-} EFI_DEVICE_HANDLE_EXTENDED_DATA;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT8 *DevicePath;\r
-} EFI_DEVICE_PATH_EXTENDED_DATA;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_HANDLE ControllerHandle;\r
- EFI_HANDLE DriverBindingHandle;\r
- UINT16 DevicePathSize;\r
- UINT8 *RemainingDevicePath;\r
-} EFI_STATUS_CODE_START_EXTENDED_DATA;\r
-\r
-typedef struct {\r
- EFI_HANDLE Handle;\r
-} EFI_DEVICE_HANDLE_EXTENDED_DATA_PAYLOAD;\r
-\r
-typedef struct {\r
- UINT8 *DevicePath;\r
-} EFI_DEVICE_PATH_EXTENDED_DATA_PAYLOAD;\r
-\r
-typedef struct {\r
- EFI_HANDLE ControllerHandle;\r
- EFI_HANDLE DriverBindingHandle;\r
- UINT16 DevicePathSize;\r
- UINT8 *RemainingDevicePath;\r
-} EFI_STATUS_CODE_START_EXTENDED_DATA_PAYLOAD;\r
-\r
-///\r
-/// Resource Allocation Failure Extended Error Data\r
-///\r
-\r
-/*\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- UINT32 Bar;\r
- VOID *ReqRes;\r
- VOID *AllocRes;\r
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
-*/\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT32 Bar;\r
- UINT16 DevicePathSize;\r
- UINT16 ReqResSize;\r
- UINT16 AllocResSize;\r
- UINT8 *DevicePath;\r
- UINT8 *ReqRes;\r
- UINT8 *AllocRes;\r
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA;\r
-\r
-typedef struct {\r
- UINT32 Bar;\r
- UINT16 DevicePathSize;\r
- UINT16 ReqResSize;\r
- UINT16 AllocResSize;\r
- UINT8 *DevicePath;\r
- UINT8 *ReqRes;\r
- UINT8 *AllocRes;\r
-} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA_PAYLOAD;\r
-\r
-///\r
-/// Extended Error Data for Assert\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- UINT32 LineNumber;\r
- UINT32 FileNameSize;\r
- EFI_STATUS_CODE_STRING_DATA *FileName;\r
-} EFI_DEBUG_ASSERT_DATA;\r
-\r
-typedef struct {\r
- UINT32 LineNumber;\r
- UINT32 FileNameSize;\r
- EFI_STATUS_CODE_STRING_DATA *FileName;\r
-} EFI_DEBUG_ASSERT_DATA_PAYLOAD;\r
-\r
-///\r
-/// System Context Data EBC/IA32/IPF\r
-///\r
-typedef union {\r
- EFI_SYSTEM_CONTEXT_EBC SystemContextEbc;\r
- EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32;\r
- EFI_SYSTEM_CONTEXT_IPF SystemContextIpf;\r
-} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;\r
-} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;\r
-\r
-typedef struct {\r
- EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;\r
-} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA_PAYLOAD;\r
-\r
-///\r
-/// Legacy Oprom extended data\r
-///\r
-typedef struct {\r
- EFI_STATUS_CODE_DATA DataHeader;\r
- EFI_HANDLE DeviceHandle;\r
- EFI_PHYSICAL_ADDRESS RomImageBase;\r
-} EFI_LEGACY_OPROM_EXTENDED_DATA;\r
-\r
-typedef struct {\r
- EFI_HANDLE DeviceHandle;\r
- EFI_PHYSICAL_ADDRESS RomImageBase;\r
-} EFI_LEGACY_OPROM_EXTENDED_DATA_PAYLOAD;\r
-\r
-#endif\r
--- /dev/null
+/** @file\r
+ This file defines GUIDs and associated data structures for records posted to the Data Hub.\r
+ The producers of these records use these definitions to construct records.\r
+ The consumers of these records use these definitions to retrieve, filter and parse records.\r
+\r
+ Copyright (c) 2007, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: DataHubRecords.h\r
+\r
+ @par Revision Reference:\r
+ DataHubRecord.h include all data hub sub class defitions from Cache subclass\r
+ spec 0.9, DataHub SubClass spec 0.9, Memory SubClass Spec 0.9, Processor\r
+ Subclass spec 0.9,Misc SubClass spec 0.9.\r
+\r
+**/\r
+\r
+#ifndef _DATAHUB_RECORDS_H_\r
+#define _DATAHUB_RECORDS_H_\r
+\r
+#include <PiPei.h>\r
+#include <Protocol/DevicePath.h>\r
+\r
+#define EFI_PROCESSOR_SUBCLASS_VERSION 0x00010000\r
+\r
+#include <Protocol/DevicePath.h>\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct _USB_PORT_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} USB_PORT_DEVICE_PATH;\r
+\r
+//\r
+// IDE\r
+//\r
+typedef struct _IDE_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} IDE_DEVICE_PATH;\r
+\r
+//\r
+// RMC Connector\r
+//\r
+typedef struct _RMC_CONN_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} RMC_CONN_DEVICE_PATH;\r
+\r
+//\r
+// RIDE\r
+//\r
+typedef struct _RIDE_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} RIDE_DEVICE_PATH;\r
+\r
+//\r
+// Gigabit NIC\r
+//\r
+typedef struct _GB_NIC_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciXBridgeDevicePath;\r
+ PCI_DEVICE_PATH PciXBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} GB_NIC_DEVICE_PATH;\r
+\r
+//\r
+// P/S2 Connector\r
+//\r
+typedef struct _PS2_CONN_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH LpcBridgeDevicePath;\r
+ ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} PS2_CONN_DEVICE_PATH;\r
+\r
+//\r
+// Serial Port Connector\r
+//\r
+typedef struct _SERIAL_CONN_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH LpcBridgeDevicePath;\r
+ ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} SERIAL_CONN_DEVICE_PATH;\r
+\r
+//\r
+// Parallel Port Connector\r
+//\r
+typedef struct _PARALLEL_CONN_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH LpcBridgeDevicePath;\r
+ ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} PARALLEL_CONN_DEVICE_PATH;\r
+\r
+//\r
+// Floopy Connector\r
+//\r
+typedef struct _FLOOPY_CONN_DEVICE_PATH {\r
+ ACPI_HID_DEVICE_PATH PciRootBridgeDevicePath;\r
+ PCI_DEVICE_PATH LpcBridgeDevicePath;\r
+ ACPI_HID_DEVICE_PATH LpcBusDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+} FLOOPY_CONN_DEVICE_PATH;\r
+\r
+typedef union _EFI_MISC_PORT_DEVICE_PATH {\r
+ USB_PORT_DEVICE_PATH UsbDevicePath;\r
+ IDE_DEVICE_PATH IdeDevicePath;\r
+ RMC_CONN_DEVICE_PATH RmcConnDevicePath;\r
+ RIDE_DEVICE_PATH RideDevicePath;\r
+ GB_NIC_DEVICE_PATH GbNicDevicePath;\r
+ PS2_CONN_DEVICE_PATH Ps2ConnDevicePath;\r
+ SERIAL_CONN_DEVICE_PATH SerialConnDevicePath;\r
+ PARALLEL_CONN_DEVICE_PATH ParallelConnDevicePath;\r
+ FLOOPY_CONN_DEVICE_PATH FloppyConnDevicePath;\r
+} EFI_MISC_PORT_DEVICE_PATH;\r
+\r
+#pragma pack()\r
+\r
+//\r
+// String Token Definition\r
+//\r
+#define EFI_STRING_TOKEN UINT16\r
+\r
+typedef struct {\r
+ UINT32 Version;\r
+ UINT32 HeaderSize;\r
+ UINT16 Instance;\r
+ UINT16 SubInstance;\r
+ UINT32 RecordType;\r
+} EFI_SUBCLASS_TYPE1_HEADER;\r
+\r
+typedef struct {\r
+ EFI_GUID ProducerName;\r
+ UINT16 Instance;\r
+ UINT16 SubInstance;\r
+} EFI_INTER_LINK_DATA;\r
+\r
+\r
+//\r
+// EXP data\r
+//\r
+\r
+typedef struct {\r
+ UINT16 Value;\r
+ UINT16 Exponent;\r
+} EFI_EXP_BASE2_DATA;\r
+\r
+\r
+typedef struct {\r
+ UINT16 Value;\r
+ UINT16 Exponent;\r
+} EFI_EXP_BASE10_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_CORE_FREQUENCY_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA *EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_FSB_FREQUENCY_DATA;\r
+\r
+typedef STRING_REF EFI_PROCESSOR_VERSION_DATA;\r
+\r
+typedef STRING_REF EFI_PROCESSOR_MANUFACTURER_DATA;\r
+\r
+typedef STRING_REF EFI_PROCESSOR_SERIAL_NUMBER_DATA;\r
+\r
+typedef STRING_REF EFI_PROCESSOR_ASSET_TAG_DATA;\r
+\r
+typedef struct {\r
+ UINT32 ProcessorSteppingId:4;\r
+ UINT32 ProcessorModel: 4;\r
+ UINT32 ProcessorFamily: 4;\r
+ UINT32 ProcessorType: 2;\r
+ UINT32 ProcessorReserved1: 2;\r
+ UINT32 ProcessorXModel: 4;\r
+ UINT32 ProcessorXFamily: 8;\r
+ UINT32 ProcessorReserved2: 4;\r
+} EFI_PROCESSOR_SIGNATURE;\r
+\r
+typedef struct {\r
+ UINT32 ProcessorBrandIndex :8;\r
+ UINT32 ProcessorClflush :8;\r
+ UINT32 ProcessorReserved :8;\r
+ UINT32 ProcessorDfltApicId :8;\r
+} EFI_PROCESSOR_MISC_INFO;\r
+\r
+typedef struct {\r
+ UINT32 ProcessorFpu: 1;\r
+ UINT32 ProcessorVme: 1;\r
+ UINT32 ProcessorDe: 1;\r
+ UINT32 ProcessorPse: 1;\r
+ UINT32 ProcessorTsc: 1;\r
+ UINT32 ProcessorMsr: 1;\r
+ UINT32 ProcessorPae: 1;\r
+ UINT32 ProcessorMce: 1;\r
+ UINT32 ProcessorCx8: 1;\r
+ UINT32 ProcessorApic: 1;\r
+ UINT32 ProcessorReserved1: 1;\r
+ UINT32 ProcessorSep: 1;\r
+ UINT32 ProcessorMtrr: 1;\r
+ UINT32 ProcessorPge: 1;\r
+ UINT32 ProcessorMca: 1;\r
+ UINT32 ProcessorCmov: 1;\r
+ UINT32 ProcessorPat: 1;\r
+ UINT32 ProcessorPse36: 1;\r
+ UINT32 ProcessorPsn: 1;\r
+ UINT32 ProcessorClfsh: 1;\r
+ UINT32 ProcessorReserved2: 1;\r
+ UINT32 ProcessorDs: 1;\r
+ UINT32 ProcessorAcpi: 1;\r
+ UINT32 ProcessorMmx: 1;\r
+ UINT32 ProcessorFxsr: 1;\r
+ UINT32 ProcessorSse: 1;\r
+ UINT32 ProcessorSse2: 1;\r
+ UINT32 ProcessorSs: 1;\r
+ UINT32 ProcessorReserved3: 1;\r
+ UINT32 ProcessorTm: 1;\r
+ UINT32 ProcessorReserved4: 2;\r
+} EFI_PROCESSOR_FEATURE_FLAGS;\r
+\r
+typedef struct {\r
+ EFI_PROCESSOR_SIGNATURE Signature;\r
+ EFI_PROCESSOR_MISC_INFO MiscInfo;\r
+ UINT32 Reserved;\r
+ EFI_PROCESSOR_FEATURE_FLAGS FeatureFlags;\r
+} EFI_PROCESSOR_ID_DATA;\r
+\r
+typedef enum {\r
+ EfiProcessorOther = 1,\r
+ EfiProcessorUnknown = 2,\r
+ EfiCentralProcessor = 3,\r
+ EfiMathProcessor = 4,\r
+ EfiDspProcessor = 5,\r
+ EfiVideoProcessor = 6\r
+} EFI_PROCESSOR_TYPE_DATA;\r
+\r
+typedef enum {\r
+ EfiProcessorFamilyOther = 1,\r
+ EfiProcessorFamilyUnknown = 2,\r
+ EfiProcessorFamily8086 = 3,\r
+ EfiProcessorFamily80286 = 4,\r
+ EfiProcessorFamilyIntel386 = 5,\r
+ EfiProcessorFamilyIntel486 = 6,\r
+ EfiProcessorFamily8087 = 7,\r
+ EfiProcessorFamily80287 = 8,\r
+ EfiProcessorFamily80387 = 9,\r
+ EfiProcessorFamily80487 = 0x0A,\r
+ EfiProcessorFamilyPentium = 0x0B,\r
+ EfiProcessorFamilyPentiumPro = 0x0C,\r
+ EfiProcessorFamilyPentiumII = 0x0D,\r
+ EfiProcessorFamilyPentiumMMX = 0x0E,\r
+ EfiProcessorFamilyCeleron = 0x0F,\r
+ EfiProcessorFamilyPentiumIIXeon = 0x10,\r
+ EfiProcessorFamilyPentiumIII = 0x11,\r
+ EfiProcessorFamilyM1 = 0x12,\r
+ EfiProcessorFamilyM1Reserved1 = 0x13,\r
+ EfiProcessorFamilyM1Reserved2 = 0x14,\r
+ EfiProcessorFamilyM1Reserved3 = 0x15,\r
+ EfiProcessorFamilyM1Reserved4 = 0x16,\r
+ EfiProcessorFamilyM1Reserved5 = 0x17,\r
+ EfiProcessorFamilyM1Reserved6 = 0x18,\r
+ EfiProcessorFamilyK5 = 0x19,\r
+ EfiProcessorFamilyK5Reserved1 = 0x1A,\r
+ EfiProcessorFamilyK5Reserved2 = 0x1B,\r
+ EfiProcessorFamilyK5Reserved3 = 0x1C,\r
+ EfiProcessorFamilyK5Reserved4 = 0x1D,\r
+ EfiProcessorFamilyK5Reserved5 = 0x1E,\r
+ EfiProcessorFamilyK5Reserved6 = 0x1F,\r
+ EfiProcessorFamilyPowerPC = 0x20,\r
+ EfiProcessorFamilyPowerPC601 = 0x21,\r
+ EfiProcessorFamilyPowerPC603 = 0x22,\r
+ EfiProcessorFamilyPowerPC603Plus = 0x23,\r
+ EfiProcessorFamilyPowerPC604 = 0x24,\r
+ EfiProcessorFamilyAlpha2 = 0x30,\r
+ EfiProcessorFamilyMips = 0x40,\r
+ EfiProcessorFamilySparc = 0x50,\r
+ EfiProcessorFamily68040 = 0x60,\r
+ EfiProcessorFamily68xxx = 0x61,\r
+ EfiProcessorFamily68000 = 0x62,\r
+ EfiProcessorFamily68010 = 0x63,\r
+ EfiProcessorFamily68020 = 0x64,\r
+ EfiProcessorFamily68030 = 0x65,\r
+ EfiProcessorFamilyHobbit = 0x70,\r
+ EfiProcessorFamilyWeitek = 0x80,\r
+ EfiProcessorFamilyPARISC = 0x90,\r
+ EfiProcessorFamilyV30 = 0xA0,\r
+ EfiProcessorFamilyPentiumIIIXeon = 0xB0,\r
+ EfiProcessorFamilyPentiumIIISpeedStep = 0xB1,\r
+ EfiProcessorFamilyPentium4 = 0xB2,\r
+ EfiProcessorFamilyIntelXeon = 0xB3,\r
+ EfiProcessorFamilyAS400 = 0xB4,\r
+ EfiProcessorFamilyIntelXeonMP = 0xB5,\r
+ EfiProcessorFamilyAMDAthlonXP = 0xB6,\r
+ EfiProcessorFamilyAMDAthlonMP = 0xB7,\r
+ EfiProcessorFamilyIntelPentiumM = 0xB9,\r
+ EfiProcessorFamilyIntelCeleronD = 0xBA,\r
+ EfiProcessorFamilyIntelPentiumD = 0xBB,\r
+ EfiProcessorFamilyIntelPentiumEx = 0xBC,\r
+ EfiProcessorFamilyIBM390 = 0xC8,\r
+ EfiProcessorFamilyG4 = 0xC9,\r
+ EfiProcessorFamilyG5 = 0xCA,\r
+ EfiProcessorFamilyi860 = 0xFA,\r
+ EfiProcessorFamilyi960 = 0xFB\r
+} EFI_PROCESSOR_FAMILY_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA EFI_PROCESSOR_VOLTAGE_DATA;\r
+\r
+typedef EFI_PHYSICAL_ADDRESS EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA;\r
+\r
+typedef UINT32 EFI_PROCESSOR_APIC_ID_DATA;\r
+\r
+typedef UINT32 EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA;\r
+\r
+typedef enum {\r
+ EfiProcessorIa32Microcode = 1,\r
+ EfiProcessorIpfPalAMicrocode = 2,\r
+ EfiProcessorIpfPalBMicrocode = 3\r
+} EFI_PROCESSOR_MICROCODE_TYPE;\r
+\r
+typedef struct {\r
+ EFI_PROCESSOR_MICROCODE_TYPE ProcessorMicrocodeType;\r
+ UINT32 ProcessorMicrocodeRevisionNumber;\r
+} EFI_PROCESSOR_MICROCODE_REVISION_DATA;\r
+\r
+typedef struct {\r
+ UINT32 CpuStatus :3;\r
+ UINT32 Reserved1 :3;\r
+ UINT32 SocketPopulated :1;\r
+ UINT32 Reserved2 :1;\r
+ UINT32 ApicEnable :1;\r
+ UINT32 BootApplicationProcessor :1;\r
+ UINT32 Reserved3 :22;\r
+} EFI_PROCESSOR_STATUS_DATA;\r
+\r
+typedef enum {\r
+ EfiCpuStatusUnknown = 0,\r
+ EfiCpuStatusEnabled = 1,\r
+ EfiCpuStatusDisabledByUser = 2,\r
+ EfiCpuStatusDisabledbyBios = 3,\r
+ EfiCpuStatusIdle = 4,\r
+ EfiCpuStatusOther = 7\r
+} EFI_CPU_STATUS;\r
+\r
+typedef enum {\r
+ EfiProcessorSocketOther = 1,\r
+ EfiProcessorSocketUnknown = 2,\r
+ EfiProcessorSocketDaughterBoard = 3,\r
+ EfiProcessorSocketZIF = 4,\r
+ EfiProcessorSocketReplacePiggyBack = 5,\r
+ EfiProcessorSocketNone = 6,\r
+ EfiProcessorSocketLIF = 7,\r
+ EfiProcessorSocketSlot1 = 8,\r
+ EfiProcessorSocketSlot2 = 9,\r
+ EfiProcessorSocket370Pin = 0xA,\r
+ EfiProcessorSocketSlotA = 0xB,\r
+ EfiProcessorSocketSlotM = 0xC,\r
+ EfiProcessorSocket423 = 0xD,\r
+ EfiProcessorSocketA462 = 0xE,\r
+ EfiProcessorSocket478 = 0xF,\r
+ EfiProcessorSocket754 = 0x10,\r
+ EfiProcessorSocket940 = 0x11,\r
+ EfiProcessorSocket939 = 0x12,\r
+ EfiProcessorSocketmPGA604 = 0x13,\r
+ EfiProcessorSocketLGA771 = 0x14,\r
+ EfiProcessorSocketLGA775 = 0x15\r
+\r
+} EFI_PROCESSOR_SOCKET_TYPE_DATA;\r
+\r
+typedef STRING_REF EFI_PROCESSOR_SOCKET_NAME_DATA;\r
+\r
+typedef EFI_INTER_LINK_DATA EFI_CACHE_ASSOCIATION_DATA;\r
+\r
+typedef enum {\r
+ EfiProcessorHealthy = 1,\r
+ EfiProcessorPerfRestricted = 2,\r
+ EfiProcessorFuncRestricted = 3\r
+} EFI_PROCESSOR_HEALTH_STATUS;\r
+\r
+typedef UINTN EFI_PROCESSOR_PACKAGE_NUMBER_DATA;\r
+\r
+\r
+typedef enum {\r
+ ProcessorCoreFrequencyRecordType = 1,\r
+ ProcessorFsbFrequencyRecordType = 2,\r
+ ProcessorVersionRecordType = 3,\r
+ ProcessorManufacturerRecordType = 4,\r
+ ProcessorSerialNumberRecordType = 5,\r
+ ProcessorIdRecordType = 6,\r
+ ProcessorTypeRecordType = 7,\r
+ ProcessorFamilyRecordType = 8,\r
+ ProcessorVoltageRecordType = 9,\r
+ ProcessorApicBaseAddressRecordType = 10,\r
+ ProcessorApicIdRecordType = 11,\r
+ ProcessorApicVersionNumberRecordType = 12,\r
+ CpuUcodeRevisionDataRecordType = 13,\r
+ ProcessorStatusRecordType = 14,\r
+ ProcessorSocketTypeRecordType = 15,\r
+ ProcessorSocketNameRecordType = 16,\r
+ CacheAssociationRecordType = 17,\r
+ ProcessorMaxCoreFrequencyRecordType = 18,\r
+ ProcessorAssetTagRecordType = 19,\r
+ ProcessorMaxFsbFrequencyRecordType = 20,\r
+ ProcessorPackageNumberRecordType = 21,\r
+ ProcessorCoreFrequencyListRecordType = 22,\r
+ ProcessorFsbFrequencyListRecordType = 23,\r
+ ProcessorHealthStatusRecordType = 24\r
+} EFI_CPU_VARIABLE_RECORD_TYPE;\r
+\r
+typedef union {\r
+ EFI_PROCESSOR_CORE_FREQUENCY_LIST_DATA ProcessorCoreFrequencyList;\r
+ EFI_PROCESSOR_FSB_FREQUENCY_LIST_DATA ProcessorFsbFrequencyList;\r
+ EFI_PROCESSOR_SERIAL_NUMBER_DATA ProcessorSerialNumber;\r
+ EFI_PROCESSOR_CORE_FREQUENCY_DATA ProcessorCoreFrequency;\r
+ EFI_PROCESSOR_FSB_FREQUENCY_DATA ProcessorFsbFrequency;\r
+ EFI_PROCESSOR_MAX_CORE_FREQUENCY_DATA ProcessorMaxCoreFrequency;\r
+ EFI_PROCESSOR_MAX_FSB_FREQUENCY_DATA ProcessorMaxFsbFrequency;\r
+ EFI_PROCESSOR_VERSION_DATA ProcessorVersion;\r
+ EFI_PROCESSOR_MANUFACTURER_DATA ProcessorManufacturer;\r
+ EFI_PROCESSOR_ID_DATA ProcessorId;\r
+ EFI_PROCESSOR_TYPE_DATA ProcessorType;\r
+ EFI_PROCESSOR_FAMILY_DATA ProcessorFamily;\r
+ EFI_PROCESSOR_VOLTAGE_DATA ProcessorVoltage;\r
+ EFI_PROCESSOR_APIC_BASE_ADDRESS_DATA ProcessorApicBase;\r
+ EFI_PROCESSOR_APIC_ID_DATA ProcessorApicId;\r
+ EFI_PROCESSOR_APIC_VERSION_NUMBER_DATA ProcessorApicVersionNumber;\r
+ EFI_PROCESSOR_MICROCODE_REVISION_DATA CpuUcodeRevisionData;\r
+ EFI_PROCESSOR_STATUS_DATA ProcessorStatus;\r
+ EFI_PROCESSOR_SOCKET_TYPE_DATA ProcessorSocketType;\r
+ EFI_PROCESSOR_SOCKET_NAME_DATA ProcessorSocketName;\r
+ EFI_PROCESSOR_ASSET_TAG_DATA ProcessorAssetTag;\r
+ EFI_PROCESSOR_HEALTH_STATUS ProcessorHealthStatus;\r
+ EFI_PROCESSOR_PACKAGE_NUMBER_DATA ProcessorPackageNumber;\r
+} EFI_CPU_VARIABLE_RECORD;\r
+\r
+typedef struct {\r
+ EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
+ EFI_CPU_VARIABLE_RECORD VariableRecord;\r
+} EFI_CPU_DATA_RECORD;\r
+\r
+#define EFI_CACHE_SUBCLASS_VERSION 0x00010000\r
+\r
+\r
+typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;\r
+\r
+typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;\r
+\r
+typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;\r
+\r
+typedef STRING_REF EFI_CACHE_SOCKET_DATA;\r
+\r
+typedef struct {\r
+ UINT32 Other :1;\r
+ UINT32 Unknown :1;\r
+ UINT32 NonBurst :1;\r
+ UINT32 Burst :1;\r
+ UINT32 PipelineBurst :1;\r
+ UINT32 Asynchronous :1;\r
+ UINT32 Synchronous :1;\r
+ UINT32 Reserved :25;\r
+} EFI_CACHE_SRAM_TYPE_DATA;\r
+\r
+typedef enum {\r
+ EfiCacheErrorOther = 1,\r
+ EfiCacheErrorUnknown = 2,\r
+ EfiCacheErrorNone = 3,\r
+ EfiCacheErrorParity = 4,\r
+ EfiCacheErrorSingleBit = 5,\r
+ EfiCacheErrorMultiBit = 6\r
+} EFI_CACHE_ERROR_TYPE_DATA;\r
+\r
+typedef enum {\r
+ EfiCacheTypeOther = 1,\r
+ EfiCacheTypeUnknown = 2,\r
+ EfiCacheTypeInstruction = 3,\r
+ EfiCacheTypeData = 4,\r
+ EfiCacheTypeUnified = 5\r
+} EFI_CACHE_TYPE_DATA;\r
+\r
+typedef enum {\r
+ EfiCacheAssociativityOther = 1,\r
+ EfiCacheAssociativityUnknown = 2,\r
+ EfiCacheAssociativityDirectMapped = 3,\r
+ EfiCacheAssociativity2Way = 4,\r
+ EfiCacheAssociativity4Way = 5,\r
+ EfiCacheAssociativityFully = 6,\r
+ EfiCacheAssociativity8Way = 7,\r
+ EfiCacheAssociativity16Way = 8\r
+} EFI_CACHE_ASSOCIATIVITY_DATA;\r
+\r
+typedef struct {\r
+ UINT32 Level :3;\r
+ UINT32 Socketed :1;\r
+ UINT32 Reserved2 :1;\r
+ UINT32 Location :2;\r
+ UINT32 Enable :1;\r
+ UINT32 OperationalMode :2;\r
+ UINT32 Reserved1 :22;\r
+} EFI_CACHE_CONFIGURATION_DATA;\r
+\r
+#define EFI_CACHE_L1 1\r
+#define EFI_CACHE_L2 2\r
+#define EFI_CACHE_L3 3\r
+#define EFI_CACHE_L4 4\r
+#define EFI_CACHE_LMAX EFI_CACHE_L4\r
+\r
+#define EFI_CACHE_SOCKETED 1\r
+#define EFI_CACHE_NOT_SOCKETED 0\r
+\r
+typedef enum {\r
+ EfiCacheInternal = 0,\r
+ EfiCacheExternal = 1,\r
+ EfiCacheReserved = 2,\r
+ EfiCacheUnknown = 3\r
+} EFI_CACHE_LOCATION;\r
+\r
+#define EFI_CACHE_ENABLED 1\r
+#define EFI_CACHE_DISABLED 0\r
+\r
+typedef enum {\r
+ EfiCacheWriteThrough = 0,\r
+ EfiCacheWriteBack = 1,\r
+ EfiCacheDynamicMode = 2,\r
+ EfiCacheUnknownMode = 3\r
+} EFI_CACHE_OPERATIONAL_MODE;\r
+\r
+\r
+\r
+typedef enum {\r
+ CacheSizeRecordType = 1,\r
+ MaximumSizeCacheRecordType = 2,\r
+ CacheSpeedRecordType = 3,\r
+ CacheSocketRecordType = 4,\r
+ CacheSramTypeRecordType = 5,\r
+ CacheInstalledSramTypeRecordType = 6,\r
+ CacheErrorTypeRecordType = 7,\r
+ CacheTypeRecordType = 8,\r
+ CacheAssociativityRecordType = 9,\r
+ CacheConfigRecordType = 10\r
+} EFI_CACHE_VARIABLE_RECORD_TYPE;\r
+\r
+\r
+typedef union {\r
+ EFI_CACHE_SIZE_DATA CacheSize;\r
+ EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;\r
+ EFI_CACHE_SPEED_DATA CacheSpeed;\r
+ EFI_CACHE_SOCKET_DATA CacheSocket;\r
+ EFI_CACHE_SRAM_TYPE_DATA CacheSramType;\r
+ EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;\r
+ EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;\r
+ EFI_CACHE_TYPE_DATA CacheType;\r
+ EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;\r
+ EFI_CACHE_CONFIGURATION_DATA CacheConfig;\r
+ EFI_CACHE_ASSOCIATION_DATA CacheAssociation;\r
+} EFI_CACHE_VARIABLE_RECORD;\r
+\r
+typedef struct {\r
+ EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;\r
+ EFI_CACHE_VARIABLE_RECORD VariableRecord;\r
+} EFI_CACHE_DATA_RECORD;\r
+\r
+#define EFI_MEMORY_SUBCLASS_VERSION 0x0100\r
+\r
+\r
+#define EFI_MEMORY_SIZE_RECORD_NUMBER 0x00000001\r
+\r
+typedef enum _EFI_MEMORY_REGION_TYPE {\r
+ EfiMemoryRegionMemory = 0x01,\r
+ EfiMemoryRegionReserved = 0x02,\r
+ EfiMemoryRegionAcpi = 0x03,\r
+ EfiMemoryRegionNvs = 0x04\r
+} EFI_MEMORY_REGION_TYPE;\r
+\r
+typedef struct {\r
+ UINT32 ProcessorNumber;\r
+ UINT16 StartBusNumber;\r
+ UINT16 EndBusNumber;\r
+ EFI_MEMORY_REGION_TYPE MemoryRegionType;\r
+ EFI_EXP_BASE2_DATA MemorySize;\r
+ EFI_PHYSICAL_ADDRESS MemoryStartAddress;\r
+} EFI_MEMORY_SIZE_DATA;\r
+\r
+\r
+#define EFI_MEMORY_ARRAY_LOCATION_RECORD_NUMBER 0x00000002\r
+\r
+typedef enum _EFI_MEMORY_ARRAY_LOCATION {\r
+ EfiMemoryArrayLocationOther = 0x01,\r
+ EfiMemoryArrayLocationUnknown = 0x02,\r
+ EfiMemoryArrayLocationSystemBoard = 0x03,\r
+ EfiMemoryArrayLocationIsaAddonCard = 0x04,\r
+ EfiMemoryArrayLocationEisaAddonCard = 0x05,\r
+ EfiMemoryArrayLocationPciAddonCard = 0x06,\r
+ EfiMemoryArrayLocationMcaAddonCard = 0x07,\r
+ EfiMemoryArrayLocationPcmciaAddonCard = 0x08,\r
+ EfiMemoryArrayLocationProprietaryAddonCard = 0x09,\r
+ EfiMemoryArrayLocationNuBus = 0x0A,\r
+ EfiMemoryArrayLocationPc98C20AddonCard = 0xA0,\r
+ EfiMemoryArrayLocationPc98C24AddonCard = 0xA1,\r
+ EfiMemoryArrayLocationPc98EAddonCard = 0xA2,\r
+ EfiMemoryArrayLocationPc98LocalBusAddonCard = 0xA3\r
+} EFI_MEMORY_ARRAY_LOCATION;\r
+\r
+typedef enum _EFI_MEMORY_ARRAY_USE {\r
+ EfiMemoryArrayUseOther = 0x01,\r
+ EfiMemoryArrayUseUnknown = 0x02,\r
+ EfiMemoryArrayUseSystemMemory = 0x03,\r
+ EfiMemoryArrayUseVideoMemory = 0x04,\r
+ EfiMemoryArrayUseFlashMemory = 0x05,\r
+ EfiMemoryArrayUseNonVolatileRam = 0x06,\r
+ EfiMemoryArrayUseCacheMemory = 0x07,\r
+} EFI_MEMORY_ARRAY_USE;\r
+\r
+typedef enum _EFI_MEMORY_ERROR_CORRECTION {\r
+ EfiMemoryErrorCorrectionOther = 0x01,\r
+ EfiMemoryErrorCorrectionUnknown = 0x02,\r
+ EfiMemoryErrorCorrectionNone = 0x03,\r
+ EfiMemoryErrorCorrectionParity = 0x04,\r
+ EfiMemoryErrorCorrectionSingleBitEcc = 0x05,\r
+ EfiMemoryErrorCorrectionMultiBitEcc = 0x06,\r
+ EfiMemoryErrorCorrectionCrc = 0x07,\r
+} EFI_MEMORY_ERROR_CORRECTION;\r
+\r
+typedef struct {\r
+ EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
+ EFI_MEMORY_ARRAY_USE MemoryArrayUse;\r
+ EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
+ EFI_EXP_BASE2_DATA MaximumMemoryCapacity;\r
+ UINT16 NumberMemoryDevices;\r
+} EFI_MEMORY_ARRAY_LOCATION_DATA;\r
+\r
+\r
+#define EFI_MEMORY_ARRAY_LINK_RECORD_NUMBER 0x00000003\r
+\r
+typedef enum _EFI_MEMORY_FORM_FACTOR {\r
+ EfiMemoryFormFactorOther = 0x01,\r
+ EfiMemoryFormFactorUnknown = 0x02,\r
+ EfiMemoryFormFactorSimm = 0x03,\r
+ EfiMemoryFormFactorSip = 0x04,\r
+ EfiMemoryFormFactorChip = 0x05,\r
+ EfiMemoryFormFactorDip = 0x06,\r
+ EfiMemoryFormFactorZip = 0x07,\r
+ EfiMemoryFormFactorProprietaryCard = 0x08,\r
+ EfiMemoryFormFactorDimm = 0x09,\r
+ EfiMemoryFormFactorTsop = 0x0A,\r
+ EfiMemoryFormFactorRowOfChips = 0x0B,\r
+ EfiMemoryFormFactorRimm = 0x0C,\r
+ EfiMemoryFormFactorSodimm = 0x0D,\r
+ EfiMemoryFormFactorSrimm = 0x0E,\r
+ EfiMemoryFormFactorFbDimm = 0x0F\r
+} EFI_MEMORY_FORM_FACTOR;\r
+\r
+typedef enum _EFI_MEMORY_ARRAY_TYPE {\r
+ EfiMemoryTypeOther = 0x01,\r
+ EfiMemoryTypeUnknown = 0x02,\r
+ EfiMemoryTypeDram = 0x03,\r
+ EfiMemoryTypeEdram = 0x04,\r
+ EfiMemoryTypeVram = 0x05,\r
+ EfiMemoryTypeSram = 0x06,\r
+ EfiMemoryTypeRam = 0x07,\r
+ EfiMemoryTypeRom = 0x08,\r
+ EfiMemoryTypeFlash = 0x09,\r
+ EfiMemoryTypeEeprom = 0x0A,\r
+ EfiMemoryTypeFeprom = 0x0B,\r
+ EfiMemoryTypeEprom = 0x0C,\r
+ EfiMemoryTypeCdram = 0x0D,\r
+ EfiMemoryType3Dram = 0x0E,\r
+ EfiMemoryTypeSdram = 0x0F,\r
+ EfiMemoryTypeSgram = 0x10,\r
+ EfiMemoryTypeRdram = 0x11,\r
+ EfiMemoryTypeDdr = 0x12,\r
+ EfiMemoryTypeDdr2 = 0x13,\r
+ EfiMemoryTypeDdr2FbDimm = 0x14\r
+} EFI_MEMORY_ARRAY_TYPE;\r
+\r
+typedef struct {\r
+ UINT32 Reserved :1;\r
+ UINT32 Other :1;\r
+ UINT32 Unknown :1;\r
+ UINT32 FastPaged :1;\r
+ UINT32 StaticColumn :1;\r
+ UINT32 PseudoStatic :1;\r
+ UINT32 Rambus :1;\r
+ UINT32 Synchronous :1;\r
+ UINT32 Cmos :1;\r
+ UINT32 Edo :1;\r
+ UINT32 WindowDram :1;\r
+ UINT32 CacheDram :1;\r
+ UINT32 Nonvolatile :1;\r
+ UINT32 Reserved1 :19;\r
+} EFI_MEMORY_TYPE_DETAIL;\r
+\r
+typedef enum {\r
+ EfiMemoryStateEnabled = 0,\r
+ EfiMemoryStateUnknown = 1,\r
+ EfiMemoryStateUnsupported = 2,\r
+ EfiMemoryStateError = 3,\r
+ EfiMemoryStateAbsent = 4,\r
+ EfiMemoryStateDisabled = 5,\r
+ EfiMemoryStatePartial = 6\r
+} EFI_MEMORY_STATE;\r
+\r
+typedef struct {\r
+ STRING_REF MemoryDeviceLocator;\r
+ STRING_REF MemoryBankLocator;\r
+ STRING_REF MemoryManufacturer;\r
+ STRING_REF MemorySerialNumber;\r
+ STRING_REF MemoryAssetTag;\r
+ STRING_REF MemoryPartNumber;\r
+ EFI_INTER_LINK_DATA MemoryArrayLink;\r
+ EFI_INTER_LINK_DATA MemorySubArrayLink;\r
+ UINT16 MemoryTotalWidth;\r
+ UINT16 MemoryDataWidth;\r
+ EFI_EXP_BASE2_DATA MemoryDeviceSize;\r
+ EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
+ UINT8 MemoryDeviceSet;\r
+ EFI_MEMORY_ARRAY_TYPE MemoryType;\r
+ EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
+ EFI_EXP_BASE10_DATA MemorySpeed;\r
+ EFI_MEMORY_STATE MemoryState;\r
+} EFI_MEMORY_ARRAY_LINK_DATA;\r
+\r
+\r
+#define EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER 0x00000004\r
+\r
+typedef struct {\r
+ EFI_PHYSICAL_ADDRESS MemoryArrayStartAddress;\r
+ EFI_PHYSICAL_ADDRESS MemoryArrayEndAddress;\r
+ EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
+ UINT16 MemoryArrayPartitionWidth;\r
+} EFI_MEMORY_ARRAY_START_ADDRESS_DATA;\r
+\r
+\r
+#define EFI_MEMORY_DEVICE_START_ADDRESS_RECORD_NUMBER 0x00000005\r
+\r
+typedef struct {\r
+ EFI_PHYSICAL_ADDRESS MemoryDeviceStartAddress;\r
+ EFI_PHYSICAL_ADDRESS MemoryDeviceEndAddress;\r
+ EFI_INTER_LINK_DATA PhysicalMemoryDeviceLink;\r
+ EFI_INTER_LINK_DATA PhysicalMemoryArrayLink;\r
+ UINT8 MemoryDevicePartitionRowPosition;\r
+ UINT8 MemoryDeviceInterleavePosition;\r
+ UINT8 MemoryDeviceInterleaveDataDepth;\r
+} EFI_MEMORY_DEVICE_START_ADDRESS_DATA;\r
+\r
+\r
+//\r
+// Memory. Channel Device Type - SMBIOS Type 37\r
+//\r
+\r
+#define EFI_MEMORY_CHANNEL_TYPE_RECORD_NUMBER 0x00000006\r
+\r
+typedef enum _EFI_MEMORY_CHANNEL_TYPE {\r
+ EfiMemoryChannelTypeOther = 1,\r
+ EfiMemoryChannelTypeUnknown = 2,\r
+ EfiMemoryChannelTypeRambus = 3,\r
+ EfiMemoryChannelTypeSyncLink = 4\r
+} EFI_MEMORY_CHANNEL_TYPE;\r
+\r
+typedef struct {\r
+ EFI_MEMORY_CHANNEL_TYPE MemoryChannelType;\r
+ UINT8 MemoryChannelMaximumLoad;\r
+ UINT8 MemoryChannelDeviceCount;\r
+} EFI_MEMORY_CHANNEL_TYPE_DATA;\r
+\r
+#define EFI_MEMORY_CHANNEL_DEVICE_RECORD_NUMBER 0x00000007\r
+\r
+typedef struct {\r
+ UINT8 DeviceId;\r
+ EFI_INTER_LINK_DATA DeviceLink;\r
+ UINT8 MemoryChannelDeviceLoad;\r
+} EFI_MEMORY_CHANNEL_DEVICE_DATA;\r
+\r
+\r
+\r
+typedef union _EFI_MEMORY_SUBCLASS_RECORDS {\r
+ EFI_MEMORY_SIZE_DATA SizeData;\r
+ EFI_MEMORY_ARRAY_LOCATION_DATA ArrayLocationData;\r
+ EFI_MEMORY_ARRAY_LINK_DATA ArrayLink;\r
+ EFI_MEMORY_ARRAY_START_ADDRESS_DATA ArrayStartAddress;\r
+ EFI_MEMORY_DEVICE_START_ADDRESS_DATA DeviceStartAddress;\r
+ EFI_MEMORY_CHANNEL_TYPE_DATA ChannelTypeData;\r
+ EFI_MEMORY_CHANNEL_DEVICE_DATA ChannelDeviceData;\r
+} EFI_MEMORY_SUBCLASS_RECORDS;\r
+\r
+typedef struct {\r
+ EFI_SUBCLASS_TYPE1_HEADER Header;\r
+ EFI_MEMORY_SUBCLASS_RECORDS Record;\r
+} EFI_MEMORY_SUBCLASS_DRIVER_DATA;\r
+\r
+#define EFI_MISC_SUBCLASS_VERSION 0x0100\r
+\r
+#pragma pack(1)\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Last PCI Bus Number\r
+//\r
+#define EFI_MISC_LAST_PCI_BUS_RECORD_NUMBER 0x00000001\r
+\r
+typedef struct {\r
+ UINT8 LastPciBus;\r
+} EFI_MISC_LAST_PCI_BUS_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. BIOS Vendor - SMBIOS Type 0\r
+//\r
+#define EFI_MISC_BIOS_VENDOR_RECORD_NUMBER 0x00000002\r
+\r
+typedef struct {\r
+ UINT64 Reserved1 :2;\r
+ UINT64 Unknown :1;\r
+ UINT64 BiosCharacteristicsNotSupported :1;\r
+ UINT64 IsaIsSupported :1;\r
+ UINT64 McaIsSupported :1;\r
+ UINT64 EisaIsSupported :1;\r
+ UINT64 PciIsSupported :1;\r
+ UINT64 PcmciaIsSupported :1;\r
+ UINT64 PlugAndPlayIsSupported :1;\r
+ UINT64 ApmIsSupported :1;\r
+ UINT64 BiosIsUpgradable :1;\r
+ UINT64 BiosShadowingAllowed :1;\r
+ UINT64 VlVesaIsSupported :1;\r
+ UINT64 EscdSupportIsAvailable :1;\r
+ UINT64 BootFromCdIsSupported :1;\r
+ UINT64 SelectableBootIsSupported :1;\r
+ UINT64 RomBiosIsSocketed :1;\r
+ UINT64 BootFromPcmciaIsSupported :1;\r
+ UINT64 EDDSpecificationIsSupported :1;\r
+ UINT64 JapaneseNecFloppyIsSupported :1;\r
+ UINT64 JapaneseToshibaFloppyIsSupported :1;\r
+ UINT64 Floppy525_360IsSupported :1;\r
+ UINT64 Floppy525_12IsSupported :1;\r
+ UINT64 Floppy35_720IsSupported :1;\r
+ UINT64 Floppy35_288IsSupported :1;\r
+ UINT64 PrintScreenIsSupported :1;\r
+ UINT64 Keyboard8042IsSupported :1;\r
+ UINT64 SerialIsSupported :1;\r
+ UINT64 PrinterIsSupported :1;\r
+ UINT64 CgaMonoIsSupported :1;\r
+ UINT64 NecPc98 :1;\r
+ UINT64 AcpiIsSupported :1;\r
+ UINT64 UsbLegacyIsSupported :1;\r
+ UINT64 AgpIsSupported :1;\r
+ UINT64 I20BootIsSupported :1;\r
+ UINT64 Ls120BootIsSupported :1;\r
+ UINT64 AtapiZipDriveBootIsSupported :1;\r
+ UINT64 Boot1394IsSupported :1;\r
+ UINT64 SmartBatteryIsSupported :1;\r
+ UINT64 BiosBootSpecIsSupported :1;\r
+ UINT64 FunctionKeyNetworkBootIsSupported :1;\r
+ UINT64 Reserved :22;\r
+} EFI_MISC_BIOS_CHARACTERISTICS;\r
+\r
+typedef struct {\r
+ UINT64 BiosReserved :16;\r
+ UINT64 SystemReserved :16;\r
+ UINT64 Reserved :32;\r
+} EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION;\r
+\r
+typedef struct {\r
+ STRING_REF BiosVendor;\r
+ STRING_REF BiosVersion;\r
+ STRING_REF BiosReleaseDate;\r
+ EFI_PHYSICAL_ADDRESS BiosStartingAddress;\r
+ EFI_EXP_BASE2_DATA BiosPhysicalDeviceSize;\r
+ EFI_MISC_BIOS_CHARACTERISTICS BiosCharacteristics1;\r
+ EFI_MISC_BIOS_CHARACTERISTICS_EXTENSION BiosCharacteristics2;\r
+ UINT8 BiosMajorRelease;\r
+ UINT8 BiosMinorRelease;\r
+ UINT8 BiosEmbeddedFirmwareMajorRelease;\r
+ UINT8 BiosEmbeddedFirmwareMinorRelease;\r
+} EFI_MISC_BIOS_VENDOR_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. System Manufacturer - SMBIOS Type 1\r
+//\r
+#define EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER 0x00000003\r
+\r
+typedef enum {\r
+ EfiSystemWakeupTypeReserved = 0,\r
+ EfiSystemWakeupTypeOther = 1,\r
+ EfiSystemWakeupTypeUnknown = 2,\r
+ EfiSystemWakeupTypeApmTimer = 3,\r
+ EfiSystemWakeupTypeModemRing = 4,\r
+ EfiSystemWakeupTypeLanRemote = 5,\r
+ EfiSystemWakeupTypePowerSwitch = 6,\r
+ EfiSystemWakeupTypePciPme = 7,\r
+ EfiSystemWakeupTypeAcPowerRestored = 8,\r
+} EFI_MISC_SYSTEM_WAKEUP_TYPE;\r
+\r
+typedef struct {\r
+ STRING_REF SystemManufacturer;\r
+ STRING_REF SystemProductName;\r
+ STRING_REF SystemVersion;\r
+ STRING_REF SystemSerialNumber;\r
+ EFI_GUID SystemUuid;\r
+ EFI_MISC_SYSTEM_WAKEUP_TYPE SystemWakeupType;\r
+ STRING_REF SystemSKUNumber;\r
+ STRING_REF SystemFamily;\r
+} EFI_MISC_SYSTEM_MANUFACTURER_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Base Board Manufacturer - SMBIOS Type 2\r
+//\r
+#define EFI_MISC_BASE_BOARD_MANUFACTURER_RECORD_NUMBER 0x00000004\r
+\r
+typedef struct {\r
+ UINT32 Motherboard :1;\r
+ UINT32 RequiresDaughterCard :1;\r
+ UINT32 Removable :1;\r
+ UINT32 Replaceable :1;\r
+ UINT32 HotSwappable :1;\r
+ UINT32 Reserved :27;\r
+} EFI_BASE_BOARD_FEATURE_FLAGS;\r
+\r
+typedef enum {\r
+ EfiBaseBoardTypeUnknown = 1,\r
+ EfiBaseBoardTypeOther = 2,\r
+ EfiBaseBoardTypeServerBlade = 3,\r
+ EfiBaseBoardTypeConnectivitySwitch = 4,\r
+ EfiBaseBoardTypeSystemManagementModule = 5,\r
+ EfiBaseBoardTypeProcessorModule = 6,\r
+ EfiBaseBoardTypeIOModule = 7,\r
+ EfiBaseBoardTypeMemoryModule = 8,\r
+ EfiBaseBoardTypeDaughterBoard = 9,\r
+ EfiBaseBoardTypeMotherBoard = 0xA,\r
+ EfiBaseBoardTypeProcessorMemoryModule = 0xB,\r
+ EfiBaseBoardTypeProcessorIOModule = 0xC,\r
+ EfiBaseBoardTypeInterconnectBoard = 0xD,\r
+} EFI_BASE_BOARD_TYPE;\r
+\r
+typedef struct {\r
+ STRING_REF BaseBoardManufacturer;\r
+ STRING_REF BaseBoardProductName;\r
+ STRING_REF BaseBoardVersion;\r
+ STRING_REF BaseBoardSerialNumber;\r
+ STRING_REF BaseBoardAssetTag;\r
+ STRING_REF BaseBoardChassisLocation;\r
+ EFI_BASE_BOARD_FEATURE_FLAGS BaseBoardFeatureFlags;\r
+ EFI_BASE_BOARD_TYPE BaseBoardType;\r
+ EFI_INTER_LINK_DATA BaseBoardChassisLink;\r
+ UINT32 BaseBoardNumberLinks;\r
+ EFI_INTER_LINK_DATA LinkN;\r
+} EFI_MISC_BASE_BOARD_MANUFACTURER_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. System/Chassis Enclosure - SMBIOS Type 3\r
+//\r
+#define EFI_MISC_CHASSIS_MANUFACTURER_RECORD_NUMBER 0x00000005\r
+\r
+typedef enum {\r
+ EfiMiscChassisTypeOther = 0x1,\r
+ EfiMiscChassisTypeUnknown = 0x2,\r
+ EfiMiscChassisTypeDeskTop = 0x3,\r
+ EfiMiscChassisTypeLowProfileDesktop = 0x4,\r
+ EfiMiscChassisTypePizzaBox = 0x5,\r
+ EfiMiscChassisTypeMiniTower = 0x6,\r
+ EfiMiscChassisTypeTower = 0x7,\r
+ EfiMiscChassisTypePortable = 0x8,\r
+ EfiMiscChassisTypeLapTop = 0x9,\r
+ EfiMiscChassisTypeNotebook = 0xA,\r
+ EfiMiscChassisTypeHandHeld = 0xB,\r
+ EfiMiscChassisTypeDockingStation = 0xC,\r
+ EfiMiscChassisTypeAllInOne = 0xD,\r
+ EfiMiscChassisTypeSubNotebook = 0xE,\r
+ EfiMiscChassisTypeSpaceSaving = 0xF,\r
+ EfiMiscChassisTypeLunchBox = 0x10,\r
+ EfiMiscChassisTypeMainServerChassis = 0x11,\r
+ EfiMiscChassisTypeExpansionChassis = 0x12,\r
+ EfiMiscChassisTypeSubChassis = 0x13,\r
+ EfiMiscChassisTypeBusExpansionChassis = 0x14,\r
+ EfiMiscChassisTypePeripheralChassis = 0x15,\r
+ EfiMiscChassisTypeRaidChassis = 0x16,\r
+ EfiMiscChassisTypeRackMountChassis = 0x17,\r
+ EfiMiscChassisTypeSealedCasePc = 0x18,\r
+ EfiMiscChassisMultiSystemChassis = 0x19,\r
+} EFI_MISC_CHASSIS_TYPE;\r
+\r
+typedef struct {\r
+ UINT32 ChassisType :16;\r
+ UINT32 ChassisLockPresent:1;\r
+ UINT32 Reserved :15;\r
+} EFI_MISC_CHASSIS_STATUS;\r
+\r
+typedef enum {\r
+ EfiChassisStateOther = 0x01,\r
+ EfiChassisStateUnknown = 0x02,\r
+ EfiChassisStateSafe = 0x03,\r
+ EfiChassisStateWarning = 0x04,\r
+ EfiChassisStateCritical = 0x05,\r
+ EfiChassisStateNonRecoverable = 0x06,\r
+} EFI_MISC_CHASSIS_STATE;\r
+\r
+typedef enum {\r
+ EfiChassisSecurityStatusOther = 0x01,\r
+ EfiChassisSecurityStatusUnknown = 0x02,\r
+ EfiChassisSecurityStatusNone = 0x03,\r
+ EfiChassisSecurityStatusExternalInterfaceLockedOut = 0x04,\r
+ EfiChassisSecurityStatusExternalInterfaceLockedEnabled = 0x05,\r
+} EFI_MISC_CHASSIS_SECURITY_STATE;\r
+\r
+typedef struct {\r
+ UINT32 RecordType :1;\r
+ UINT32 Reserved :24;\r
+} EFI_MISC_ELEMENT_TYPE;\r
+\r
+typedef struct {\r
+ EFI_MISC_ELEMENT_TYPE ChassisElementType;\r
+ EFI_INTER_LINK_DATA ChassisElementStructure;\r
+ EFI_BASE_BOARD_TYPE ChassisBaseBoard;\r
+ UINT32 ChassisElementMinimum;\r
+ UINT32 ChassisElementMaximum;\r
+} EFI_MISC_ELEMENTS;\r
+\r
+typedef struct {\r
+ STRING_REF ChassisManufacturer;\r
+ STRING_REF ChassisVersion;\r
+ STRING_REF ChassisSerialNumber;\r
+ STRING_REF ChassisAssetTag;\r
+ EFI_MISC_CHASSIS_STATUS ChassisType;\r
+ EFI_MISC_CHASSIS_STATE ChassisBootupState;\r
+ EFI_MISC_CHASSIS_STATE ChassisPowerSupplyState;\r
+ EFI_MISC_CHASSIS_STATE ChassisThermalState;\r
+ EFI_MISC_CHASSIS_SECURITY_STATE ChassisSecurityState;\r
+ UINT32 ChassisOemDefined;\r
+ UINT32 ChassisHeight;\r
+ UINT32 ChassisNumberPowerCords;\r
+ UINT32 ChassisElementCount;\r
+ UINT32 ChassisElementRecordLength;//\r
+ EFI_MISC_ELEMENTS ChassisElements;\r
+} EFI_MISC_CHASSIS_MANUFACTURER_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Port Connector Information - SMBIOS Type 8\r
+//\r
+#define EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER 0x00000006\r
+\r
+typedef enum {\r
+ EfiPortConnectorTypeNone = 0x00,\r
+ EfiPortConnectorTypeCentronics = 0x01,\r
+ EfiPortConnectorTypeMiniCentronics = 0x02,\r
+ EfiPortConnectorTypeProprietary = 0x03,\r
+ EfiPortConnectorTypeDB25Male = 0x04,\r
+ EfiPortConnectorTypeDB25Female = 0x05,\r
+ EfiPortConnectorTypeDB15Male = 0x06,\r
+ EfiPortConnectorTypeDB15Female = 0x07,\r
+ EfiPortConnectorTypeDB9Male = 0x08,\r
+ EfiPortConnectorTypeDB9Female = 0x09,\r
+ EfiPortConnectorTypeRJ11 = 0x0A,\r
+ EfiPortConnectorTypeRJ45 = 0x0B,\r
+ EfiPortConnectorType50PinMiniScsi = 0x0C,\r
+ EfiPortConnectorTypeMiniDin = 0x0D,\r
+ EfiPortConnectorTypeMicriDin = 0x0E,\r
+ EfiPortConnectorTypePS2 = 0x0F,\r
+ EfiPortConnectorTypeInfrared = 0x10,\r
+ EfiPortConnectorTypeHpHil = 0x11,\r
+ EfiPortConnectorTypeUsb = 0x12,\r
+ EfiPortConnectorTypeSsaScsi = 0x13,\r
+ EfiPortConnectorTypeCircularDin8Male = 0x14,\r
+ EfiPortConnectorTypeCircularDin8Female = 0x15,\r
+ EfiPortConnectorTypeOnboardIde = 0x16,\r
+ EfiPortConnectorTypeOnboardFloppy = 0x17,\r
+ EfiPortConnectorType9PinDualInline = 0x18,\r
+ EfiPortConnectorType25PinDualInline = 0x19,\r
+ EfiPortConnectorType50PinDualInline = 0x1A,\r
+ EfiPortConnectorType68PinDualInline = 0x1B,\r
+ EfiPortConnectorTypeOnboardSoundInput = 0x1C,\r
+ EfiPortConnectorTypeMiniCentronicsType14 = 0x1D,\r
+ EfiPortConnectorTypeMiniCentronicsType26 = 0x1E,\r
+ EfiPortConnectorTypeHeadPhoneMiniJack = 0x1F,\r
+ EfiPortConnectorTypeBNC = 0x20,\r
+ EfiPortConnectorType1394 = 0x21,\r
+ EfiPortConnectorTypePC98 = 0xA0,\r
+ EfiPortConnectorTypePC98Hireso = 0xA1,\r
+ EfiPortConnectorTypePCH98 = 0xA2,\r
+ EfiPortConnectorTypePC98Note = 0xA3,\r
+ EfiPortConnectorTypePC98Full = 0xA4,\r
+ EfiPortConnectorTypeOther = 0xFF,\r
+} EFI_MISC_PORT_CONNECTOR_TYPE;\r
+\r
+typedef enum {\r
+ EfiPortTypeNone = 0x00,\r
+ EfiPortTypeParallelXtAtCompatible = 0x01,\r
+ EfiPortTypeParallelPortPs2 = 0x02,\r
+ EfiPortTypeParallelPortEcp = 0x03,\r
+ EfiPortTypeParallelPortEpp = 0x04,\r
+ EfiPortTypeParallelPortEcpEpp = 0x05,\r
+ EfiPortTypeSerialXtAtCompatible = 0x06,\r
+ EfiPortTypeSerial16450Compatible = 0x07,\r
+ EfiPortTypeSerial16550Compatible = 0x08,\r
+ EfiPortTypeSerial16550ACompatible = 0x09,\r
+ EfiPortTypeScsi = 0x0A,\r
+ EfiPortTypeMidi = 0x0B,\r
+ EfiPortTypeJoyStick = 0x0C,\r
+ EfiPortTypeKeyboard = 0x0D,\r
+ EfiPortTypeMouse = 0x0E,\r
+ EfiPortTypeSsaScsi = 0x0F,\r
+ EfiPortTypeUsb = 0x10,\r
+ EfiPortTypeFireWire = 0x11,\r
+ EfiPortTypePcmciaTypeI = 0x12,\r
+ EfiPortTypePcmciaTypeII = 0x13,\r
+ EfiPortTypePcmciaTypeIII = 0x14,\r
+ EfiPortTypeCardBus = 0x15,\r
+ EfiPortTypeAccessBusPort = 0x16,\r
+ EfiPortTypeScsiII = 0x17,\r
+ EfiPortTypeScsiWide = 0x18,\r
+ EfiPortTypePC98 = 0x19,\r
+ EfiPortTypePC98Hireso = 0x1A,\r
+ EfiPortTypePCH98 = 0x1B,\r
+ EfiPortTypeVideoPort = 0x1C,\r
+ EfiPortTypeAudioPort = 0x1D,\r
+ EfiPortTypeModemPort = 0x1E,\r
+ EfiPortTypeNetworkPort = 0x1F,\r
+ EfiPortType8251Compatible = 0xA0,\r
+ EfiPortType8251FifoCompatible = 0xA1,\r
+ EfiPortTypeOther = 0xFF,\r
+} EFI_MISC_PORT_TYPE;\r
+\r
+typedef struct {\r
+ STRING_REF PortInternalConnectorDesignator;\r
+ STRING_REF PortExternalConnectorDesignator;\r
+ EFI_MISC_PORT_CONNECTOR_TYPE PortInternalConnectorType;\r
+ EFI_MISC_PORT_CONNECTOR_TYPE PortExternalConnectorType;\r
+ EFI_MISC_PORT_TYPE PortType;\r
+ EFI_MISC_PORT_DEVICE_PATH PortPath;\r
+} EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. System Slots - SMBIOS Type 9\r
+//\r
+#define EFI_MISC_SYSTEM_SLOT_DESIGNATION_RECORD_NUMBER 0x00000007\r
+\r
+typedef enum {\r
+ EfiSlotTypeOther = 0x01,\r
+ EfiSlotTypeUnknown = 0x02,\r
+ EfiSlotTypeIsa = 0x03,\r
+ EfiSlotTypeMca = 0x04,\r
+ EfiSlotTypeEisa = 0x05,\r
+ EfiSlotTypePci = 0x06,\r
+ EfiSlotTypePcmcia = 0x07,\r
+ EfiSlotTypeVlVesa = 0x08,\r
+ EfiSlotTypeProprietary = 0x09,\r
+ EfiSlotTypeProcessorCardSlot = 0x0A,\r
+ EfiSlotTypeProprietaryMemoryCardSlot = 0x0B,\r
+ EfiSlotTypeIORiserCardSlot = 0x0C,\r
+ EfiSlotTypeNuBus = 0x0D,\r
+ EfiSlotTypePci66MhzCapable = 0x0E,\r
+ EfiSlotTypeAgp = 0x0F,\r
+ EfiSlotTypeApg2X = 0x10,\r
+ EfiSlotTypeAgp4X = 0x11,\r
+ EfiSlotTypePciX = 0x12,\r
+ EfiSlotTypeAgp4x = 0x13,\r
+ EfiSlotTypePC98C20 = 0xA0,\r
+ EfiSlotTypePC98C24 = 0xA1,\r
+ EfiSlotTypePC98E = 0xA2,\r
+ EfiSlotTypePC98LocalBus = 0xA3,\r
+ EfiSlotTypePC98Card = 0xA4,\r
+ EfiSlotTypePciExpress = 0xA5\r
+} EFI_MISC_SLOT_TYPE;\r
+\r
+typedef enum {\r
+ EfiSlotDataBusWidthOther = 0x01,\r
+ EfiSlotDataBusWidthUnknown = 0x02,\r
+ EfiSlotDataBusWidth8Bit = 0x03,\r
+ EfiSlotDataBusWidth16Bit = 0x04,\r
+ EfiSlotDataBusWidth32Bit = 0x05,\r
+ EfiSlotDataBusWidth64Bit = 0x06,\r
+ EfiSlotDataBusWidth128Bit = 0x07,\r
+} EFI_MISC_SLOT_DATA_BUS_WIDTH;\r
+\r
+typedef enum {\r
+ EfiSlotUsageOther = 1,\r
+ EfiSlotUsageUnknown = 2,\r
+ EfiSlotUsageAvailable = 3,\r
+ EfiSlotUsageInUse = 4,\r
+} EFI_MISC_SLOT_USAGE;\r
+\r
+typedef enum {\r
+ EfiSlotLengthOther = 1,\r
+ EfiSlotLengthUnknown = 2,\r
+ EfiSlotLengthShort = 3,\r
+ EfiSlotLengthLong = 4\r
+} EFI_MISC_SLOT_LENGTH;\r
+\r
+typedef struct {\r
+ UINT32 CharacteristicsUnknown :1;\r
+ UINT32 Provides50Volts :1;\r
+ UINT32 Provides33Volts :1;\r
+ UINT32 SharedSlot :1;\r
+ UINT32 PcCard16Supported :1;\r
+ UINT32 CardBusSupported :1;\r
+ UINT32 ZoomVideoSupported :1;\r
+ UINT32 ModemRingResumeSupported:1;\r
+ UINT32 PmeSignalSupported :1;\r
+ UINT32 HotPlugDevicesSupported :1;\r
+ UINT32 SmbusSignalSupported :1;\r
+ UINT32 Reserved :21;\r
+} EFI_MISC_SLOT_CHARACTERISTICS;\r
+\r
+typedef struct {\r
+ STRING_REF SlotDesignation;\r
+ EFI_MISC_SLOT_TYPE SlotType;\r
+ EFI_MISC_SLOT_DATA_BUS_WIDTH SlotDataBusWidth;\r
+ EFI_MISC_SLOT_USAGE SlotUsage;\r
+ EFI_MISC_SLOT_LENGTH SlotLength;\r
+ UINT16 SlotId;\r
+ EFI_MISC_SLOT_CHARACTERISTICS SlotCharacteristics;\r
+ EFI_DEVICE_PATH_PROTOCOL SlotDevicePath;\r
+} EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Onboard Device - SMBIOS Type 10\r
+//\r
+#define EFI_MISC_ONBOARD_DEVICE_RECORD_NUMBER 0x00000008\r
+\r
+typedef enum {\r
+ EfiOnBoardDeviceTypeOther = 1,\r
+ EfiOnBoardDeviceTypeUnknown = 2,\r
+ EfiOnBoardDeviceTypeVideo = 3,\r
+ EfiOnBoardDeviceTypeScsiController = 4,\r
+ EfiOnBoardDeviceTypeEthernet = 5,\r
+ EfiOnBoardDeviceTypeTokenRing = 6,\r
+ EfiOnBoardDeviceTypeSound = 7,\r
+} EFI_MISC_ONBOARD_DEVICE_TYPE;\r
+\r
+typedef struct {\r
+ UINT32 DeviceType :16;\r
+ UINT32 DeviceEnabled :1;\r
+ UINT32 Reserved :15;\r
+} EFI_MISC_ONBOARD_DEVICE_STATUS;\r
+\r
+typedef struct {\r
+ STRING_REF OnBoardDeviceDescription;\r
+ EFI_MISC_ONBOARD_DEVICE_STATUS OnBoardDeviceStatus;\r
+ EFI_DEVICE_PATH_PROTOCOL OnBoardDevicePath;\r
+} EFI_MISC_ONBOARD_DEVICE_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. BIOS Language Information - SMBIOS Type 11\r
+//\r
+#define EFI_MISC_OEM_STRING_RECORD_NUMBER 0x00000009\r
+\r
+typedef struct {\r
+ STRING_REF OemStringRef[1];\r
+} EFI_MISC_OEM_STRING_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. System Options - SMBIOS Type 12\r
+//\r
+typedef struct {\r
+ STRING_REF SystemOptionStringRef[1];\r
+} EFI_MISC_SYSTEM_OPTION_STRING_DATA;\r
+\r
+#define EFI_MISC_SYSTEM_OPTION_STRING_RECORD_NUMBER 0x0000000A\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Number of Installable Languages - SMBIOS Type 13\r
+//\r
+#define EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_RECORD_NUMBER 0x0000000B\r
+\r
+typedef struct {\r
+ UINT32 AbbreviatedLanguageFormat :1;\r
+ UINT32 Reserved :31;\r
+} EFI_MISC_LANGUAGE_FLAGS;\r
+\r
+typedef struct {\r
+ UINT16 NumberOfInstallableLanguages;\r
+ EFI_MISC_LANGUAGE_FLAGS LanguageFlags;\r
+ UINT16 CurrentLanguageNumber;\r
+} EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. System Language String\r
+//\r
+#define EFI_MISC_SYSTEM_LANGUAGE_STRING_RECORD_NUMBER 0x0000000C\r
+\r
+typedef struct {\r
+ UINT16 LanguageId;\r
+ STRING_REF SystemLanguageString;\r
+} EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Group Associations - SMBIOS Type 14\r
+//\r
+#define EFI_MISC_GROUP_NAME_RECORD_NUMBER 0x0000000D\r
+\r
+typedef struct {\r
+ STRING_REF GroupName;\r
+ UINT16 NumberGroupItems;\r
+ UINT16 GroupId;\r
+} EFI_MISC_GROUP_NAME_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Group Item Set Element\r
+//\r
+#define EFI_MISC_GROUP_ITEM_SET_RECORD_NUMBER 0x0000000E\r
+\r
+typedef struct {\r
+ EFI_GUID SubClass;\r
+ EFI_INTER_LINK_DATA GroupLink;\r
+ UINT16 GroupId;\r
+ UINT16 GroupElementId;\r
+} EFI_MISC_GROUP_ITEM_SET_DATA;\r
+\r
+// Misc. System Event Log - SMBIOS Type 15\r
+//\r
+#define EFI_MISC_SYSTEM_EVENT_LOG_RECORD_NUMBER 0x0000000D\r
+typedef struct {\r
+ UINT16 LogAreaLength;\r
+ UINT16 LogHeaderStartOffset;\r
+ UINT16 LogDataStartOffset;\r
+ UINT8 AccessMethod;\r
+ UINT8 LogStatus;\r
+ UINT32 LogChangeToken;\r
+ UINT32 AccessMethodAddress;\r
+ UINT8 LogHeaderFormat;\r
+ UINT8 NumberOfSupportedLogType;\r
+ UINT8 LengthOfLogDescriptor;\r
+} EFI_MISC_SYSTEM_EVENT_LOG_DATA;\r
+\r
+//\r
+// Access Method.\r
+// 0x00~0x04: as following definition\r
+// 0x05~0x7f: Available for future assignment.\r
+// 0x80~0xff: BIOS Vendor/OEM-specific.\r
+//\r
+#define ACCESS_INDEXIO_1INDEX8BIT_DATA8BIT 0x00\r
+#define ACCESS_INDEXIO_2INDEX8BIT_DATA8BIT 0X01\r
+#define ACCESS_INDEXIO_1INDEX16BIT_DATA8BIT 0X02\r
+#define ACCESS_MEMORY_MAPPED 0x03\r
+#define ACCESS_GPNV 0x04\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Pointing Device Type - SMBIOS Type 21\r
+//\r
+#define EFI_MISC_POINTING_DEVICE_TYPE_RECORD_NUMBER 0x0000000F\r
+\r
+typedef enum {\r
+ EfiPointingDeviceTypeOther = 0x01,\r
+ EfiPointingDeviceTypeUnknown = 0x02,\r
+ EfiPointingDeviceTypeMouse = 0x03,\r
+ EfiPointingDeviceTypeTrackBall = 0x04,\r
+ EfiPointingDeviceTypeTrackPoint = 0x05,\r
+ EfiPointingDeviceTypeGlidePoint = 0x06,\r
+ EfiPointingDeviceTouchPad = 0x07,\r
+ EfiPointingDeviceTouchScreen = 0x08,\r
+ EfiPointingDeviceOpticalSensor = 0x09,\r
+} EFI_MISC_POINTING_DEVICE_TYPE;\r
+\r
+typedef enum {\r
+ EfiPointingDeviceInterfaceOther = 0x01,\r
+ EfiPointingDeviceInterfaceUnknown = 0x02,\r
+ EfiPointingDeviceInterfaceSerial = 0x03,\r
+ EfiPointingDeviceInterfacePs2 = 0x04,\r
+ EfiPointingDeviceInterfaceInfrared = 0x05,\r
+ EfiPointingDeviceInterfaceHpHil = 0x06,\r
+ EfiPointingDeviceInterfaceBusMouse = 0x07,\r
+ EfiPointingDeviceInterfaceADB = 0x08,\r
+ EfiPointingDeviceInterfaceBusMouseDB9 = 0xA0,\r
+ EfiPointingDeviceInterfaceBusMouseMicroDin = 0xA1,\r
+ EfiPointingDeviceInterfaceUsb = 0xA2,\r
+} EFI_MISC_POINTING_DEVICE_INTERFACE;\r
+\r
+typedef struct {\r
+ EFI_MISC_POINTING_DEVICE_TYPE PointingDeviceType;\r
+ EFI_MISC_POINTING_DEVICE_INTERFACE PointingDeviceInterface;\r
+ UINT16 NumberPointingDeviceButtons;\r
+ EFI_DEVICE_PATH_PROTOCOL PointingDevicePath;\r
+} EFI_MISC_PORTING_DEVICE_TYPE_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Portable Battery - SMBIOS Type 22\r
+//\r
+#define EFI_MISC_BATTERY_LOCATION_RECORD_NUMBER 0x00000010\r
+\r
+typedef enum {\r
+ EfiBatteryDeviceChemistryTypeOther = 0x01,\r
+ EfiBatteryDeviceChemistryTypeUnknown = 0x02,\r
+ EfiBatteryDeviceChemistryTypeLeadAcid = 0x03,\r
+ EfiBatteryDeviceChemistryTypeNickelCadmium = 0x04,\r
+ EfiBatteryDeviceChemistryTypeNickelMetalHydride = 0x05,\r
+ EfiBatteryDeviceChemistryTypeLithiumIon = 0x06,\r
+ EfiBatteryDeviceChemistryTypeZincAir = 0x07,\r
+ EfiBatteryDeviceChemistryTypeLithiumPolymer = 0x08,\r
+} EFI_MISC_BATTERY_DEVICE_CHEMISTRY;\r
+\r
+typedef struct {\r
+ UINT32 Date :5;\r
+ UINT32 Month :4;\r
+ UINT32 Year :7;\r
+ UINT32 Reserved :16;\r
+} EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE;\r
+\r
+typedef struct {\r
+ STRING_REF BatteryLocation;\r
+ STRING_REF BatteryManufacturer;\r
+ STRING_REF BatteryManufactureDate;\r
+ STRING_REF BatterySerialNumber;\r
+ STRING_REF BatteryDeviceName;\r
+ STRING_REF BatterySbdsVersionNumber;\r
+ STRING_REF BatterySbdsDeviceChemistry;\r
+ EFI_MISC_BATTERY_DEVICE_CHEMISTRY BatteryDeviceChemistry;\r
+ EFI_EXP_BASE10_DATA BatteryDesignCapacity;\r
+ EFI_EXP_BASE10_DATA BatteryDesignVoltage;\r
+ UINT16 BatteryMaximumError;\r
+ UINT16 BatterySbdsSerialNumber;\r
+ EFI_MISC_BATTERY_SBDS_MANUFACTURE_DATE\r
+ BatterySbdsManufacturingDate;\r
+ UINT32 BatteryOemSpecific;\r
+} EFI_MISC_BATTERY_LOCATION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Reset Capabilities - SMBIOS Type 23\r
+//\r
+#define EFI_MISC_RESET_CAPABILITIES_RECORD_NUMBER 0x00000011\r
+\r
+typedef struct {\r
+ UINT32 Status :1;\r
+ UINT32 BootOption :2;\r
+ UINT32 BootOptionOnLimit :2;\r
+ UINT32 WatchdogTimerPresent:1;\r
+ UINT32 Reserved :26;\r
+} EFI_MISC_RESET_CAPABILITIES_TYPE;\r
+\r
+typedef struct {\r
+ EFI_MISC_RESET_CAPABILITIES_TYPE ResetCapabilities;\r
+ UINT16 ResetCount;\r
+ UINT16 ResetLimit;\r
+ UINT16 ResetTimerInterval;\r
+ UINT16 ResetTimeout;\r
+} EFI_MISC_RESET_CAPABILITIES;\r
+\r
+typedef struct {\r
+ EFI_MISC_RESET_CAPABILITIES ResetCapabilities;\r
+ UINT16 ResetCount;\r
+ UINT16 ResetLimit;\r
+ UINT16 ResetTimerInterval;\r
+ UINT16 ResetTimeout;\r
+} EFI_MISC_RESET_CAPABILITIES_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Hardware Security - SMBIOS Type 24\r
+//\r
+#define EFI_MISC_HARDWARE_SECURITY_RECORD_NUMBER 0x00000012\r
+\r
+typedef enum {\r
+ EfiHardwareSecurityStatusDisabled = 0,\r
+ EfiHardwareSecurityStatusEnabled = 1,\r
+ EfiHardwareSecurityStatusNotImplemented = 2,\r
+ EfiHardwareSecurityStatusUnknown = 3\r
+} EFI_MISC_HARDWARE_SECURITY_STATUS;\r
+\r
+typedef struct {\r
+ EFI_MISC_HARDWARE_SECURITY_STATUS FrontPanelResetStatus :2;\r
+ EFI_MISC_HARDWARE_SECURITY_STATUS AdministratorPasswordStatus :2;\r
+ EFI_MISC_HARDWARE_SECURITY_STATUS KeyboardPasswordStatus :2;\r
+ EFI_MISC_HARDWARE_SECURITY_STATUS PowerOnPasswordStatus :2;\r
+ EFI_MISC_HARDWARE_SECURITY_STATUS Reserved :24;\r
+} EFI_MISC_HARDWARE_SECURITY_SETTINGS;\r
+\r
+typedef struct {\r
+ EFI_MISC_HARDWARE_SECURITY_SETTINGS HardwareSecuritySettings;\r
+} EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// System Power Controls - SMBIOS Type 25\r
+//\r
+#define EFI_MISC_SCHEDULED_POWER_ON_MONTH_RECORD_NUMBER 0x00000013\r
+\r
+typedef struct {\r
+ UINT16 ScheduledPoweronMonth;\r
+ UINT16 ScheduledPoweronDayOfMonth;\r
+ UINT16 ScheduledPoweronHour;\r
+ UINT16 ScheduledPoweronMinute;\r
+ UINT16 ScheduledPoweronSecond;\r
+} EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Voltage Probe - SMBIOS Type 26\r
+//\r
+#define EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000014\r
+\r
+typedef struct {\r
+ UINT32 VoltageProbeSite :5;\r
+ UINT32 VoltageProbeStatus :3;\r
+ UINT32 Reserved :24;\r
+} EFI_MISC_VOLTAGE_PROBE_LOCATION;\r
+\r
+typedef struct {\r
+ STRING_REF VoltageProbeDescription;\r
+ EFI_MISC_VOLTAGE_PROBE_LOCATION VoltageProbeLocation;\r
+ EFI_EXP_BASE10_DATA VoltageProbeMaximumValue;\r
+ EFI_EXP_BASE10_DATA VoltageProbeMinimumValue;\r
+ EFI_EXP_BASE10_DATA VoltageProbeResolution;\r
+ EFI_EXP_BASE10_DATA VoltageProbeTolerance;\r
+ EFI_EXP_BASE10_DATA VoltageProbeAccuracy;\r
+ EFI_EXP_BASE10_DATA VoltageProbeNominalValue;\r
+ EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
+ UINT32 VoltageProbeOemDefined;\r
+} EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Cooling Device - SMBIOS Type 27\r
+//\r
+#define EFI_MISC_COOLING_DEVICE_TEMP_LINK_RECORD_NUMBER 0x00000015\r
+\r
+typedef struct {\r
+ UINT32 CoolingDevice :5;\r
+ UINT32 CoolingDeviceStatus :3;\r
+ UINT32 Reserved :24;\r
+} EFI_MISC_COOLING_DEVICE_TYPE;\r
+\r
+typedef struct {\r
+ EFI_MISC_COOLING_DEVICE_TYPE CoolingDeviceType;\r
+ EFI_INTER_LINK_DATA CoolingDeviceTemperatureLink;\r
+ UINT16 CoolingDeviceUnitGroup;\r
+ EFI_EXP_BASE10_DATA CoolingDeviceNominalSpeed;\r
+ UINT32 CoolingDeviceOemDefined;\r
+} EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Temperature Probe - SMBIOS Type 28\r
+//\r
+#define EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000016\r
+\r
+typedef struct {\r
+ UINT32 TemperatureProbeSite :5;\r
+ UINT32 TemperatureProbeStatus :3;\r
+ UINT32 Reserved :24;\r
+} EFI_MISC_TEMPERATURE_PROBE_LOCATION;\r
+\r
+typedef struct {\r
+ STRING_REF TemperatureProbeDescription;\r
+ EFI_MISC_TEMPERATURE_PROBE_LOCATION\r
+ TemperatureProbeLocation;\r
+ EFI_EXP_BASE10_DATA TemperatureProbeMaximumValue;\r
+ EFI_EXP_BASE10_DATA TemperatureProbeMinimumValue;\r
+ EFI_EXP_BASE10_DATA TemperatureProbeResolution;\r
+ EFI_EXP_BASE10_DATA TemperatureProbeTolerance;\r
+ EFI_EXP_BASE10_DATA TemperatureProbeAccuracy;\r
+ EFI_EXP_BASE10_DATA TemperatureProbeNominalValue;\r
+ EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
+ UINT32 TemperatureProbeOemDefined;\r
+} EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Electrical Current Probe - SMBIOS Type 29\r
+//\r
+\r
+#define EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_RECORD_NUMBER 0x00000017\r
+\r
+typedef struct {\r
+ UINT32 ElectricalCurrentProbeSite :5;\r
+ UINT32 ElectricalCurrentProbeStatus :3;\r
+ UINT32 Reserved :24;\r
+} EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION;\r
+\r
+typedef struct {\r
+ STRING_REF ElectricalCurrentProbeDescription;\r
+ EFI_MISC_ELECTRICAL_CURRENT_PROBE_LOCATION\r
+ ElectricalCurrentProbeLocation;\r
+ EFI_EXP_BASE10_DATA ElectricalCurrentProbeMaximumValue;\r
+ EFI_EXP_BASE10_DATA ElectricalCurrentProbeMinimumValue;\r
+ EFI_EXP_BASE10_DATA ElectricalCurrentProbeResolution;\r
+ EFI_EXP_BASE10_DATA ElectricalCurrentProbeTolerance;\r
+ EFI_EXP_BASE10_DATA ElectricalCurrentProbeAccuracy;\r
+ EFI_EXP_BASE10_DATA ElectricalCurrentProbeNominalValue;\r
+ EFI_EXP_BASE10_DATA MDLowerNoncriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperNoncriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDLowerCriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperCriticalThreshold;\r
+ EFI_EXP_BASE10_DATA MDLowerNonrecoverableThreshold;\r
+ EFI_EXP_BASE10_DATA MDUpperNonrecoverableThreshold;\r
+ UINT32 ElectricalCurrentProbeOemDefined;\r
+} EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Out-of-Band Remote Access - SMBIOS Type 30\r
+//\r
+\r
+#define EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_RECORD_NUMBER 0x00000018\r
+\r
+typedef struct {\r
+ UINT32 InboundConnectionEnabled :1;\r
+ UINT32 OutboundConnectionEnabled :1;\r
+ UINT32 Reserved :30;\r
+} EFI_MISC_REMOTE_ACCESS_CONNECTIONS;\r
+\r
+typedef struct {\r
+ STRING_REF RemoteAccessManufacturerNameDescription;\r
+ EFI_MISC_REMOTE_ACCESS_CONNECTIONS RemoteAccessConnections;\r
+} EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. BIS Entry Point - SMBIOS Type 31\r
+//\r
+#define EFI_MISC_BIS_ENTRY_POINT_RECORD_NUMBER 0x00000019\r
+\r
+typedef struct {\r
+ EFI_PHYSICAL_ADDRESS BisEntryPoint;\r
+} EFI_MISC_BIS_ENTRY_POINT_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Misc. Boot Information - SMBIOS Type 32\r
+//\r
+#define EFI_MISC_BOOT_INFORMATION_STATUS_RECORD_NUMBER 0x0000001A\r
+\r
+typedef enum {\r
+ EfiBootInformationStatusNoError = 0x00,\r
+ EfiBootInformationStatusNoBootableMedia = 0x01,\r
+ EfiBootInformationStatusNormalOSFailedLoading = 0x02,\r
+ EfiBootInformationStatusFirmwareDetectedFailure = 0x03,\r
+ EfiBootInformationStatusOSDetectedFailure = 0x04,\r
+ EfiBootInformationStatusUserRequestedBoot = 0x05,\r
+ EfiBootInformationStatusSystemSecurityViolation = 0x06,\r
+ EfiBootInformationStatusPreviousRequestedImage = 0x07,\r
+ EfiBootInformationStatusWatchdogTimerExpired = 0x08,\r
+ EfiBootInformationStatusStartReserved = 0x09,\r
+ EfiBootInformationStatusStartOemSpecific = 0x80,\r
+ EfiBootInformationStatusStartProductSpecific = 0xC0,\r
+} EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE;\r
+\r
+typedef struct {\r
+ EFI_MISC_BOOT_INFORMATION_STATUS_DATA_TYPE BootInformationStatus;\r
+ UINT8 BootInformationData[9];\r
+} EFI_MISC_BOOT_INFORMATION_STATUS_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Management Device - SMBIOS Type 34\r
+//\r
+#define EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_RECORD_NUMBER 0x0000001B\r
+\r
+typedef enum {\r
+ EfiManagementDeviceTypeOther = 0x01,\r
+ EfiManagementDeviceTypeUnknown = 0x02,\r
+ EfiManagementDeviceTypeLm75 = 0x03,\r
+ EfiManagementDeviceTypeLm78 = 0x04,\r
+ EfiManagementDeviceTypeLm79 = 0x05,\r
+ EfiManagementDeviceTypeLm80 = 0x06,\r
+ EfiManagementDeviceTypeLm81 = 0x07,\r
+ EfiManagementDeviceTypeAdm9240 = 0x08,\r
+ EfiManagementDeviceTypeDs1780 = 0x09,\r
+ EfiManagementDeviceTypeMaxim1617 = 0x0A,\r
+ EfiManagementDeviceTypeGl518Sm = 0x0B,\r
+ EfiManagementDeviceTypeW83781D = 0x0C,\r
+ EfiManagementDeviceTypeHt82H791 = 0x0D,\r
+} EFI_MISC_MANAGEMENT_DEVICE_TYPE;\r
+\r
+typedef enum {\r
+ EfiManagementDeviceAddressTypeOther = 1,\r
+ EfiManagementDeviceAddressTypeUnknown = 2,\r
+ EfiManagementDeviceAddressTypeIOPort = 3,\r
+ EfiManagementDeviceAddressTypeMemory = 4,\r
+ EfiManagementDeviceAddressTypeSmbus = 5\r
+} EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE;\r
+\r
+typedef struct {\r
+ STRING_REF ManagementDeviceDescription;\r
+ EFI_MISC_MANAGEMENT_DEVICE_TYPE ManagementDeviceType;\r
+ UINTN ManagementDeviceAddress;\r
+ EFI_MISC_MANAGEMENT_DEVICE_ADDRESS_TYPE\r
+ ManagementDeviceAddressType;\r
+} EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// Management Device Component - SMBIOS Type 35\r
+//\r
+\r
+#define EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_RECORD_NUMBER 0x0000001C\r
+\r
+typedef struct {\r
+ STRING_REF ManagementDeviceComponentDescription;\r
+ EFI_INTER_LINK_DATA ManagementDeviceLink;\r
+ EFI_INTER_LINK_DATA ManagementDeviceComponentLink;\r
+} EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA;\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// IPMI Data Record - SMBIOS Type 38\r
+//\r
+typedef enum {\r
+ EfiIpmiOther = 0,\r
+ EfiIpmiKcs = 1,\r
+ EfiIpmiSmic = 2,\r
+ EfiIpmiBt = 3,\r
+} EFI_MISC_IPMI_INTERFACE_TYPE;\r
+\r
+typedef struct {\r
+ UINT16 IpmiSpecLeastSignificantDigit:4;\r
+ UINT16 IpmiSpecMostSignificantDigit: 4;\r
+ UINT16 Reserved: 8;\r
+} EFI_MISC_IPMI_SPECIFICATION_REVISION;\r
+\r
+typedef struct {\r
+ EFI_MISC_IPMI_INTERFACE_TYPE IpmiInterfaceType;\r
+ EFI_MISC_IPMI_SPECIFICATION_REVISION IpmiSpecificationRevision;\r
+ UINT16 IpmiI2CSlaveAddress;\r
+ UINT16 IpmiNvDeviceAddress;\r
+ UINT64 IpmiBaseAddress;\r
+ EFI_DEVICE_PATH_PROTOCOL IpmiDevicePath;\r
+} EFI_MISC_IPMI_INTERFACE_TYPE_DATA;\r
+\r
+#define EFI_MISC_IPMI_INTERFACE_TYPE_RECORD_NUMBER 0x0000001D\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+//System Power supply Record - SMBIOS Type 39\r
+//\r
+typedef struct {\r
+ UINT16 PowerSupplyHotReplaceable :1;\r
+ UINT16 PowerSupplyPresent :1;\r
+ UINT16 PowerSupplyUnplugged :1;\r
+ UINT16 InputVoltageRangeSwitch :4;\r
+ UINT16 PowerSupplyStatus :3;\r
+ UINT16 PowerSupplyType :4;\r
+ UINT16 Reserved :2;\r
+} POWER_SUPPLY_CHARACTERISTICS;\r
+\r
+typedef struct {\r
+ UINT16 PowerUnitGroup;\r
+ STRING_REF PowerSupplyLocation;\r
+ STRING_REF PowerSupplyDeviceName;\r
+ STRING_REF PowerSupplyManufacturer;\r
+ STRING_REF PowerSupplySerialNumber;\r
+ STRING_REF PowerSupplyAssetTagNumber;\r
+ STRING_REF PowerSupplyModelPartNumber;\r
+ STRING_REF PowerSupplyRevisionLevel;\r
+ UINT16 PowerSupplyMaxPowerCapacity;\r
+ POWER_SUPPLY_CHARACTERISTICS PowerSupplyCharacteristics;\r
+ EFI_INTER_LINK_DATA PowerSupplyInputVoltageProbeLink;\r
+ EFI_INTER_LINK_DATA PowerSupplyCoolingDeviceLink;\r
+ EFI_INTER_LINK_DATA PowerSupplyInputCurrentProbeLink;\r
+} EFI_MISC_SYSTEM_POWER_SUPPLY_DATA;\r
+\r
+#define EFI_MISC_SYSTEM_POWER_SUPPLY_RECORD_NUMBER 0x0000001E\r
+\r
+//\r
+//////////////////////////////////////////////////////////////////////////////\r
+//\r
+// OEM Data Record - SMBIOS Type 0x80-0xFF\r
+//\r
+typedef struct {\r
+ UINT8 Type;\r
+ UINT8 Length;\r
+ UINT16 Handle;\r
+} SMBIOS_STRUCTURE_HDR;\r
+\r
+typedef struct {\r
+ SMBIOS_STRUCTURE_HDR Header;\r
+ UINT8 RawData[1];\r
+} EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA;\r
+\r
+#define EFI_MISC_SMBIOS_STRUCT_ENCAP_RECORD_NUMBER 0x0000001F\r
+\r
+//\r
+// Declare the following strutures alias to use them more conviniently.\r
+//\r
+typedef EFI_MISC_LAST_PCI_BUS_DATA EFI_MISC_LAST_PCI_BUS;\r
+typedef EFI_MISC_BIOS_VENDOR_DATA EFI_MISC_BIOS_VENDOR;\r
+typedef EFI_MISC_SYSTEM_MANUFACTURER_DATA EFI_MISC_SYSTEM_MANUFACTURER;\r
+typedef EFI_MISC_BASE_BOARD_MANUFACTURER_DATA EFI_MISC_BASE_BOARD_MANUFACTURER;\r
+typedef EFI_MISC_CHASSIS_MANUFACTURER_DATA EFI_MISC_CHASSIS_MANUFACTURER;\r
+typedef EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR;\r
+typedef EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA EFI_MISC_SYSTEM_SLOT_DESIGNATION;\r
+typedef EFI_MISC_ONBOARD_DEVICE_DATA EFI_MISC_ONBOARD_DEVICE;\r
+typedef EFI_MISC_PORTING_DEVICE_TYPE_DATA EFI_MISC_ONBOARD_DEVICE_TYPE_DATA;\r
+typedef EFI_MISC_OEM_STRING_DATA EFI_MISC_OEM_STRING;\r
+typedef EFI_MISC_SYSTEM_OPTION_STRING_DATA EFI_MISC_SYSTEM_OPTION_STRING;\r
+typedef EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES;\r
+typedef EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA EFI_MISC_SYSTEM_LANGUAGE_STRING;\r
+typedef EFI_MISC_SYSTEM_EVENT_LOG_DATA EFI_MISC_SYSTEM_EVENT_LOG;\r
+typedef EFI_MISC_BIS_ENTRY_POINT_DATA EFI_MISC_BIS_ENTRY_POINT;\r
+typedef EFI_MISC_BOOT_INFORMATION_STATUS_DATA EFI_MISC_BOOT_INFORMATION_STATUS;\r
+typedef EFI_MISC_SYSTEM_POWER_SUPPLY_DATA EFI_MISC_SYSTEM_POWER_SUPPLY;\r
+typedef EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION;\r
+\r
+typedef union {\r
+ EFI_MISC_LAST_PCI_BUS_DATA LastPciBus;\r
+ EFI_MISC_BIOS_VENDOR_DATA MiscBiosVendor;\r
+ EFI_MISC_SYSTEM_MANUFACTURER_DATA MiscSystemManufacturer;\r
+ EFI_MISC_BASE_BOARD_MANUFACTURER_DATA MiscBaseBoardManufacturer;\r
+ EFI_MISC_CHASSIS_MANUFACTURER_DATA MiscChassisManufacturer;\r
+ EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA MiscPortInternalConnectorDesignator;\r
+ EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA MiscSystemSlotDesignation;\r
+ EFI_MISC_ONBOARD_DEVICE_DATA MiscOnboardDevice;\r
+ EFI_MISC_OEM_STRING_DATA MiscOemString;\r
+ EFI_MISC_SYSTEM_OPTION_STRING_DATA MiscOptionString;\r
+ EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA NumberOfInstallableLanguages;\r
+ EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA MiscSystemLanguageString;\r
+ EFI_MISC_SYSTEM_EVENT_LOG_DATA MiscSystemEventLog;\r
+ EFI_MISC_GROUP_NAME_DATA MiscGroupNameData;\r
+ EFI_MISC_GROUP_ITEM_SET_DATA MiscGroupItemSetData;\r
+ EFI_MISC_PORTING_DEVICE_TYPE_DATA MiscPortingDeviceTypeData;\r
+ EFI_MISC_RESET_CAPABILITIES_DATA MiscResetCapablilitiesData;\r
+ EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA MiscHardwareSecuritySettingsData;\r
+ EFI_MISC_SCHEDULED_POWER_ON_MONTH_DATA MiscScheduledPowerOnMonthData;\r
+ EFI_MISC_VOLTAGE_PROBE_DESCRIPTION_DATA MiscVoltagePorbeDescriptionData;\r
+ EFI_MISC_COOLING_DEVICE_TEMP_LINK_DATA MiscCoolingDeviceTempLinkData;\r
+ EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION_DATA MiscTemperatureProbeDescriptionData;\r
+ EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION_DATA MiscElectricalCurrentProbeDescriptionData;\r
+ EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION_DATA\r
+ MiscRemoteAccessManufacturerDescriptionData;\r
+ EFI_MISC_BIS_ENTRY_POINT_DATA MiscBisEntryPoint;\r
+ EFI_MISC_BOOT_INFORMATION_STATUS_DATA MiscBootInformationStatus;\r
+ EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION_DATA MiscMangementDeviceDescriptionData;\r
+ EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION_DATA\r
+ MiscmangementDeviceComponentDescriptionData;\r
+ EFI_MISC_IPMI_INTERFACE_TYPE_DATA MiscIpmiInterfaceTypeData;\r
+ EFI_MISC_SYSTEM_POWER_SUPPLY_DATA MiscPowerSupplyInfo;\r
+ EFI_MISC_SMBIOS_STRUCT_ENCAPSULATION_DATA MiscSmbiosStructEncapsulation;\r
+} EFI_MISC_SUBCLASS_RECORDS;\r
+\r
+//\r
+//\r
+//\r
+typedef struct {\r
+ EFI_SUBCLASS_TYPE1_HEADER Header;\r
+ EFI_MISC_SUBCLASS_RECORDS Record;\r
+} EFI_MISC_SUBCLASS_DRIVER_DATA;\r
+\r
+#pragma pack()\r
+\r
+//\r
+// Sub Class Header type1\r
+//\r
+\r
+#define EFI_SUBCLASS_INSTANCE_RESERVED 0\r
+#define EFI_SUBCLASS_INSTANCE_NON_APPLICABLE 0xFFFF //16 bit\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ Include file that supportes Framework extension to the EFI 1.10 spec.\r
+\r
+ This include file must only contain things defined in the Framework\r
+ specifications. If a code construct is defined in the Framework specification\r
+ it must be included by this include file.\r
+\r
+ Copyright (c) 2007, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: FrameworkDxeCis.h\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_DXE_CIS_H_\r
+#define _FRAMEWORK_DXE_CIS_H_\r
+\r
+#include <PiDxe.h>\r
+#include <Common/FrameworkStatusCode.h>\r
+#include <Protocol/StatusCode.h>\r
+\r
+//\r
+// Function prototype for invoking a function on an Application Processor\r
+// Used by both the SMM infrastructure and the MP Services Protocol\r
+//\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_AP_PROCEDURE) (\r
+ IN VOID *Buffer\r
+ );\r
+\r
+typedef struct {\r
+ EFI_TABLE_HEADER Hdr;\r
+\r
+ //\r
+ // Time services\r
+ //\r
+ EFI_GET_TIME GetTime;\r
+ EFI_SET_TIME SetTime;\r
+ EFI_GET_WAKEUP_TIME GetWakeupTime;\r
+ EFI_SET_WAKEUP_TIME SetWakeupTime;\r
+\r
+ //\r
+ // Virtual memory services\r
+ //\r
+ EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;\r
+ EFI_CONVERT_POINTER ConvertPointer;\r
+\r
+ //\r
+ // Variable services\r
+ //\r
+ EFI_GET_VARIABLE GetVariable;\r
+ EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;\r
+ EFI_SET_VARIABLE SetVariable;\r
+\r
+ //\r
+ // Misc\r
+ //\r
+ EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;\r
+ EFI_RESET_SYSTEM ResetSystem;\r
+\r
+ //\r
+ // Framework extension to EFI 1.10 runtime table\r
+ // It was moved to a protocol to not conflict with UEFI 2.0\r
+ //\r
+ EFI_REPORT_STATUS_CODE ReportStatusCode;\r
+} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+\r
+#define EFI_EVENT_RUNTIME_CONTEXT 0x20000000\r
+#define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400\r
+#define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203\r
+#define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204\r
+\r
+\r
+typedef struct {\r
+ EFI_DEVICE_PATH_PROTOCOL Header;\r
+ EFI_GUID TianoSpecificDevicePath;\r
+ UINT32 Type;\r
+} TIANO_DEVICE_PATH;\r
+\r
+#define TIANO_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE 0x01\r
+typedef struct {\r
+ TIANO_DEVICE_PATH Tiano;\r
+ EFI_GUID NameGuid;\r
+} FRAMEWORK_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
+\r
+\r
+//\r
+// Function prototype for invoking a function on an Application Processor\r
+// Used by both the SMM infrastructure and the MP Services Protocol\r
+//\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_AP_PROCEDURE) (\r
+ IN VOID *Buffer\r
+ );\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ This file defines the data structures that comprise the FFS file system.\r
+\r
+ Copyright (c) 2007, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: FrameworkFirmwareFileSystem.h\r
+\r
+ @par Revision Reference:\r
+ These definitions are from Firmware File System Spec 0.9 but not in PI specs.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
+#define _FRAMEWORK_FIRMWARE_FILE_SYSTEM_H_\r
+\r
+#include <PiPei.h>\r
+\r
+typedef UINT16 EFI_FFS_FILE_TAIL;\r
+\r
+#define FFS_ATTRIB_TAIL_PRESENT 0x01\r
+#define FFS_ATTRIB_RECOVERY 0x02\r
+#define FFS_ATTRIB_HEADER_EXTENSION 0x04\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ Defines data structure that is the volume header found at the beginning of\r
+ all firmware volumes that are either memory mapped, or have an\r
+ associated FirmwareVolumeBlock protocol.\r
+\r
+ Copyright (c) 2006, Intel Corporation \r
+ All rights reserved. This program and the accompanying materials \r
+ are licensed and made available under the terms and conditions of the BSD License \r
+ which accompanies this distribution. The full text of the license may be found at \r
+ http://opensource.org/licenses/bsd-license.php \r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+ Module Name: FirmwareVolumeHeader.h\r
+\r
+ @par Revision Reference:\r
+ These definitions are from Firmware Volume Block Spec 0.9.\r
+\r
+**/\r
+\r
+#ifndef __EFI_FIRMWARE_VOLUME_HEADER_H__\r
+#define __EFI_FIRMWARE_VOLUME_HEADER_H__\r
+\r
+//\r
+// Firmware Volume Block Attributes definition\r
+//\r
+typedef UINT32 EFI_FVB_ATTRIBUTES;\r
+\r
+//\r
+// Firmware Volume Block Attributes bit definitions\r
+//\r
+#define EFI_FVB_READ_DISABLED_CAP 0x00000001\r
+#define EFI_FVB_READ_ENABLED_CAP 0x00000002\r
+#define EFI_FVB_READ_STATUS 0x00000004\r
+\r
+#define EFI_FVB_WRITE_DISABLED_CAP 0x00000008\r
+#define EFI_FVB_WRITE_ENABLED_CAP 0x00000010\r
+#define EFI_FVB_WRITE_STATUS 0x00000020\r
+\r
+#define EFI_FVB_LOCK_CAP 0x00000040\r
+#define EFI_FVB_LOCK_STATUS 0x00000080\r
+\r
+#define EFI_FVB_STICKY_WRITE 0x00000200\r
+#define EFI_FVB_MEMORY_MAPPED 0x00000400\r
+#define EFI_FVB_ERASE_POLARITY 0x00000800\r
+\r
+#define EFI_FVB_ALIGNMENT_CAP 0x00008000\r
+#define EFI_FVB_ALIGNMENT_2 0x00010000\r
+#define EFI_FVB_ALIGNMENT_4 0x00020000\r
+#define EFI_FVB_ALIGNMENT_8 0x00040000\r
+#define EFI_FVB_ALIGNMENT_16 0x00080000\r
+#define EFI_FVB_ALIGNMENT_32 0x00100000\r
+#define EFI_FVB_ALIGNMENT_64 0x00200000\r
+#define EFI_FVB_ALIGNMENT_128 0x00400000\r
+#define EFI_FVB_ALIGNMENT_256 0x00800000\r
+#define EFI_FVB_ALIGNMENT_512 0x01000000\r
+#define EFI_FVB_ALIGNMENT_1K 0x02000000\r
+#define EFI_FVB_ALIGNMENT_2K 0x04000000\r
+#define EFI_FVB_ALIGNMENT_4K 0x08000000\r
+#define EFI_FVB_ALIGNMENT_8K 0x10000000\r
+#define EFI_FVB_ALIGNMENT_16K 0x20000000\r
+#define EFI_FVB_ALIGNMENT_32K 0x40000000\r
+#define EFI_FVB_ALIGNMENT_64K 0x80000000\r
+\r
+#define EFI_FVB_CAPABILITIES (EFI_FVB_READ_DISABLED_CAP | \\r
+ EFI_FVB_READ_ENABLED_CAP | \\r
+ EFI_FVB_WRITE_DISABLED_CAP | \\r
+ EFI_FVB_WRITE_ENABLED_CAP | \\r
+ EFI_FVB_LOCK_CAP \\r
+ )\r
+\r
+#define EFI_TEST_FFS_ATTRIBUTES_BIT(FvbAttributes, TestAttributes, Bit) \\r
+ ( \\r
+ (BOOLEAN) ( \\r
+ (FvbAttributes & EFI_FVB_ERASE_POLARITY) ? (((~TestAttributes) & Bit) == Bit) : ((TestAttributes & Bit) == Bit) \\r
+ ) \\r
+ )\r
+\r
+#define EFI_FVB_STATUS (EFI_FVB_READ_STATUS | EFI_FVB_WRITE_STATUS | EFI_FVB_LOCK_STATUS)\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ This file defines the data structures that are architecturally defined for file\r
+ images loaded via the FirmwareVolume protocol. The Firmware Volume specification\r
+ is the basis for these definitions.\r
+\r
+ Copyright (c) 2006, Intel Corporation \r
+ All rights reserved. This program and the accompanying materials \r
+ are licensed and made available under the terms and conditions of the BSD License \r
+ which accompanies this distribution. The full text of the license may be found at \r
+ http://opensource.org/licenses/bsd-license.php \r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+\r
+ Module Name: FrameworkFimrwareVolumeImageFormat.h\r
+\r
+ @par Revision Reference:\r
+ These definitions are from Firmware Volume Spec 0.9.\r
+\r
+**/\r
+\r
+#ifndef __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
+#define __FRAMEWORK_FIRMWARE_VOLUME_IMAGE_FORMAT_H__\r
+\r
+//\r
+// Bit values for AuthenticationStatus\r
+//\r
+#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001\r
+#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED 0x000002\r
+#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED 0x000004\r
+#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED 0x000008\r
+#define EFI_AGGREGATE_AUTH_STATUS_ALL 0x00000f\r
+\r
+#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE 0x010000\r
+#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED 0x020000\r
+#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED 0x040000\r
+#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED 0x080000\r
+#define EFI_LOCAL_AUTH_STATUS_ALL 0x0f0000\r
+\r
+\r
+#define EFI_FV_FILETYPE_ALL 0x00\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ This file defines the data structures per HOB specification v0.9.\r
+\r
+ Copyright (c) 2007, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: FrameworkFirmwareFileSystem.h\r
+\r
+ @par Revision Reference:\r
+ These definitions are from HOB Spec 0.9 but not adopted by PI specs.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_HOB_H_\r
+#define _FRAMEWORK_HOB_H_\r
+\r
+#include <PiPei.h>\r
+\r
+//\r
+// Capsule volume HOB -- identical to a firmware volume\r
+//\r
+#define EFI_HOB_TYPE_CV 0x0008\r
+\r
+typedef struct {\r
+ EFI_HOB_GENERIC_HEADER Header;\r
+ EFI_PHYSICAL_ADDRESS BaseAddress;\r
+ UINT64 Length;\r
+} EFI_HOB_CAPSULE_VOLUME;\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ API between 16-bit Legacy BIOS and EFI\r
+\r
+ We need to figure out what the 16-bit code is going to use to\r
+ represent these data structures. Is a pointer SEG:OFF or 32-bit...\r
+\r
+ Copyright (c) 2007, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: FrameworkLegacy16.h\r
+\r
+ @par Revision Reference:\r
+ These definitions are from Compatibility Support Module Spec Version 0.96.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_LEGACY_16_H_\r
+#define _FRAMEWORK_LEGACY_16_H_\r
+\r
+#include <Base.h>\r
+\r
+//\r
+// All structures defined in this header file are packed on byte boundary\r
+//\r
+#pragma pack(1)\r
+\r
+typedef UINT8 SERIAL_MODE;\r
+typedef UINT8 PARALLEL_MODE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_COMPATIBILITY16_TABLE is located at a 16-byte boundary starting with the\r
+// signature "$EFI"\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+#define EFI_COMPATIBILITY16_TABLE_SIGNATURE EFI_SIGNATURE_32('$', 'E', 'F', 'I')\r
+\r
+typedef struct {\r
+ UINT32 Signature; // "$EFI"\r
+ UINT8 TableChecksum;\r
+ UINT8 TableLength;\r
+ UINT8 EfiMajorRevision;\r
+ UINT8 EfiMinorRevision;\r
+ UINT8 TableMajorRevision;\r
+ UINT8 TableMinorRevision;\r
+ UINT16 Reserved;\r
+ UINT16 Compatibility16CallSegment;\r
+ UINT16 Compatibility16CallOffset;\r
+ UINT16 PnPInstallationCheckSegment;\r
+ UINT16 PnPInstallationCheckOffset;\r
+ UINT32 EfiSystemTable; // The physical address of EFI_SYSTEM_TABLE\r
+ UINT32 OemIdStringPointer;\r
+ UINT32 AcpiRsdPtrPointer;\r
+ UINT16 OemRevision;\r
+ UINT32 E820Pointer;\r
+ UINT32 E820Length;\r
+ UINT32 IrqRoutingTablePointer;\r
+ UINT32 IrqRoutingTableLength;\r
+ UINT32 MpTablePtr;\r
+ UINT32 MpTableLength;\r
+ UINT16 OemIntSegment;\r
+ UINT16 OemIntOffset;\r
+ UINT16 Oem32Segment;\r
+ UINT16 Oem32Offset;\r
+ UINT16 Oem16Segment;\r
+ UINT16 Oem16Offset;\r
+ UINT16 TpmSegment;\r
+ UINT16 TpmOffset;\r
+ UINT32 IbvPointer;\r
+ UINT32 PciExpressBase;\r
+ UINT8 LastPciBus;\r
+} EFI_COMPATIBILITY16_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// Functions provided by the CSM binary\r
+///////////////////////////////////////////////////////////////////////////////\r
+typedef enum {\r
+ Legacy16InitializeYourself = 0x0000,\r
+ Legacy16UpdateBbs = 0x0001,\r
+ Legacy16PrepareToBoot = 0x0002,\r
+ Legacy16Boot = 0x0003,\r
+ Legacy16RetrieveLastBootDevice= 0x0004,\r
+ Legacy16DispatchOprom = 0x0005,\r
+ Legacy16GetTableAddress = 0x0006,\r
+ Legacy16SetKeyboardLeds = 0x0007,\r
+ Legacy16InstallPciHandler = 0x0008\r
+} EFI_COMPATIBILITY_FUNCTIONS;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_TO_COMPATIBILITY16_INIT_TABLE\r
+///////////////////////////////////////////////////////////////////////////////\r
+typedef struct {\r
+ UINT32 BiosLessThan1MB;\r
+ UINT32 HiPmmMemory;\r
+ UINT32 HiPmmMemorySizeInBytes;\r
+ UINT16 ReverseThunkCallSegment;\r
+ UINT16 ReverseThunkCallOffset;\r
+ UINT32 NumberE820Entries;\r
+ UINT32 OsMemoryAbove1Mb;\r
+ UINT32 ThunkStart;\r
+ UINT32 ThunkSizeInBytes;\r
+ UINT32 LowPmmMemory;\r
+ UINT32 LowPmmMemorySizeInBytes;\r
+} EFI_TO_COMPATIBILITY16_INIT_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+typedef UINT8 SERIAL_MODE;\r
+typedef UINT8 PARALLEL_MODE;\r
+\r
+//\r
+// DEVICE_PRODUCER_SERIAL & its modes\r
+//\r
+typedef struct {\r
+ UINT16 Address;\r
+ UINT8 Irq;\r
+ SERIAL_MODE Mode;\r
+} DEVICE_PRODUCER_SERIAL;\r
+\r
+#define DEVICE_SERIAL_MODE_NORMAL 0x00\r
+#define DEVICE_SERIAL_MODE_IRDA 0x01\r
+#define DEVICE_SERIAL_MODE_ASK_IR 0x02\r
+#define DEVICE_SERIAL_MODE_DUPLEX_HALF 0x00\r
+#define DEVICE_SERIAL_MODE_DUPLEX_FULL 0x10\r
+\r
+//\r
+// DEVICE_PRODUCER_PARALLEL & its modes\r
+//\r
+typedef struct {\r
+ UINT16 Address;\r
+ UINT8 Irq;\r
+ UINT8 Dma;\r
+ PARALLEL_MODE Mode;\r
+} DEVICE_PRODUCER_PARALLEL;\r
+\r
+#define DEVICE_PARALLEL_MODE_MODE_OUTPUT_ONLY 0x00\r
+#define DEVICE_PARALLEL_MODE_MODE_BIDIRECTIONAL 0x01\r
+#define DEVICE_PARALLEL_MODE_MODE_EPP 0x02\r
+#define DEVICE_PARALLEL_MODE_MODE_ECP 0x03\r
+\r
+//\r
+// DEVICE_PRODUCER_FLOPPY\r
+//\r
+typedef struct {\r
+ UINT16 Address;\r
+ UINT8 Irq;\r
+ UINT8 Dma;\r
+ UINT8 NumberOfFloppy;\r
+} DEVICE_PRODUCER_FLOPPY;\r
+\r
+//\r
+// LEGACY_DEVICE_FLAGS\r
+//\r
+typedef struct {\r
+ UINT32 A20Kybd : 1;\r
+ UINT32 A20Port90 : 1;\r
+ UINT32 Reserved : 30;\r
+} LEGACY_DEVICE_FLAGS;\r
+\r
+//\r
+// DEVICE_PRODUCER_DATA_HEADER\r
+//\r
+typedef struct {\r
+ DEVICE_PRODUCER_SERIAL Serial[4];\r
+ DEVICE_PRODUCER_PARALLEL Parallel[3];\r
+ DEVICE_PRODUCER_FLOPPY Floppy;\r
+ UINT8 MousePresent;\r
+ LEGACY_DEVICE_FLAGS Flags;\r
+} DEVICE_PRODUCER_DATA_HEADER;\r
+\r
+//\r
+// ATAPI_IDENTIFY\r
+//\r
+typedef struct {\r
+ UINT16 Raw[256];\r
+} ATAPI_IDENTIFY;\r
+\r
+//\r
+// HDD_INFO & its status\r
+//\r
+typedef struct {\r
+ UINT16 Status;\r
+ UINT32 Bus;\r
+ UINT32 Device;\r
+ UINT32 Function;\r
+ UINT16 CommandBaseAddress;\r
+ UINT16 ControlBaseAddress;\r
+ UINT16 BusMasterAddress;\r
+ UINT8 HddIrq;\r
+ ATAPI_IDENTIFY IdentifyDrive[2];\r
+} HDD_INFO;\r
+\r
+#define HDD_PRIMARY 0x01\r
+#define HDD_SECONDARY 0x02\r
+#define HDD_MASTER_ATAPI_CDROM 0x04\r
+#define HDD_SLAVE_ATAPI_CDROM 0x08\r
+#define HDD_MASTER_IDE 0x20\r
+#define HDD_SLAVE_IDE 0x40\r
+#define HDD_MASTER_ATAPI_ZIPDISK 0x10\r
+#define HDD_SLAVE_ATAPI_ZIPDISK 0x80\r
+\r
+//\r
+// BBS_STATUS_FLAGS\r
+//\r
+typedef struct {\r
+ UINT16 OldPosition : 4;\r
+ UINT16 Reserved1 : 4;\r
+ UINT16 Enabled : 1;\r
+ UINT16 Failed : 1;\r
+ UINT16 MediaPresent : 2;\r
+ UINT16 Reserved2 : 4;\r
+} BBS_STATUS_FLAGS;\r
+\r
+//\r
+// BBS_TABLE, device type values & boot priority values\r
+//\r
+typedef struct {\r
+ UINT16 BootPriority;\r
+ UINT32 Bus;\r
+ UINT32 Device;\r
+ UINT32 Function;\r
+ UINT8 Class;\r
+ UINT8 SubClass;\r
+ UINT16 MfgStringOffset;\r
+ UINT16 MfgStringSegment;\r
+ UINT16 DeviceType;\r
+ BBS_STATUS_FLAGS StatusFlags;\r
+ UINT16 BootHandlerOffset;\r
+ UINT16 BootHandlerSegment;\r
+ UINT16 DescStringOffset;\r
+ UINT16 DescStringSegment;\r
+ UINT32 InitPerReserved;\r
+ UINT32 AdditionalIrq13Handler;\r
+ UINT32 AdditionalIrq18Handler;\r
+ UINT32 AdditionalIrq19Handler;\r
+ UINT32 AdditionalIrq40Handler;\r
+ UINT8 AssignedDriveNumber;\r
+ UINT32 AdditionalIrq41Handler;\r
+ UINT32 AdditionalIrq46Handler;\r
+ UINT32 IBV1;\r
+ UINT32 IBV2;\r
+} BBS_TABLE;\r
+\r
+#define BBS_FLOPPY 0x01\r
+#define BBS_HARDDISK 0x02\r
+#define BBS_CDROM 0x03\r
+#define BBS_PCMCIA 0x04\r
+#define BBS_USB 0x05\r
+#define BBS_EMBED_NETWORK 0x06\r
+#define BBS_BEV_DEVICE 0x80\r
+#define BBS_UNKNOWN 0xff\r
+\r
+#define BBS_DO_NOT_BOOT_FROM 0xFFFC\r
+#define BBS_LOWEST_PRIORITY 0xFFFD\r
+#define BBS_UNPRIORITIZED_ENTRY 0xFFFE\r
+#define BBS_IGNORE_ENTRY 0xFFFF\r
+\r
+//\r
+// SMM_ATTRIBUTES & relating type, port and data size constants\r
+//\r
+typedef struct {\r
+ UINT16 Type : 3;\r
+ UINT16 PortGranularity : 3;\r
+ UINT16 DataGranularity : 3;\r
+ UINT16 Reserved : 7;\r
+} SMM_ATTRIBUTES;\r
+\r
+#define STANDARD_IO 0x00\r
+#define STANDARD_MEMORY 0x01\r
+\r
+#define PORT_SIZE_8 0x00\r
+#define PORT_SIZE_16 0x01\r
+#define PORT_SIZE_32 0x02\r
+#define PORT_SIZE_64 0x03\r
+\r
+#define DATA_SIZE_8 0x00\r
+#define DATA_SIZE_16 0x01\r
+#define DATA_SIZE_32 0x02\r
+#define DATA_SIZE_64 0x03\r
+\r
+//\r
+// SMM_FUNCTION & relating constants\r
+//\r
+typedef struct {\r
+ UINT16 Function : 15;\r
+ UINT16 Owner : 1;\r
+} SMM_FUNCTION;\r
+\r
+#define INT15_D042 0x0000\r
+#define GET_USB_BOOT_INFO 0x0001\r
+#define DMI_PNP_50_57 0x0002\r
+\r
+#define STANDARD_OWNER 0x0\r
+#define OEM_OWNER 0x1\r
+\r
+//\r
+// SMM_ENTRY\r
+//\r
+// This structure assumes both port and data sizes are 1. SmmAttribute must be\r
+// properly to reflect that assumption.\r
+//\r
+typedef struct {\r
+ SMM_ATTRIBUTES SmmAttributes;\r
+ SMM_FUNCTION SmmFunction;\r
+ UINT8 SmmPort;\r
+ UINT8 SmmData;\r
+} SMM_ENTRY;\r
+\r
+//\r
+// SMM_TABLE\r
+//\r
+typedef struct {\r
+ UINT16 NumSmmEntries;\r
+ SMM_ENTRY SmmEntry;\r
+} SMM_TABLE;\r
+\r
+//\r
+// UDC_ATTRIBUTES\r
+//\r
+typedef struct {\r
+ UINT8 DirectoryServiceValidity : 1;\r
+ UINT8 RabcaUsedFlag : 1;\r
+ UINT8 ExecuteHddDiagnosticsFlag : 1;\r
+ UINT8 Reserved : 5;\r
+} UDC_ATTRIBUTES;\r
+\r
+//\r
+// UD_TABLE\r
+//\r
+typedef struct {\r
+ UDC_ATTRIBUTES Attributes;\r
+ UINT8 DeviceNumber;\r
+ UINT8 BbsTableEntryNumberForParentDevice;\r
+ UINT8 BbsTableEntryNumberForBoot;\r
+ UINT8 BbsTableEntryNumberForHddDiag;\r
+ UINT8 BeerData[128];\r
+ UINT8 ServiceAreaData[64];\r
+} UD_TABLE;\r
+\r
+//\r
+// EFI_TO_COMPATIBILITY16_BOOT_TABLE\r
+//\r
+#define EFI_TO_LEGACY_MAJOR_VERSION 0x02\r
+#define EFI_TO_LEGACY_MINOR_VERSION 0x00\r
+#define MAX_IDE_CONTROLLER 8\r
+\r
+typedef struct {\r
+ UINT16 MajorVersion;\r
+ UINT16 MinorVersion;\r
+ UINT32 AcpiTable; // 4 GB range\r
+ UINT32 SmbiosTable; // 4 GB range\r
+ UINT32 SmbiosTableLength;\r
+\r
+ //\r
+ // Legacy SIO state\r
+ //\r
+ DEVICE_PRODUCER_DATA_HEADER SioData;\r
+\r
+ UINT16 DevicePathType;\r
+ UINT16 PciIrqMask;\r
+ UINT32 NumberE820Entries;\r
+\r
+ //\r
+ // Controller & Drive Identify[2] per controller information\r
+ //\r
+ HDD_INFO HddInfo[MAX_IDE_CONTROLLER];\r
+\r
+ UINT32 NumberBbsEntries;\r
+ UINT32 BbsTable;\r
+ UINT32 SmmTable;\r
+ UINT32 OsMemoryAbove1Mb;\r
+ UINT32 UnconventionalDeviceTable;\r
+} EFI_TO_COMPATIBILITY16_BOOT_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_DISPATCH_OPROM_TABLE\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+typedef struct {\r
+ UINT16 PnPInstallationCheckSegment;\r
+ UINT16 PnPInstallationCheckOffset;\r
+ UINT16 OpromSegment;\r
+ UINT8 PciBus;\r
+ UINT8 PciDeviceFunction;\r
+ UINT8 NumberBbsEntries;\r
+ VOID *BbsTablePointer; /// @bug: variable size on 32/64-bit systems.\r
+} EFI_DISPATCH_OPROM_TABLE;\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+// EFI_LEGACY_INSTALL_PCI_HANDLER\r
+///////////////////////////////////////////////////////////////////////////////\r
+typedef struct {\r
+ UINT8 PciBus;\r
+ UINT8 PciDeviceFun;\r
+ UINT8 PciSegment;\r
+ UINT8 PciClass;\r
+ UINT8 PciSubclass;\r
+ UINT8 PciInterface;\r
+\r
+ //\r
+ // Primary section\r
+ //\r
+ UINT8 PrimaryIrq;\r
+ UINT8 PrimaryReserved;\r
+ UINT16 PrimaryControl;\r
+ UINT16 PrimaryBase;\r
+ UINT16 PrimaryBusMaster;\r
+\r
+ //\r
+ // Secondary Section\r
+ //\r
+ UINT8 SecondaryIrq;\r
+ UINT8 SecondaryReserved;\r
+ UINT16 SecondaryControl;\r
+ UINT16 SecondaryBase;\r
+ UINT16 SecondaryBusMaster;\r
+} EFI_LEGACY_INSTALL_PCI_HANDLER;\r
+\r
+//\r
+// Restore default pack value\r
+//\r
+#pragma pack()\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ Include file matches things in the Smm CIS spec.\r
+\r
+ Copyright (c) 2007, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: FrameworkSmmCis.h\r
+\r
+ @par Revision Reference:\r
+ Version 0.9.\r
+\r
+**/\r
+\r
+#ifndef _FRAMEWORK_SMM_CIS_H_\r
+#define _FRAMEWORK_SMM_CIS_H_\r
+\r
+#include <Common/FrameworkDxeCis.h>\r
+\r
+#define EFI_SMM_CPU_IO_GUID \\r
+ { \\r
+ 0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \\r
+ }\r
+\r
+typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;\r
+typedef struct _EFI_SMM_CPU_IO_INTERFACE EFI_SMM_CPU_IO_INTERFACE;\r
+\r
+\r
+//\r
+// SMM Base specification constant and types\r
+//\r
+#define SMM_SMST_SIGNATURE EFI_SIGNATURE_32 ('S', 'M', 'S', 'T')\r
+#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09)\r
+\r
+//\r
+// *******************************************************\r
+// EFI_SMM_IO_WIDTH\r
+// *******************************************************\r
+//\r
+typedef enum {\r
+ SMM_IO_UINT8 = 0,\r
+ SMM_IO_UINT16 = 1,\r
+ SMM_IO_UINT32 = 2,\r
+ SMM_IO_UINT64 = 3\r
+} EFI_SMM_IO_WIDTH;\r
+\r
+/**\r
+ Provides the basic memory and I/O interfaces that are used to\r
+ abstract accesses to devices.\r
+\r
+ @param This The EFI_SMM_CPU_IO_INTERFACE instance.\r
+ @param Width Signifies the width of the I/O operations.\r
+ @param Address The base address of the I/O operations.\r
+ @param Count The number of I/O operations to perform.\r
+ @param Buffer For read operations, the destination buffer to store the results.\r
+ For write operations, the source buffer from which to write data.\r
+\r
+ @retval EFI_SUCCESS The data was read from or written to the device.\r
+ @retval EFI_UNSUPPORTED The Address is not valid for this system.\r
+ @retval EFI_INVALID_PARAMETER Width or Count, or both, were invalid.\r
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_CPU_IO) (\r
+ IN EFI_SMM_CPU_IO_INTERFACE *This,\r
+ IN EFI_SMM_IO_WIDTH Width,\r
+ IN UINT64 Address,\r
+ IN UINTN Count,\r
+ IN OUT VOID *Buffer\r
+ );\r
+\r
+typedef struct {\r
+ EFI_SMM_CPU_IO Read;\r
+ EFI_SMM_CPU_IO Write;\r
+} EFI_SMM_IO_ACCESS;\r
+\r
+struct _EFI_SMM_CPU_IO_INTERFACE {\r
+ EFI_SMM_IO_ACCESS Mem;\r
+ EFI_SMM_IO_ACCESS Io;\r
+};\r
+\r
+/**\r
+ Allocates pool memory from SMRAM for IA-32 or runtime memory for\r
+ the Itanium processor family.\r
+\r
+ @param PoolType The type of pool to allocate.The only supported type is EfiRuntimeServicesData\r
+ @param Size The number of bytes to allocate from the pool.\r
+ @param Buffer A pointer to a pointer to the allocated buffer if the call\r
+ succeeds; undefined otherwise.\r
+\r
+ @retval EFI_SUCCESS The requested number of bytes was allocated.\r
+ @retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated.\r
+ @retval EFI_UNSUPPORTED In runtime.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_ALLOCATE_POOL) (\r
+ IN EFI_MEMORY_TYPE PoolType,\r
+ IN UINTN Size,\r
+ OUT VOID **Buffer\r
+ );\r
+\r
+/**\r
+ Returns pool memory to the system.\r
+\r
+ @param Buffer Pointer to the buffer to free.\r
+\r
+ @retval EFI_SUCCESS The memory was returned to the system.\r
+ @retval EFI_INVALID_PARAMETER Buffer was invalid.\r
+ @retval EFI_UNSUPPORTED In runtime.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_FREE_POOL) (\r
+ IN VOID *Buffer\r
+ );\r
+\r
+/**\r
+ Allocates memory pages from the system.\r
+\r
+ @param Type The type of allocation to perform.\r
+ @param MemoryType The only supported type is EfiRuntimeServicesData\r
+ @param NumberofPages The number of contiguous 4 KB pages to allocate\r
+ @param Memory Pointer to a physical address. On input, the way in which\r
+ the address is used depends on the value of Type. On output, the address\r
+ is set to the base of the page range that was allocated.\r
+\r
+ @retval EFI_SUCCESS The requested pages were allocated.\r
+ @retval EFI_OUT_OF_RESOURCES The pages requested could not be allocated.\r
+ @retval EFI_NOT_FOUND The requested pages could not be found.\r
+ @retval EFI_INVALID_PARAMETER Type is not AllocateAnyPages or AllocateMaxAddress\r
+ or AllocateAddress. Or MemoryType is in the range EfiMaxMemoryType..0x7FFFFFFF.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_ALLOCATE_PAGES) (\r
+ IN EFI_ALLOCATE_TYPE Type,\r
+ IN EFI_MEMORY_TYPE MemoryType,\r
+ IN UINTN NumberOfPages,\r
+ OUT EFI_PHYSICAL_ADDRESS *Memory\r
+ );\r
+\r
+/**\r
+ Frees memory pages for the system.\r
+\r
+ @param Memory The base physical address of the pages to be freed\r
+ @param NumberOfPages The number of contiguous 4 KB pages to free.\r
+\r
+ @retval EFI_SUCCESS The requested memory pages were freed.\r
+ @retval EFI_INVALID_PARAMETER Memory is not a page-aligned address or NumberOfPages is invalid.\r
+ @retval EFI_NOT_FOUND The requested memory pages were not allocated with SmmAllocatePages().\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMMCORE_FREE_PAGES) (\r
+ IN EFI_PHYSICAL_ADDRESS Memory,\r
+ IN UINTN NumberOfPages\r
+ );\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_STARTUP_THIS_AP) (\r
+ IN EFI_AP_PROCEDURE Procedure,\r
+ IN UINTN CpuNumber,\r
+ IN OUT VOID *ProcArguments OPTIONAL\r
+ );\r
+\r
+typedef struct {\r
+ UINT8 Reserved1[248];\r
+ UINT32 SMBASE;\r
+ UINT32 SMMRevId;\r
+ UINT16 IORestart;\r
+ UINT16 AutoHALTRestart;\r
+ UINT8 Reserved2[164];\r
+ UINT32 ES;\r
+ UINT32 CS;\r
+ UINT32 SS;\r
+ UINT32 DS;\r
+ UINT32 FS;\r
+ UINT32 GS;\r
+ UINT32 LDTBase;\r
+ UINT32 TR;\r
+ UINT32 DR7;\r
+ UINT32 DR6;\r
+ UINT32 EAX;\r
+ UINT32 ECX;\r
+ UINT32 EDX;\r
+ UINT32 EBX;\r
+ UINT32 ESP;\r
+ UINT32 EBP;\r
+ UINT32 ESI;\r
+ UINT32 EDI;\r
+ UINT32 EIP;\r
+ UINT32 EFLAGS;\r
+ UINT32 CR3;\r
+ UINT32 CR0;\r
+} EFI_SMI_CPU_SAVE_STATE;\r
+\r
+typedef struct {\r
+ UINT64 reserved;\r
+ UINT64 r1;\r
+ UINT64 r2;\r
+ UINT64 r3;\r
+ UINT64 r4;\r
+ UINT64 r5;\r
+ UINT64 r6;\r
+ UINT64 r7;\r
+ UINT64 r8;\r
+ UINT64 r9;\r
+ UINT64 r10;\r
+ UINT64 r11;\r
+ UINT64 r12;\r
+ UINT64 r13;\r
+ UINT64 r14;\r
+ UINT64 r15;\r
+ UINT64 r16;\r
+ UINT64 r17;\r
+ UINT64 r18;\r
+ UINT64 r19;\r
+ UINT64 r20;\r
+ UINT64 r21;\r
+ UINT64 r22;\r
+ UINT64 r23;\r
+ UINT64 r24;\r
+ UINT64 r25;\r
+ UINT64 r26;\r
+ UINT64 r27;\r
+ UINT64 r28;\r
+ UINT64 r29;\r
+ UINT64 r30;\r
+ UINT64 r31;\r
+\r
+ UINT64 pr;\r
+\r
+ UINT64 b0;\r
+ UINT64 b1;\r
+ UINT64 b2;\r
+ UINT64 b3;\r
+ UINT64 b4;\r
+ UINT64 b5;\r
+ UINT64 b6;\r
+ UINT64 b7;\r
+\r
+ // application registers\r
+ UINT64 ar_rsc;\r
+ UINT64 ar_bsp;\r
+ UINT64 ar_bspstore;\r
+ UINT64 ar_rnat;\r
+\r
+ UINT64 ar_fcr;\r
+\r
+ UINT64 ar_eflag;\r
+ UINT64 ar_csd;\r
+ UINT64 ar_ssd;\r
+ UINT64 ar_cflg;\r
+ UINT64 ar_fsr;\r
+ UINT64 ar_fir;\r
+ UINT64 ar_fdr;\r
+\r
+ UINT64 ar_ccv;\r
+\r
+ UINT64 ar_unat;\r
+\r
+ UINT64 ar_fpsr;\r
+\r
+ UINT64 ar_pfs;\r
+ UINT64 ar_lc;\r
+ UINT64 ar_ec;\r
+\r
+ // control registers\r
+ UINT64 cr_dcr;\r
+ UINT64 cr_itm;\r
+ UINT64 cr_iva;\r
+ UINT64 cr_pta;\r
+ UINT64 cr_ipsr;\r
+ UINT64 cr_isr;\r
+ UINT64 cr_iip;\r
+ UINT64 cr_ifa;\r
+ UINT64 cr_itir;\r
+ UINT64 cr_iipa;\r
+ UINT64 cr_ifs;\r
+ UINT64 cr_iim;\r
+ UINT64 cr_iha;\r
+\r
+ // debug registers\r
+ UINT64 dbr0;\r
+ UINT64 dbr1;\r
+ UINT64 dbr2;\r
+ UINT64 dbr3;\r
+ UINT64 dbr4;\r
+ UINT64 dbr5;\r
+ UINT64 dbr6;\r
+ UINT64 dbr7;\r
+\r
+ UINT64 ibr0;\r
+ UINT64 ibr1;\r
+ UINT64 ibr2;\r
+ UINT64 ibr3;\r
+ UINT64 ibr4;\r
+ UINT64 ibr5;\r
+ UINT64 ibr6;\r
+ UINT64 ibr7;\r
+\r
+ // virtual registers\r
+ UINT64 int_nat; // nat bits for R1-R31\r
+\r
+} EFI_PMI_SYSTEM_CONTEXT;\r
+\r
+typedef union {\r
+ EFI_SMI_CPU_SAVE_STATE Ia32SaveState;\r
+ EFI_PMI_SYSTEM_CONTEXT ItaniumSaveState;\r
+} EFI_SMM_CPU_SAVE_STATE;\r
+\r
+typedef struct {\r
+ UINT16 Fcw;\r
+ UINT16 Fsw;\r
+ UINT16 Ftw;\r
+ UINT16 Opcode;\r
+ UINT32 Eip;\r
+ UINT16 Cs;\r
+ UINT16 Rsvd1;\r
+ UINT32 DataOffset;\r
+ UINT16 Ds;\r
+ UINT8 Rsvd2[10];\r
+ UINT8 St0Mm0[10], Rsvd3[6];\r
+ UINT8 St0Mm1[10], Rsvd4[6];\r
+ UINT8 St0Mm2[10], Rsvd5[6];\r
+ UINT8 St0Mm3[10], Rsvd6[6];\r
+ UINT8 St0Mm4[10], Rsvd7[6];\r
+ UINT8 St0Mm5[10], Rsvd8[6];\r
+ UINT8 St0Mm6[10], Rsvd9[6];\r
+ UINT8 St0Mm7[10], Rsvd10[6];\r
+ UINT8 Rsvd11[22*16];\r
+} EFI_SMI_OPTIONAL_FPSAVE_STATE;\r
+\r
+typedef struct {\r
+ UINT64 f2[2];\r
+ UINT64 f3[2];\r
+ UINT64 f4[2];\r
+ UINT64 f5[2];\r
+ UINT64 f6[2];\r
+ UINT64 f7[2];\r
+ UINT64 f8[2];\r
+ UINT64 f9[2];\r
+ UINT64 f10[2];\r
+ UINT64 f11[2];\r
+ UINT64 f12[2];\r
+ UINT64 f13[2];\r
+ UINT64 f14[2];\r
+ UINT64 f15[2];\r
+ UINT64 f16[2];\r
+ UINT64 f17[2];\r
+ UINT64 f18[2];\r
+ UINT64 f19[2];\r
+ UINT64 f20[2];\r
+ UINT64 f21[2];\r
+ UINT64 f22[2];\r
+ UINT64 f23[2];\r
+ UINT64 f24[2];\r
+ UINT64 f25[2];\r
+ UINT64 f26[2];\r
+ UINT64 f27[2];\r
+ UINT64 f28[2];\r
+ UINT64 f29[2];\r
+ UINT64 f30[2];\r
+ UINT64 f31[2];\r
+} EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT;\r
+\r
+typedef union {\r
+ EFI_SMI_OPTIONAL_FPSAVE_STATE Ia32FpSave;\r
+ EFI_PMI_OPTIONAL_FLOATING_POINT_CONTEXT ItaniumFpSave;\r
+} EFI_SMM_FLOATING_POINT_SAVE_STATE;\r
+\r
+/**\r
+ This function is the main entry point for an SMM handler dispatch\r
+ or communicate-based callback.\r
+\r
+ @param SmmImageHandle A unique value returned by the SMM infrastructure\r
+ in response to registration for a communicate-based callback or dispatch.\r
+ @param CommunicationBuffer\r
+ An optional buffer that will be populated\r
+ by the SMM infrastructure in response to a non-SMM agent (preboot or runtime)\r
+ invoking the EFI_SMM_BASE_PROTOCOL.Communicate() service.\r
+ @param SourceSize If CommunicationBuffer is non-NULL, this field\r
+ indicates the size of the data payload in this buffer.\r
+\r
+ @return Status Code\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_HANDLER_ENTRY_POINT) (\r
+ IN EFI_HANDLE SmmImageHandle,\r
+ IN OUT VOID *CommunicationBuffer OPTIONAL,\r
+ IN OUT UINTN *SourceSize OPTIONAL\r
+ );\r
+\r
+/**\r
+ The SmmInstallConfigurationTable() function is used to maintain the list\r
+ of configuration tables that are stored in the System Management System\r
+ Table. The list is stored as an array of (GUID, Pointer) pairs. The list\r
+ must be allocated from pool memory with PoolType set to EfiRuntimeServicesData.\r
+\r
+ @param SystemTable A pointer to the SMM System Table.\r
+ @param Guid A pointer to the GUID for the entry to add, update, or remove.\r
+ @param Table A pointer to the buffer of the table to add.\r
+ @param TableSize The size of the table to install.\r
+\r
+ @retval EFI_SUCCESS The (Guid, Table) pair was added, updated, or removed.\r
+ @retval EFI_INVALID_PARAMETER Guid is not valid.\r
+ @retval EFI_NOT_FOUND An attempt was made to delete a non-existent entry.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough memory available to complete the operation.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE) (\r
+