alder_lake_bios/Insyde/InsydeModulePkg/Universal/MultiConfigUpdateDxe/MultiConfigUpdateDxe.h

96 lines
2.7 KiB
C

/** @file
Provide support functions header for MultiConfig Update.
;******************************************************************************
;* Copyright (c) 2012 - 2014, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _OEM_MULTI_CONFIG_SMBIOS_H_
#define _OEM_MULTI_CONFIG_SMBIOS_H_
#define EFI_SMBIOS_ENTRY_SIGNATURE SIGNATURE_32 ('S', 'r', 'e', 'c')
#define SMBIOS_INSTANCE_SIGNATURE SIGNATURE_32 ('S', 'B', 'i', 's')
#define SMBIOS_INSTANCE_FROM_THIS(this) CR (this, SMBIOS_INSTANCE, Smbios, SMBIOS_INSTANCE_SIGNATURE)
#define SMBIOS_ENTRY_FROM_LINK(link) CR (link, EFI_SMBIOS_ENTRY, Link, EFI_SMBIOS_ENTRY_SIGNATURE)
#define SMBIOS_REMOVE_TYPE 0x7E
#define SMBIOS_DMI_END_TYPE 0xFF
#define SMBIOS_DMI_VALID 0xFF
#define SMBIOS_MC_UPDATE_SMBIOS 0x03
#define MC_VALID_SKUID 0x00
#define MC_UPDATE_SMBIOS_MAX_LENGTH 0xFF
#define MC_SMBIOS_HANDLE_PI_RESERVED 0xFFFE
typedef struct {
UINT16 Version;
UINT16 HeaderSize;
UINTN RecordSize;
EFI_HANDLE ProducerHandle;
UINTN NumberOfStrings;
} EFI_SMBIOS_RECORD_HEADER;
typedef struct {
UINT32 Signature;
LIST_ENTRY Link;
EFI_SMBIOS_RECORD_HEADER *RecordHeader;
UINTN RecordSize;
} EFI_SMBIOS_ENTRY;
#pragma pack(1)
typedef enum {
SMBIOS_REMOVE_ATTR,
SMBIOS_BYTE_ATTR,
SMBIOS_WORD_ATTR,
SMBIOS_DWORD_ATTR,
SMBIOS_STRING_ATTR,
SMBIOS_BLOCK_ATTR,
SMBIOS_UUID_ATTR,
} MC_SMBIOS_DATA_ATTR;
//
// --------------------
// | MC_SMBIOS_HEADER |
// |--------------------|
// | MC_SMBIOS_SETTING |
// |--------------------|
// | MC_SMBIOS_SETTING |
// |--------------------|
// | : |
// | : |
//
typedef struct {
UINT8 Type;
UINT8 Instance;
UINT16 SmbiosOffset;
UINT8 DataAttr;
UINT32 DataSize;
} MC_SMBIOS_SETTING_L;
typedef struct {
UINT8 Type;
UINT8 Instance;
UINT16 SmbiosOffset;
UINT8 DataAttr;
UINT32 DataSize;
UINT8 Data[1];
} MC_SMBIOS_SETTING;
typedef struct {
UINT16 TotalItem;
MC_SMBIOS_SETTING FirstData;
} MC_SMBIOS_HEADER;
#pragma pack()
#endif