96 lines
2.7 KiB
C
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
|
|
|