+++ /dev/null
-/** @file\r
- The common header file for the thunk driver.\r
- \r
-Copyright (c) 2009 Intel Corporation. <BR>\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
-**/\r
-\r
-#ifndef _DATAHUB_TO_SMBIOS_THUNK_\r
-#define _DATAHUB_TO_SMBIOS_THUNK_\r
-\r
-#include <FrameworkDxe.h>\r
-#include <IndustryStandard/SmBios.h>\r
-\r
-#include <Guid/EventGroup.h>\r
-#include <Guid/SmBios.h>\r
-#include <Protocol/DataHub.h>\r
-#include <Guid/DataHubRecords.h>\r
-#include <Protocol/HiiDatabase.h>\r
-#include <Protocol/Smbios.h>\r
-\r
-#include <Library/BaseLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/HiiLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/ReportStatusCodeLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-\r
-//\r
-// Conversion Table that describes the translation method for\r
-// Data Hub Data Records of certain SubClass and RecordNumber\r
-//\r
-typedef enum {\r
- BY_SUBCLASS_INSTANCE_SUBINSTANCE_PRODUCER,\r
- BY_SUBCLASS_INSTANCE_PRODUCER,\r
- MAX_LOCATING_METHOD\r
-} SMBIOS_STRUCTURE_LOCATING_METHOD;\r
-\r
-typedef enum {\r
- RECORD_DATA_UNCHANGED_OFFSET_SPECIFIED,\r
- BY_FUNCTION_WITH_OFFSET_SPECIFIED,\r
- BY_FUNCTION,\r
- BY_FUNCTION_WITH_WHOLE_DATA_RECORD,\r
- MAX_FIELD_FILLING_METHOD\r
-} SMBIOS_FIELD_FILLING_METHOD;\r
-\r
-typedef struct _SMBIOS_STRUCTURE_NODE SMBIOS_STRUCTURE_NODE;\r
-\r
-typedef struct {\r
- UINT8 Type;\r
- UINT8 Length;\r
- UINT16 Handle;\r
- UINT8 Tailing[2];\r
-} EFI_SMBIOS_TABLE_TYPE127;\r
-\r
-typedef\r
-EFI_STATUS\r
-(*SMBIOS_FIELD_FILLING_FUNCTION) (\r
- IN OUT SMBIOS_STRUCTURE_NODE * StructureNode,\r
- IN UINT32 Offset OPTIONAL,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- );\r
-\r
-typedef struct {\r
- //\r
- // Data Hub Data Record's SubClass and RecordNumber\r
- //\r
- EFI_GUID SubClass;\r
- UINT32 RecordType;\r
-\r
- //\r
- // Translation method applied\r
- //\r
- UINT8 SmbiosType;\r
- SMBIOS_STRUCTURE_LOCATING_METHOD StructureLocatingMethod;\r
- SMBIOS_FIELD_FILLING_METHOD FieldFillingMethod;\r
- UINT32 FieldOffset;\r
- SMBIOS_FIELD_FILLING_FUNCTION FieldFillingFunction;\r
-\r
-} SMBIOS_CONVERSION_TABLE_ENTRY;\r
-\r
-//\r
-// SMBIOS_LINK_DATA_FIXUP nodes indicate the Link fields that\r
-// need to be fixed up when creating the resulting Smbios image.\r
-//\r
-#define SMBIOS_LINK_DATA_FIXUP_NODE_SIGNATURE SIGNATURE_32 ('S', 'm', 'l', 'n')\r
-\r
-typedef struct {\r
-\r
- UINT32 Signature;\r
- LIST_ENTRY Link;\r
-\r
- UINT32 Offset;\r
- UINT8 TargetType;\r
- EFI_GUID SubClass;\r
- EFI_INTER_LINK_DATA LinkData;\r
-\r
-} SMBIOS_LINK_DATA_FIXUP_NODE;\r
-\r
-//\r
-// The global Structure List node.\r
-// The Structure List is populated as more and more\r
-// Structures (of various types) are discovered and inserted.\r
-// The nodes in the Structure List will be concatenated\r
-// to form the ultimate SMBIOS table.\r
-//\r
-#define SMBIOS_STRUCTURE_NODE_SIGNATURE SIGNATURE_32 ('S', 'm', 'b', 's')\r
-\r
-struct _SMBIOS_STRUCTURE_NODE {\r
-\r
- UINT32 Signature;\r
- LIST_ENTRY Link;\r
-\r
- //\r
- // Tags\r
- //\r
- EFI_GUID SubClass;\r
- UINT16 Instance;\r
- UINT16 SubInstance;\r
- EFI_GUID ProducerName;\r
-\r
- //\r
- // the Smbios structure\r
- //\r
- UINT32 StructureSize; // Actual structure size including strings\r
-\r
- EFI_SMBIOS_TABLE_HEADER *Structure;\r
- \r
- \r
- EFI_SMBIOS_HANDLE SmbiosHandle; // Smbios Handle in SMBIOS database.\r
- \r
- EFI_SMBIOS_TYPE SmbiosType;\r
- \r
- LIST_ENTRY LinkDataFixup;\r
- \r
-};\r
-\r
-//\r
-// Smbios type info table. Indicates minimum length\r
-// for each Smbios type as the indicator of the initial size of buffer\r
-// allocated for the structure instance of a specific type.\r
-//\r
-typedef struct {\r
-\r
- UINT8 Type;\r
- UINT8 MinLength; // Minimal structure size including\r
- // TWO trailing bytes of 0x00\r
- //\r
- BOOLEAN IsRequired; // Required structure type defined by Smbios Spec\r
- BOOLEAN IsCreated; // Created in this run\r
-} SMBIOS_TYPE_INFO_TABLE_ENTRY;\r
-\r
-//\r
-// EDK framwork Memory Data hub definition to support EDK/Framework driver.\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
- UINT64 MemoryDeviceSize;\r
- EFI_MEMORY_FORM_FACTOR MemoryFormFactor;\r
- UINT8 MemoryDeviceSet;\r
- EFI_MEMORY_ARRAY_TYPE MemoryType;\r
- EFI_MEMORY_TYPE_DETAIL MemoryTypeDetail;\r
- UINT16 MemorySpeed;\r
- EFI_MEMORY_STATE MemoryState;\r
- UINT8 MemoryAttributes;\r
-} FRAMEWORK_MEMORY_ARRAY_LINK_DATA;\r
-\r
-typedef struct {\r
- EFI_MEMORY_ARRAY_LOCATION MemoryArrayLocation;\r
- EFI_MEMORY_ARRAY_USE MemoryArrayUse;\r
- EFI_MEMORY_ERROR_CORRECTION MemoryErrorCorrection;\r
- UINT32 MaximumMemoryCapacity;\r
- UINT16 NumberMemoryDevices;\r
-} FRAMEWORK_MEMORY_ARRAY_LOCATION_DATA;\r
-\r
-//\r
-// Global variables\r
-//\r
-extern SMBIOS_CONVERSION_TABLE_ENTRY mConversionTable[];\r
-extern SMBIOS_TYPE_INFO_TABLE_ENTRY mTypeInfoTable[];\r
-extern LIST_ENTRY mStructureList;\r
-\r
-//\r
-// Function Prototypes\r
-//\r
-/**\r
- Smbios data filter function. This function is invoked when there is data records\r
- available in the Data Hub. \r
-\r
- @param Event The event that is signaled.\r
- @param Context not used here.\r
-**/\r
-VOID\r
-EFIAPI\r
-SmbiosDataFilter (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- );\r
-\r
-//\r
-// Function prototypes\r
-//\r
-/**\r
- Process a datahub's record and find corresponding translation way to translate\r
- to SMBIOS record.\r
- \r
- @param Record Point to datahub record.\r
-**/\r
-VOID\r
-SmbiosProcessDataRecord (\r
- IN EFI_DATA_RECORD_HEADER *Record\r
- )\r
-;\r
-\r
-/**\r
- Calculate the minimal length for a SMBIOS type. This length maybe not equal\r
- to sizeof (SMBIOS_RECORD_STRUCTURE), but defined in conformance chapter in SMBIOS specification.\r
- \r
- @param Type SMBIOS's type.\r
- \r
- @return the minimal length of a smbios record.\r
-**/\r
-UINT32\r
-SmbiosGetTypeMinimalLength (\r
- IN UINT8 Type\r
- )\r
-;\r
-\r
-/**\r
- Enlarge the structure buffer of a structure node in SMBIOS database.\r
- The function maybe lead the structure pointer for SMBIOS record changed.\r
- \r
- @param StructureNode The structure node whose structure buffer is to be enlarged.\r
- @param NewLength The new length of SMBIOS record which does not include unformat area.\r
- @param OldBufferSize The old size of SMBIOS record buffer.\r
- @param NewBufferSize The new size is targeted for enlarged.\r
- \r
- @retval EFI_OUT_OF_RESOURCES No more memory to allocate new record\r
- @retval EFI_SUCCESS Success to enlarge the record buffer size.\r
-**/\r
-EFI_STATUS\r
-SmbiosEnlargeStructureBuffer (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- UINT8 NewLength,\r
- UINTN OldBufferSize,\r
- UINTN NewBufferSize\r
- );\r
-\r
-/**\r
- Field Filling Function. Fill a standard Smbios string field. \r
- Convert the unicode string to single byte chars.\r
- Only English language is supported.\r
-\r
- This function changes the Structure pointer value of the structure node, \r
- which should be noted by Caller.\r
- \r
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.\r
- @param Offset Offset of SMBIOS record which RecordData will be filled.\r
- @param RecordData RecordData buffer will be filled.\r
- @param RecordDataSize The size of RecordData buffer.\r
- \r
- @retval EFI_INVALID_PARAMETER RecordDataSize is too larger\r
- @retval EFI_OUT_OF_RESOURCES No memory to allocate new buffer for string\r
- @retval EFI_SUCCESS Sucess append string for a SMBIOS record.\r
-**/\r
-EFI_STATUS\r
-SmbiosFldString (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-/**\r
- Fill the inter link field for a SMBIOS recorder.\r
- \r
- Some SMBIOS recorder need to reference the handle of another SMBIOS record. But\r
- maybe another SMBIOS record has not been added, so put the InterLink request into\r
- a linked list and the interlink will be fixedup when a new SMBIOS record is added.\r
- \r
- @param StructureNode Point to SMBIOS_STRUCTURE_NODE which reference another record's handle\r
- @param LinkSmbiosNodeOffset The offset in this record for holding the handle of another SMBIOS record\r
- @param LinkSmbiosType The type of SMBIOS record want to be linked.\r
- @param InterLink Point to EFI_INTER_LINK_DATA will be put linked list.\r
- @param SubClassGuid The guid of subclass for linked SMBIOS record.\r
- \r
- @retval EFI_SUCESS The linked record is found and no need fixup in future.\r
- @retval !EFI_SUCESS The linked record can not be found and InterLink is put a fixing-p linked list.\r
-**/\r
-EFI_STATUS\r
-SmbiosFldInterLink (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT16 LinkSmbiosNodeOffset,\r
- IN UINT8 LinkSmbiosType,\r
- IN EFI_INTER_LINK_DATA *InterLink,\r
- IN EFI_GUID *SubClassGuid\r
- )\r
-;\r
-\r
-/**\r
- Find a handle that matches the Link Data and the target Smbios type.\r
- \r
- @param TargetType the Smbios type\r
- @param SubClass the SubClass\r
- @param LinkData Specifies Instance, SubInstance and ProducerName\r
- @param Handle the HandleNum found \r
- \r
- @retval EFI_NOT_FOUND Can not find the record according to handle\r
- @retval EFI_SUCCESS Success to find the handle\r
-**/\r
-EFI_STATUS\r
-SmbiosFindHandle (\r
- IN UINT8 TargetType,\r
- IN EFI_GUID *SubClass,\r
- IN EFI_INTER_LINK_DATA *LinkData,\r
- IN OUT UINT16 *HandleNum\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldBase10ToWordWithMega (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldBase2ToWordWithKilo (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldTruncateToByte (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldProcessorType6 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldProcessorType9 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldProcessorType17 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldBase10ToByteWithNano (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldTruncateToWord (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldCacheType10 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-INT8\r
-SmbiosCheckTrailingZero (\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldCacheType5 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType2 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType3 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType4 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType5 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType6 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType7 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType8 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType9 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMemoryType10 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType0 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldBase2ToByteWith64K (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType1 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType2 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType3 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType8 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType9 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType10 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType11 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType12 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType13 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType14 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType15 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType21 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType32 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType38 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- );\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscTypeOEM (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldSMBIOSType6 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset, \r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType22 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType22 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType23 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType24 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType25 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType26 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType27 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType28 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType29 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType30 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType34 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType36 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType38 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType39 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
-\r
-EFI_STATUS\r
-SmbiosFldMiscType127 (\r
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,\r
- IN UINT32 Offset,\r
- IN VOID *RecordData,\r
- IN UINT32 RecordDataSize\r
- )\r
-;\r
- \r
-EFI_STATUS\r
-SmbiosProtocolCreateRecord (\r
- IN EFI_HANDLE ProducerHandle, OPTIONAL\r
- IN SMBIOS_STRUCTURE_NODE *StructureNode\r
- );\r
- \r
-EFI_SMBIOS_PROTOCOL*\r
-GetSmbiosProtocol (\r
- VOID\r
- );\r
- \r
-EFI_SMBIOS_TABLE_HEADER*\r
-GetSmbiosBufferFromHandle (\r
- IN EFI_SMBIOS_HANDLE Handle,\r
- IN EFI_SMBIOS_TYPE Type,\r
- IN EFI_HANDLE ProducerHandle OPTIONAL\r
- );\r
- \r
-EFI_STATUS\r
-EFIAPI\r
-GetSmbiosStructureSize (\r
- IN EFI_SMBIOS_TABLE_HEADER *Head,\r
- OUT UINT32 *Size,\r
- OUT UINT8 *NumberOfStrings\r
- );\r
- \r
-#endif\r