summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2017-08-02 09:54:47 +0800
committerGuo Mang <mang.guo@intel.com>2017-09-05 19:45:08 +0800
commit6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8 (patch)
tree444372d92a0ae8991fe4d15eb3937df43690dfda /EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c
parentb207c6434d7a5a4502975d322312e07017e8a8cb (diff)
downloadedk2-platforms-6c128c65b5ec0e5b8b5a0ccb165f3afd29e485f8.tar.xz
Remove core packages since we can get them from edk2 repository
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c')
-rw-r--r--EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c2527
1 files changed, 0 insertions, 2527 deletions
diff --git a/EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c b/EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c
deleted file mode 100644
index 428dbf0238..0000000000
--- a/EdkCompatibilityPkg/Compatibility/PiSmbiosRecordOnDataHubSmbiosRecordThunk/MiscConv.c
+++ /dev/null
@@ -1,2527 +0,0 @@
-/** @file
- Routines that support Misc SubClass data records translation.
-
-Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include "Thunk.h"
-
-/**
- Field Filling Function for Misc SubClass record type 0 -- Bios Information.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType0 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_BIOS_VENDOR_DATA *BiosInfo;
-
- Status = EFI_SUCCESS;
- BiosInfo = NULL;
-
- BiosInfo = (EFI_MISC_BIOS_VENDOR_DATA *) RecordData;
-
- //
- // Bios Vendor
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE0, Vendor),
- &(BiosInfo->BiosVendor),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Bios Version
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosVersion),
- &(BiosInfo->BiosVersion),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Bios Release Date
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosReleaseDate),
- &(BiosInfo->BiosReleaseDate),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Bios Starting Address Segment
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosSegment),
- &BiosInfo->BiosStartingAddress,
- 2
- );
-
- //
- // Bios Physical device size
- //
- SmbiosFldBase2ToByteWith64K (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosSize),
- &BiosInfo->BiosPhysicalDeviceSize,
- sizeof (EFI_EXP_BASE2_DATA)
- );
- (*(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosSize)))--;
-
- //
- // Bios Characteristics
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosCharacteristics),
- &BiosInfo->BiosCharacteristics1,
- 4
- );
-
- //
- // Bios Characteristics higher four bytes
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, BiosCharacteristics) + 4,
- &BiosInfo->BiosCharacteristics2,
- 4
- );
-
- //
- // Bios Characteristics Extension1/2
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, BIOSCharacteristicsExtensionBytes),
- (UINT8 *) &BiosInfo->BiosCharacteristics1 + 4,
- 2
- );
-
- //
- // System BIOS Major Release
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, SystemBiosMajorRelease),
- (UINT8 *) &BiosInfo->BiosMajorRelease,
- 1
- );
-
- //
- // System BIOS Minor Release
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, SystemBiosMinorRelease),
- (UINT8 *) &BiosInfo->BiosMinorRelease,
- 1
- );
-
- //
- // Embedded Controller Firmware Major Release
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, EmbeddedControllerFirmwareMajorRelease),
- (UINT8 *) &BiosInfo->BiosEmbeddedFirmwareMajorRelease,
- 1
- );
-
- //
- // Embedded Controller Firmware Minor Release
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE0, EmbeddedControllerFirmwareMinorRelease),
- (UINT8 *) &BiosInfo->BiosEmbeddedFirmwareMinorRelease,
- 1
- );
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 1 -- System Information.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType1 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_SYSTEM_MANUFACTURER_DATA *SystemInfo;
-
- Status = EFI_SUCCESS;
- SystemInfo = NULL;
-
- SystemInfo = (EFI_MISC_SYSTEM_MANUFACTURER_DATA *) RecordData;
-
- //
- // System Manufacturer
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE1, Manufacturer),
- &(SystemInfo->SystemManufacturer),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // System Product Name
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE1, ProductName),
- &(SystemInfo->SystemProductName),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // System Version
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE1, Version),
- &(SystemInfo->SystemVersion),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // System Serial Number
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE1, SerialNumber),
- &(SystemInfo->SystemSerialNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Uuid
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE1, Uuid),
- &SystemInfo->SystemUuid,
- 16
- );
-
- //
- // Wakeup Type
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE1, WakeUpType),
- &SystemInfo->SystemWakeupType,
- 1
- );
-
- //
- // System SKU Number
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE1, SKUNumber),
- &(SystemInfo->SystemSKUNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // System Family
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE1, Family),
- &(SystemInfo->SystemFamily),
- 2 // 64 * sizeof(CHAR16)
- );
-
- return Status;
-}
-
-/**
- Field Filling Function for record type 2 -- Base Board Manufacture.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType2 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_BASE_BOARD_MANUFACTURER_DATA *Bbm;
- Status = EFI_SUCCESS;
- Bbm = (EFI_MISC_BASE_BOARD_MANUFACTURER_DATA *) RecordData;
-
- //
- // Manufacturer
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE2, Manufacturer),
- &(Bbm->BaseBoardManufacturer),
- 2
- );
-
- //
- // Product
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE2, ProductName),
- &(Bbm->BaseBoardProductName),
- 2
- );
-
- //
- // Version
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE2, Version),
- &(Bbm->BaseBoardVersion),
- 2
- );
-
- //
- // Serial Number
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE2, SerialNumber),
- &(Bbm->BaseBoardSerialNumber),
- 2
- );
-
- //
- // Asset Tag
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE2, AssetTag),
- &(Bbm->BaseBoardAssetTag),
- 2
- );
-
- //
- // Location in Chassis
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE2, LocationInChassis),
- &(Bbm->BaseBoardChassisLocation),
- 2
- );
-
- //
- // Feature Flags
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE2, FeatureFlag),
- &Bbm->BaseBoardFeatureFlags,
- 1
- );
-
- //
- // Board Type
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE2, BoardType)) = (UINT8) Bbm->BaseBoardType;
-
- //
- // Chassis Handle
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE2, ChassisHandle),
- 3, // SMBIOS type 3 - System Enclosure or Chassis
- &Bbm->BaseBoardChassisLink,
- &gEfiMiscSubClassGuid
- );
-
- //
- // Number of Contained Object Handles
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE2, NumberOfContainedObjectHandles)) = (UINT8) Bbm->BaseBoardNumberLinks;
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 3 -
- - System Enclosure or Chassis.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType3 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_CHASSIS_MANUFACTURER_DATA *Ec;
- EFI_MISC_ELEMENTS *Element;
- UINT16 Index;
- UINT8 ContainedElementType;
- Status = EFI_SUCCESS;
- Ec = (EFI_MISC_CHASSIS_MANUFACTURER_DATA *) RecordData;
-
- //
- // Chassis Type
- //
- *(UINT8*)((UINT8 *) (StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, Type))
- = (UINT8) (Ec->ChassisType.ChassisType | Ec->ChassisType.ChassisLockPresent << 7);
-
-
- //
- // Chassis Bootup State
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE3, BootupState),
- &Ec->ChassisBootupState,
- 1
- );
-
- //
- // Chassis Power Supply State
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE3, PowerSupplyState),
- &Ec->ChassisPowerSupplyState,
- 1
- );
-
- //
- // Chassis Thermal State
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE3, ThermalState),
- &Ec->ChassisThermalState,
- 1
- );
-
- //
- // Chassis Security State
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE3, SecurityStatus),
- &Ec->ChassisSecurityState,
- 1
- );
-
- //
- // Chassis Oem Defined
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE3, OemDefined),
- &Ec->ChassisOemDefined,
- 4
- );
-
- //
- // Chassis Height
- //
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, Height))
- = (UINT8)Ec->ChassisHeight;
-
- //
- // Chassis Number Power Cords
- //
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, NumberofPowerCords))
- = (UINT8)Ec->ChassisNumberPowerCords;
-
- //
- // Chassis Element Count
- //
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElementCount))
- = (UINT8)Ec->ChassisElementCount;
-
- if(Ec->ChassisElementCount > 0) {
- //
- // Element Record Length
- // Current solution covers first 3 bytes; user can extend to meet its requirements.
- //
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElementRecordLength))
- = (UINT8)sizeof(CONTAINED_ELEMENT);
-
- //
- // Update the structure's length and StructureSize
- //
- StructureNode->Structure->Length = (UINT8)(StructureNode->Structure->Length +
- Ec->ChassisElementCount * sizeof(CONTAINED_ELEMENT));
- Status = SmbiosEnlargeStructureBuffer (
- StructureNode,
- StructureNode->Structure->Length,
- StructureNode->StructureSize,
- StructureNode->StructureSize + Ec->ChassisElementCount * sizeof(CONTAINED_ELEMENT)
- );
- if (EFI_ERROR (Status)) {
- return Status;
- }
-
- //
- // Contained Elements
- //
- for (Index=0, Element = &Ec->ChassisElements;
- Index < Ec->ChassisElementCount;
- Index += 1, Element ++) {
-
- //
- // ContainedElementType
- //
- ContainedElementType = (UINT8)((Element->ChassisElementType.RecordType == 1)
- ? (UINT8)(Element->ChassisElementType.RecordType << 7 | Element->ChassisElementType.Type)
- : (UINT8)(Element->ChassisBaseBoard));
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElements) +
- Index * sizeof(CONTAINED_ELEMENT) +
- OFFSET_OF(CONTAINED_ELEMENT,ContainedElementType))
- = ContainedElementType;
-
- //
- // ContainedElementMinimum
- //
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElements) +
- Index * sizeof(CONTAINED_ELEMENT) +
- OFFSET_OF(CONTAINED_ELEMENT,ContainedElementMinimum))
- = (UINT8)Element->ChassisElementMinimum;
-
- //
- // ContainedElementMaximum
- //
- *(UINT8*)((UINT8*)(StructureNode->Structure) +
- OFFSET_OF (SMBIOS_TABLE_TYPE3, ContainedElements) +
- Index * sizeof(CONTAINED_ELEMENT) +
- OFFSET_OF(CONTAINED_ELEMENT,ContainedElementMaximum))
- = (UINT8)Element->ChassisElementMaximum;
- }
- }
-
- //
- // Move the filling of following four String fields after Contained Elements
- // because they would break SMBIOS table.
- // Chassis Manufacturer
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE3, Manufacturer),
- &(Ec->ChassisManufacturer),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Chassis Version
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE3, Version),
- &(Ec->ChassisVersion),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Chassis Serial Number
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE3, SerialNumber),
- &(Ec->ChassisSerialNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Chassis Asset Tag
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE3, AssetTag),
- &(Ec->ChassisAssetTag),
- 2 // 64 * sizeof(CHAR16)
- );
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 8 -- Port Connector.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType8 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *Picd;
-
- Status = EFI_SUCCESS;
- Picd = (EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData;
-
- //
- // Internal Connector Designator
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE8, InternalReferenceDesignator),
- &(Picd->PortInternalConnectorDesignator),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Internal Connector Type
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE8, InternalConnectorType)) = (UINT8) Picd->PortInternalConnectorType;
-
- //
- // External Connector Designator
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE8, ExternalReferenceDesignator),
- &(Picd->PortExternalConnectorDesignator),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Internal Connector Type
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE8, ExternalConnectorType)) = (UINT8) Picd->PortExternalConnectorType;
-
- //
- // Internal Connector Type
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE8, PortType)) = (UINT8) Picd->PortType;
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 9 -- System slot.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType9 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA *Slot;
-
- Status = EFI_SUCCESS;
- Slot = (EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA *) RecordData;
-
- //
- // Slot Designation
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE9, SlotDesignation),
- &(Slot->SlotDesignation),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Slot Type
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE9, SlotType),
- &Slot->SlotType,
- 1
- );
-
- //
- // Slot Data Bus Width
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE9, SlotDataBusWidth),
- &Slot->SlotDataBusWidth,
- 1
- );
-
- //
- // Slot Usage
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE9, CurrentUsage),
- &Slot->SlotUsage,
- 1
- );
-
- //
- // Slot Length
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE9, SlotLength),
- &Slot->SlotLength,
- 1
- );
-
- //
- // Slot Id
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE9, SlotID),
- &Slot->SlotId,
- 2
- );
-
- //
- // Slot Characteristics
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE9, SlotCharacteristics1),
- &Slot->SlotCharacteristics,
- 2
- );
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 10 - Onboard Device.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType10 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_ONBOARD_DEVICE_DATA *OnboardDevice;
- UINTN NumberOfDevices;
- UINTN Index;
- UINT8 StatusAndType;
-
- Status = EFI_SUCCESS;
- OnboardDevice = (EFI_MISC_ONBOARD_DEVICE_DATA *) RecordData;
-
- NumberOfDevices = (StructureNode->Structure->Length - 4) / 2;
- for (Index = 0; Index < NumberOfDevices; Index += 1) {
- //
- // OnBoard Device Description
- //
- SmbiosFldString (
- StructureNode,
- (UINT32) (OFFSET_OF (SMBIOS_TABLE_TYPE10, Device) + 1 + (2 * Index)),
- &(OnboardDevice->OnBoardDeviceDescription),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Status & Type: Bit 7 Devicen Status, Bits 6:0 Type of Device
- //
- StatusAndType = (UINT8) OnboardDevice->OnBoardDeviceStatus.DeviceType;
- if (OnboardDevice->OnBoardDeviceStatus.DeviceEnabled != 0) {
- StatusAndType |= 0x80;
- } else {
- StatusAndType &= 0x7F;
- }
-
- * (UINT8 *) ((UINT8 *) (StructureNode->Structure) + (OFFSET_OF (SMBIOS_TABLE_TYPE10, Device) + (2 * Index))) = StatusAndType;
- }
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 11 - OEM Strings.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType11 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_OEM_STRING_DATA *OemString;
-
- OemString = (EFI_MISC_OEM_STRING_DATA *)RecordData;
- //
- // OEM String data
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE11, StringCount),
- &(OemString->OemStringRef[0]),
- 2
- );
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 12 - System Options.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType12 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_SYSTEM_OPTION_STRING_DATA *Sos;
- UINTN NumberOfInstallableLanguages;
- UINTN Index;
-
- Status = EFI_SUCCESS;
- Sos = (EFI_MISC_SYSTEM_OPTION_STRING_DATA *) RecordData;
-
- //
- // As MiscDataHub spec defines,
- // NumberOfInstallableLanguages should retrieve from Type 13.
- //
- NumberOfInstallableLanguages = (StructureNode->Structure->Length - 4);
- for (Index = 0; Index < NumberOfInstallableLanguages; Index += 1) {
- //
- // OnBoard Device Description
- //
- SmbiosFldString (
- StructureNode,
- (UINT32) (OFFSET_OF (SMBIOS_TABLE_TYPE12, StringCount) + (Index)),
- &(Sos->SystemOptionStringRef[Index]),
- 2
- );
- }
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 13 - BIOS Language.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType13 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA *InstallableLanguage;
-
- InstallableLanguage = (EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA *) RecordData;
-
- //
- // Number Of Installable Languages
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE13, InstallableLanguages)) = (UINT8) (InstallableLanguage->NumberOfInstallableLanguages);
-
- //
- // Language Flags
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE13, Flags),
- &InstallableLanguage->LanguageFlags,
- 1
- );
-
- //
- // Current Language Number
- // It's the index of multiple languages. Languages are filled by SmbiosFldMiscType14.
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE13, CurrentLanguages),
- &InstallableLanguage->CurrentLanguageNumber,
- 1
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 14 - System Language String
- Current solution assumes that EFI_MISC_SYSTEM_LANGUAGE_STRINGs are logged with
- their LanguageId having ascending orders.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType14 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- UINT16 CurrentLanguageNumber;
- EFI_MISC_SYSTEM_LANGUAGE_STRING *LanguageString;
-
- LanguageString = (EFI_MISC_SYSTEM_LANGUAGE_STRING *) RecordData;
-
- //
- // Backup CurrentLanguage
- //
- CopyMem (
- &CurrentLanguageNumber,
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE13, CurrentLanguages),
- 1
- );
-
- //
- // Clear the field so that SmbiosFldString can be reused
- //
- *(UINT8 *)((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE13, CurrentLanguages)) = 0;
-
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE13, CurrentLanguages),
- &(LanguageString->SystemLanguageString),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Restore CurrentLanguage
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE13, CurrentLanguages),
- &CurrentLanguageNumber,
- 1
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 15 -- System Event Log.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType15 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_SYSTEM_EVENT_LOG_DATA *SystemEventLog;
-
- Status = EFI_SUCCESS;
- SystemEventLog = NULL;
-
- SystemEventLog = (EFI_MISC_SYSTEM_EVENT_LOG_DATA *) RecordData;
-
- //
- // Log Area Length
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LogAreaLength),
- &(SystemEventLog->LogAreaLength),
- 2
- );
-
- //
- // Log Header Start Offset
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LogHeaderStartOffset),
- &(SystemEventLog->LogHeaderStartOffset),
- 2
- );
-
- //
- // Log Data Start Offset
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LogDataStartOffset),
- &(SystemEventLog->LogDataStartOffset),
- 2
- );
-
- //
- // Access Method
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, AccessMethod),
- &(SystemEventLog->AccessMethod),
- 1
- );
-
- //
- // Log Status
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LogStatus),
- &(SystemEventLog->LogStatus),
- 1
- );
-
- //
- // Log Change Token
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LogChangeToken),
- &(SystemEventLog->LogChangeToken),
- 4
- );
-
- //
- // Access Method Address
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, AccessMethodAddress),
- &(SystemEventLog->AccessMethodAddress),
- 4
- );
-
- //
- // Log Header Format
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LogHeaderFormat),
- &(SystemEventLog->LogHeaderFormat),
- 1
- );
-
- //
- // Number of Supported Log Type Descriptors
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, NumberOfSupportedLogTypeDescriptors),
- &(SystemEventLog->NumberOfSupportedLogType),
- 1
- );
-
- //
- // Length of each Log Type Descriptor
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE15, LengthOfLogTypeDescriptor),
- &(SystemEventLog->LengthOfLogDescriptor),
- 1
- );
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 21 - Pointing Device.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType21 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_POINTING_DEVICE_TYPE_DATA *PointingDeviceData;
-
- PointingDeviceData = (EFI_MISC_POINTING_DEVICE_TYPE_DATA *) RecordData;
-
- //
- // Pointing Device Type
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE21, Type)) = (UINT8) (PointingDeviceData->PointingDeviceType);
-
- //
- // Pointing Device Interface
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE21, Interface)) = (UINT8) (PointingDeviceData->PointingDeviceInterface);
-
- //
- // Number Pointing Device Buttons
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE21, NumberOfButtons)) = (UINT8) (PointingDeviceData->NumberPointingDeviceButtons);
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 22 - Portable Battery.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType22 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_PORTABLE_BATTERY *PortableBattery;
- STRING_REF Chemistry;
- PortableBattery = (EFI_MISC_PORTABLE_BATTERY *)RecordData;
-
- //
- // Location
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, Location),
- &(PortableBattery->Location),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // Manufacturer
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, Manufacturer),
- &(PortableBattery->Manufacturer),
- 2
- );
-
- //
- // ManufactureDate
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, ManufactureDate),
- &(PortableBattery->ManufactureDate),
- 2
- );
-
- //
- // SerialNumber
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, SerialNumber),
- &(PortableBattery->SerialNumber),
- 2
- );
-
- //
- // DeviceName
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, DeviceName),
- &(PortableBattery->DeviceName),
- 2
- );
-
- //
- // DeviceChemistry
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, DeviceChemistry),
- &PortableBattery->DeviceChemistry,
- 1
- );
-
- //
- // DesignCapacity
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, DeviceCapacity),
- &PortableBattery->DesignCapacity,
- 2
- );
-
- //
- // DesignVoltage
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, DesignVoltage),
- &PortableBattery->DesignVoltage,
- 2
- );
-
- //
- // SBDSVersionNumber
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, SBDSVersionNumber),
- &(PortableBattery->SBDSVersionNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // MaximumError
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, MaximumErrorInBatteryData),
- &PortableBattery->MaximumError,
- 1
- );
-
- //
- // SBDSSerialNumber
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, SBDSSerialNumber),
- &PortableBattery->SBDSSerialNumber,
- 2
- );
-
- //
- // SBDSManufactureDate
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, SBDSManufactureDate),
- &PortableBattery->SBDSManufactureDate,
- 2
- );
-
- //
- // Avoid alignment issue on IPF
- //
- CopyMem (
- &Chemistry,
- &PortableBattery->SBDSDeviceChemistry,
- 2
- );
-
- //
- // SBDSDeviceChemistry
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE22, SBDSDeviceChemistry),
- &Chemistry,
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // DesignCapacityMultiplier
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, DesignCapacityMultiplier),
- &PortableBattery->DesignCapacityMultiplier,
- 1
- );
-
- //
- // OEMSpecific
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE22, OEMSpecific),
- &PortableBattery->OEMSpecific,
- 4
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 23 - System Reset.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType23 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_RESET_CAPABILITIES_DATA *SystemResetData;
-
- SystemResetData = (EFI_MISC_RESET_CAPABILITIES_DATA *) RecordData;
-
- //
- // Reset Capabilities
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE23, Capabilities),
- &(SystemResetData->ResetCapabilities),
- 1
- );
-
- //
- // Reset Count
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE23, ResetCount),
- &(SystemResetData->ResetCount),
- 2
- );
-
- //
- // Reset Limit
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE23, ResetLimit),
- &(SystemResetData->ResetLimit),
- 2
- );
-
- //
- // Reset Timer Interval
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE23, TimerInterval),
- &(SystemResetData->ResetTimerInterval),
- 2
- );
-
- //
- // Reset Timeout
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE23, Timeout),
- &(SystemResetData->ResetTimeout),
- 2
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 24 - Hardware Security.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType24 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA *HardwareSecurity;
-
- HardwareSecurity = (EFI_MISC_HARDWARE_SECURITY_SETTINGS_DATA *)RecordData;
-
- //
- // Hardware Security Settings
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE24, HardwareSecuritySettings),
- &HardwareSecurity->HardwareSecuritySettings,
- 1
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 25 - System Power Controls.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType25 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_SCHEDULED_POWER_ON_MONTH *PowerOnMonth;
-
- PowerOnMonth = (EFI_MISC_SCHEDULED_POWER_ON_MONTH *)RecordData;
-
- //
- // ScheduledPoweronMonth
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE25, NextScheduledPowerOnMonth),
- &PowerOnMonth->ScheduledPoweronMonth,
- 1
- );
-
- //
- // ScheduledPoweronDayOfMonth
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE25, NextScheduledPowerOnDayOfMonth),
- &PowerOnMonth->ScheduledPoweronDayOfMonth,
- 1
- );
-
- //
- // ScheduledPoweronHour
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE25, NextScheduledPowerOnHour),
- &PowerOnMonth->ScheduledPoweronHour,
- 1
- );
-
- //
- // ScheduledPoweronMinute
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE25, NextScheduledPowerOnMinute),
- &PowerOnMonth->ScheduledPoweronMinute,
- 1
- );
-
- //
- // ScheduledPoweronSecond
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE25, NextScheduledPowerOnSecond),
- &PowerOnMonth->ScheduledPoweronSecond,
- 1
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 26 - Voltage Probe.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType26 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_VOLTAGE_PROBE_DESCRIPTION *VoltageProbe;
-
- VoltageProbe = (EFI_MISC_VOLTAGE_PROBE_DESCRIPTION *)RecordData;
-
- //
- // VoltageProbe Description
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE26, Description),
- &(VoltageProbe->VoltageProbeDescription),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // VoltageProbeLocation
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, LocationAndStatus),
- &VoltageProbe->VoltageProbeLocation,
- 1
- );
-
- //
- // VoltageProbeMaximumValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, MaximumValue),
- &VoltageProbe->VoltageProbeMaximumValue,
- 2
- );
-
- //
- // VoltageProbeMinimumValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, MinimumValue),
- &VoltageProbe->VoltageProbeMinimumValue,
- 2
- );
-
- //
- // VoltageProbeResolution
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, Resolution),
- &VoltageProbe->VoltageProbeResolution,
- 2
- );
-
- //
- // VoltageProbeTolerance
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, Tolerance),
- &VoltageProbe->VoltageProbeTolerance,
- 2
- );
-
- //
- // VoltageProbeAccuracy
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, Accuracy),
- &VoltageProbe->VoltageProbeAccuracy,
- 2
- );
-
- //
- // VoltageProbeNominalValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, NominalValue),
- &VoltageProbe->VoltageProbeNominalValue,
- 2
- );
-
- //
- // VoltageProbeOemDefined
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE26, OEMDefined),
- &VoltageProbe->VoltageProbeOemDefined,
- 4
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 27 - Cooling Device.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType27 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_COOLING_DEVICE_TEMP_LINK *CoolingDevice;
-
- CoolingDevice = (EFI_MISC_COOLING_DEVICE_TEMP_LINK *)RecordData;
-
- //
- // Device Type
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE27, DeviceTypeAndStatus),
- &CoolingDevice->CoolingDeviceType,
- 1
- );
-
- //
- // Temperature Probe
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE27, TemperatureProbeHandle),
- 28, // SMBIOS type 28 - Temperature Probe
- &CoolingDevice->CoolingDeviceTemperatureLink,
- &gEfiMiscSubClassGuid
- );
-
- //
- // CoolingDeviceUnitGroup
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE27, CoolingUnitGroup),
- &CoolingDevice->CoolingDeviceUnitGroup,
- 1
- );
-
- //
- // CoolingDeviceUnitGroup
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE27, OEMDefined),
- &CoolingDevice->CoolingDeviceOemDefined,
- 4
- );
-
- //
- // CoolingDeviceNominalSpeed
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE27, NominalSpeed),
- &CoolingDevice->CoolingDeviceNominalSpeed,
- 2
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 28 -- Temperature Probe.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType28 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION *TemperatureProbe;
-
- TemperatureProbe = (EFI_MISC_TEMPERATURE_PROBE_DESCRIPTION *)RecordData;
-
- //
- // TemperatureProbeDescription
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE28, Description),
- &(TemperatureProbe->TemperatureProbeDescription),
- 2
- );
-
- //
- // TemperatureProbeLocation
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, LocationAndStatus),
- &TemperatureProbe->TemperatureProbeLocation,
- 1
- );
-
- //
- // TemperatureProbeMaximumValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, MaximumValue),
- &TemperatureProbe->TemperatureProbeMaximumValue,
- 2
- );
-
- //
- // TemperatureProbeMinimumValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, MinimumValue),
- &TemperatureProbe->TemperatureProbeMinimumValue,
- 2
- );
-
- //
- // TemperatureProbeResolution
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, Resolution),
- &TemperatureProbe->TemperatureProbeResolution,
- 2
- );
-
-
- //
- // TemperatureProbeTolerance
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, Tolerance),
- &TemperatureProbe->TemperatureProbeTolerance,
- 2
- );
-
- //
- // TemperatureProbeAccuracy
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, Accuracy),
- &TemperatureProbe->TemperatureProbeAccuracy,
- 2
- );
-
- //
- // TemperatureProbeNominalValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, NominalValue),
- &TemperatureProbe->TemperatureProbeNominalValue,
- 2
- );
-
- //
- // TemperatureProbeOemDefined
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE28, OEMDefined),
- &TemperatureProbe->TemperatureProbeOemDefined,
- 4
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 29 -- Electrical Current Probe.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType29 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION *ElectricalProbe;
-
- ElectricalProbe = (EFI_MISC_ELECTRICAL_CURRENT_PROBE_DESCRIPTION *)RecordData;
-
- //
- // ElectricalCurrentProbeDescription
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE29, Description),
- &(ElectricalProbe->ElectricalCurrentProbeDescription),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // ElectricalCurrentProbeLocation
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, LocationAndStatus),
- &ElectricalProbe->ElectricalCurrentProbeLocation,
- 1
- );
-
- //
- // ElectricalCurrentProbeMaximumValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, MaximumValue),
- &ElectricalProbe->ElectricalCurrentProbeMaximumValue,
- 2
- );
-
- //
- // ElectricalCurrentProbeMinimumValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, MinimumValue),
- &ElectricalProbe->ElectricalCurrentProbeMinimumValue,
- 2
- );
-
- //
- // ElectricalCurrentProbeResolution
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, Resolution),
- &ElectricalProbe->ElectricalCurrentProbeResolution,
- 2
- );
-
- //
- // ElectricalCurrentProbeTolerance
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, Tolerance),
- &ElectricalProbe->ElectricalCurrentProbeTolerance,
- 2
- );
-
- //
- // ElectricalCurrentProbeAccuracy
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, Accuracy),
- &ElectricalProbe->ElectricalCurrentProbeAccuracy,
- 2
- );
- //
- // ElectricalCurrentProbeNominalValue
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, NominalValue),
- &ElectricalProbe->ElectricalCurrentProbeNominalValue,
- 2
- );
-
- //
- // ElectricalCurrentProbeOemDefined
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE29, OEMDefined),
- &ElectricalProbe->ElectricalCurrentProbeOemDefined,
- 4
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 30 -- Out-of-Band Remote Access.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType30 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION *RemoteData;
-
- RemoteData = (EFI_MISC_REMOTE_ACCESS_MANUFACTURER_DESCRIPTION *)RecordData;
-
- //
- // ManufacturerNameDescription
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE30, ManufacturerName),
- &(RemoteData->RemoteAccessManufacturerNameDescription),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // RemoteAccessConnections
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE30, Connections),
- &RemoteData->RemoteAccessConnections,
- 1
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 32 -- System Boot Information.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType32 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- EFI_MISC_BOOT_INFORMATION_STATUS_DATA *BootInfo;
-
- Status = EFI_SUCCESS;
- BootInfo = (EFI_MISC_BOOT_INFORMATION_STATUS_DATA *) RecordData;
-
- //
- // Set reserved bytes
- //
- ZeroMem ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE32, Reserved), 6);
-
- //
- // Set BootInformation Status
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE32, BootStatus),
- &BootInfo->BootInformationStatus,
- 1
- );
-
- //
- // Set Additional Data
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE32, BootStatus) + 1,
- &BootInfo->BootInformationData,
- 9
- );
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 34 -- Management Device.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType34 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION *ManagementDevice;
-
- ManagementDevice = (EFI_MISC_MANAGEMENT_DEVICE_DESCRIPTION *)RecordData;
-
- //
- // ManagementDeviceDescription
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE34, Description),
- &(ManagementDevice->ManagementDeviceDescription),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // ManagementDeviceType
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE34, Type),
- &ManagementDevice->ManagementDeviceType,
- 1
- );
-
- //
- // ManagementDeviceAddress
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE34, Address),
- &ManagementDevice->ManagementDeviceAddress,
- 4
- );
-
- //
- // ManagementDeviceAddressType
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE34, AddressType),
- &ManagementDevice->ManagementDeviceAddressType,
- 1
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 35 -- Management Device Component.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType35 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION *ManagementDeviceComponent;
- EFI_INTER_LINK_DATA ManagementDeviceLink;
- EFI_INTER_LINK_DATA ManagementDeviceComponentLink;
- EFI_INTER_LINK_DATA ManagementDeviceThresholdLink;
-
- ManagementDeviceComponent = (EFI_MISC_MANAGEMENT_DEVICE_COMPONENT_DESCRIPTION *)RecordData;
- CopyMem (
- &ManagementDeviceLink,
- &ManagementDeviceComponent->ManagementDeviceLink,
- sizeof (EFI_INTER_LINK_DATA)
- );
- CopyMem (
- &ManagementDeviceComponentLink,
- &ManagementDeviceComponent->ManagementDeviceComponentLink,
- sizeof (EFI_INTER_LINK_DATA)
- );
- CopyMem (&ManagementDeviceThresholdLink,
- &ManagementDeviceComponent->ManagementDeviceThresholdLink,
- sizeof (EFI_INTER_LINK_DATA)
- );
-
- //
- // ManagementDeviceComponentDescription
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE35, Description),
- &ManagementDeviceComponent->ManagementDeviceComponentDescription,
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // ManagementDeviceLink
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE35, ManagementDeviceHandle),
- 34, // SMBIOS type 34 - Management Device
- &ManagementDeviceLink,
- &gEfiMiscSubClassGuid
- );
-
- //
- // ManagementDeviceComponentLink
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE35, ComponentHandle),
- ManagementDeviceComponent->ComponentType, // SMBIOS type, according to SMBIOS spec, it can be Type 26, 27, 28, 29
- &ManagementDeviceComponentLink,
- &gEfiMiscSubClassGuid
- );
-
- //
- // ManagementDeviceThresholdLink
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE35, ThresholdHandle),
- 36, // SMBIOS type 36 - Management Device Threshold Data
- &ManagementDeviceThresholdLink,
- &gEfiMiscSubClassGuid
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 36 -- Management Device Threshold.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType36 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD *DeviceThreshold;
-
- DeviceThreshold = (EFI_MISC_MANAGEMENT_DEVICE_THRESHOLD *)RecordData;
-
- //
- // LowerThresNonCritical
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE36, LowerThresholdNonCritical),
- &DeviceThreshold->LowerThresNonCritical,
- 2
- );
-
- //
- // UpperThresNonCritical
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE36, UpperThresholdNonCritical),
- &DeviceThreshold->UpperThresNonCritical,
- 2
- );
-
- //
- // LowerThresCritical
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE36, LowerThresholdCritical),
- &DeviceThreshold->LowerThresCritical,
- 2
- );
-
- //
- // UpperThresCritical
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE36, UpperThresholdCritical),
- &DeviceThreshold->UpperThresCritical,
- 2
- );
-
- //
- // LowerThresNonRecover
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE36, LowerThresholdNonRecoverable),
- &DeviceThreshold->LowerThresNonRecover,
- 2
- );
-
- //
- // UpperThresNonRecover
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE36, UpperThresholdNonRecoverable),
- &DeviceThreshold->UpperThresNonRecover,
- 2
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 38 -- IPMI device info.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType38 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_IPMI_INTERFACE_TYPE_DATA *IpmiInfo;
-
- IpmiInfo = (EFI_MISC_IPMI_INTERFACE_TYPE_DATA *) RecordData;
-
- //
- // Interface Type
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE38, InterfaceType)) = (UINT8) (IpmiInfo->IpmiInterfaceType);
-
- //
- // IPMI specification revision
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE38, IPMISpecificationRevision)) =
- (UINT8) ((IpmiInfo->IpmiSpecificationRevision.IpmiSpecLeastSignificantDigit) + \
- (IpmiInfo->IpmiSpecificationRevision.IpmiSpecMostSignificantDigit << 4));
-
- //
- // I2C slave address
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE38, I2CSlaveAddress)) = (UINT8) (IpmiInfo->IpmiI2CSlaveAddress);
-
- //
- // NV storage device address
- //
- *(UINT8 *) ((UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE38, NVStorageDeviceAddress)) = (UINT8) (IpmiInfo->IpmiNvDeviceAddress);
-
- //
- // Base address
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE38, BaseAddress),
- &IpmiInfo->IpmiBaseAddress,
- 8
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 39 -- Power supply.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType39 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_MISC_SYSTEM_POWER_SUPPLY *PowerSupply;
-
- PowerSupply = (EFI_MISC_SYSTEM_POWER_SUPPLY *)RecordData;
-
- //
- // PowerUnitGroup
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE39, PowerUnitGroup),
- &PowerSupply->PowerUnitGroup,
- 1
- );
-
- //
- // PowerSupplyLocation
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, Location),
- &(PowerSupply->PowerSupplyLocation),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplyDeviceName
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, DeviceName),
- &(PowerSupply->PowerSupplyDeviceName),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplyManufacturer
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, Manufacturer),
- &(PowerSupply->PowerSupplyManufacturer),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplySerialNumber
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, SerialNumber),
- &(PowerSupply->PowerSupplySerialNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplyAssetTagNumber
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, AssetTagNumber),
- &(PowerSupply->PowerSupplyAssetTagNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplyModelPartNumber
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, ModelPartNumber),
- &(PowerSupply->PowerSupplyModelPartNumber),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplyRevisionLevel
- //
- SmbiosFldString (
- StructureNode,
- OFFSET_OF (SMBIOS_TABLE_TYPE39, RevisionLevel),
- &(PowerSupply->PowerSupplyRevisionLevel),
- 2 // 64 * sizeof(CHAR16)
- );
-
- //
- // PowerSupplyMaxPowerCapacity
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE39, MaxPowerCapacity),
- &PowerSupply->PowerSupplyMaxPowerCapacity,
- 2
- );
-
- //
- // PowerSupplyCharacteristics
- //
- CopyMem (
- (UINT8 *) (StructureNode->Structure) + OFFSET_OF (SMBIOS_TABLE_TYPE39, PowerSupplyCharacteristics),
- &PowerSupply->PowerSupplyCharacteristics,
- 2
- );
-
- //
- // PowerSupplyInputVoltageProbeLink
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE39, InputVoltageProbeHandle),
- 26, // SMBIOS type 26 - Voltage Probe
- &PowerSupply->PowerSupplyInputVoltageProbeLink,
- &gEfiMiscSubClassGuid
- );
-
- //
- // PowerSupplyCoolingDeviceLink
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE39, CoolingDeviceHandle),
- 27, // SMBIOS type 27 - Cooling Device
- &PowerSupply->PowerSupplyCoolingDeviceLink,
- &gEfiMiscSubClassGuid
- );
-
- //
- // PowerSupplyInputCurrentProbeLink
- //
- SmbiosFldInterLink (
- StructureNode,
- (UINT16) OFFSET_OF (SMBIOS_TABLE_TYPE39, InputCurrentProbeHandle),
- 29, // SMBIOS type 29 - Electrical Current Probe
- &PowerSupply->PowerSupplyInputCurrentProbeLink,
- &gEfiMiscSubClassGuid
- );
-
- return EFI_SUCCESS;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 0x80-0xFF -- OEM.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscTypeOEM (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- EFI_STATUS Status;
- UINT8 *NewRecordData;
- UINT32 IncrementDataSize;
- UINT16 Handle;
- INT8 Result;
- UINT32 StructureSize;
- UINT8 CountOfString;
-
- Status = EFI_SUCCESS;
- NewRecordData = NULL;
-
- //
- // Check if OEM structure has included 2 trailing 0s in data record, if not,
- // we append them at the end to ensure OEM structure is always correct with 2 trailing 0s.
- //
- Result = SmbiosCheckTrailingZero (RecordData, RecordDataSize);
-
- if (Result != 0) {
- DEBUG ((EFI_D_ERROR, "OEM SMBIOS type %x is not valid!!\n", ((SMBIOS_STRUCTURE *) RecordData) -> Type));
- if (Result == -1) {
- //
- // No 2 trailing 0s exist
- //
- DEBUG ((EFI_D_ERROR, "OEM SMBIOS type has NO 2 trailing 0s!!\n"));
- IncrementDataSize = 2;
- } else {
- //
- // Only 1 trailing 0 exist at the end
- //
- DEBUG ((EFI_D_ERROR, "OEM SMBIOS type has only 1 trailing 0!!\n"));
- IncrementDataSize = 1;
- }
- NewRecordData = AllocateZeroPool (RecordDataSize + IncrementDataSize);
- ASSERT (NewRecordData != NULL);
- CopyMem (NewRecordData, RecordData, RecordDataSize);
- RecordData = NewRecordData;
- RecordDataSize += IncrementDataSize;
- }
-
- Status = GetSmbiosStructureSize (StructureNode->Structure, &StructureSize, &CountOfString);
- ASSERT_EFI_ERROR (Status);
-
- if (StructureSize < RecordDataSize) {
- //
- // Create new SMBIOS table entry
- //
- SmbiosUpdateStructureBuffer (
- StructureNode,
- RecordData
- );
- } else {
- //
- // Copy the entire data (including the Smbios structure header),
- // but preserve the handle that is already allocated.
- //
- Handle = StructureNode->Structure->Handle;
- CopyMem (
- StructureNode->Structure,
- RecordData,
- RecordDataSize
- );
- StructureNode->Structure->Handle = Handle;
- StructureNode->StructureSize = RecordDataSize;
- }
-
- if (NewRecordData != NULL) {
- FreePool (NewRecordData);
- }
-
- return Status;
-}
-
-/**
- Field Filling Function for Misc SubClass record type 127 - End-of-Table.
-
- @param StructureNode Pointer to SMBIOS_STRUCTURE_NODE which is current processed.
- @param Offset Offset of SMBIOS record which RecordData will be filled.
- @param RecordData RecordData buffer will be filled.
- @param RecordDataSize The size of RecordData buffer.
-
- @retval EFI_SUCCESS Success fill RecordData into SMBIOS's record buffer.
-**/
-EFI_STATUS
-SmbiosFldMiscType127 (
- IN OUT SMBIOS_STRUCTURE_NODE *StructureNode,
- IN UINT32 Offset,
- IN VOID *RecordData,
- IN UINT32 RecordDataSize
- )
-{
- return EFI_SUCCESS;
-}