diff options
Diffstat (limited to 'MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h')
| -rw-r--r-- | MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h | 452 |
1 files changed, 226 insertions, 226 deletions
diff --git a/MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h b/MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h index bac8fd59bf..1f0b012708 100644 --- a/MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h +++ b/MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h @@ -1,226 +1,226 @@ -/** @file
- Guid for Pcd DataBase Signature.
-
-Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef _PCD_DATABASE_SIGNATURE_GUID_H_
-#define _PCD_DATABASE_SIGNATURE_GUID_H_
-
-#define PCD_DATA_BASE_SIGNATURE_GUID \
-{ 0x3c7d193c, 0x682c, 0x4c14, { 0xa6, 0x8f, 0x55, 0x2d, 0xea, 0x4f, 0x43, 0x7e } }
-
-extern EFI_GUID gPcdDataBaseSignatureGuid;
-
-//
-// Common definitions
-//
-typedef UINT64 SKU_ID;
-
-#define PCD_TYPE_SHIFT 28
-
-#define PCD_TYPE_DATA (0x0U << PCD_TYPE_SHIFT)
-#define PCD_TYPE_HII (0x8U << PCD_TYPE_SHIFT)
-#define PCD_TYPE_VPD (0x4U << PCD_TYPE_SHIFT)
-#define PCD_TYPE_STRING (0x1U << PCD_TYPE_SHIFT)
-
-#define PCD_TYPE_ALL_SET (PCD_TYPE_DATA | PCD_TYPE_HII | PCD_TYPE_VPD | PCD_TYPE_STRING)
-
-#define PCD_DATUM_TYPE_SHIFT 24
-
-#define PCD_DATUM_TYPE_POINTER (0x0U << PCD_DATUM_TYPE_SHIFT)
-#define PCD_DATUM_TYPE_UINT8 (0x1U << PCD_DATUM_TYPE_SHIFT)
-#define PCD_DATUM_TYPE_UINT16 (0x2U << PCD_DATUM_TYPE_SHIFT)
-#define PCD_DATUM_TYPE_UINT32 (0x4U << PCD_DATUM_TYPE_SHIFT)
-#define PCD_DATUM_TYPE_UINT64 (0x8U << PCD_DATUM_TYPE_SHIFT)
-
-#define PCD_DATUM_TYPE_ALL_SET (PCD_DATUM_TYPE_POINTER | \
- PCD_DATUM_TYPE_UINT8 | \
- PCD_DATUM_TYPE_UINT16 | \
- PCD_DATUM_TYPE_UINT32 | \
- PCD_DATUM_TYPE_UINT64)
-
-#define PCD_DATUM_TYPE_SHIFT2 20
-
-#define PCD_DATUM_TYPE_UINT8_BOOLEAN (0x1U << PCD_DATUM_TYPE_SHIFT2)
-
-#define PCD_DATABASE_OFFSET_MASK (~(PCD_TYPE_ALL_SET | PCD_DATUM_TYPE_ALL_SET | PCD_DATUM_TYPE_UINT8_BOOLEAN))
-
-typedef struct {
- UINT32 ExTokenNumber;
- UINT16 TokenNumber; // Token Number for Dynamic-Ex PCD.
- UINT16 ExGuidIndex; // Index of GuidTable in units of GUID.
-} DYNAMICEX_MAPPING;
-
-typedef struct {
- UINT32 StringIndex; // Offset in String Table in units of UINT8.
- UINT32 DefaultValueOffset; // Offset of the Default Value.
- UINT16 GuidTableIndex; // Offset in Guid Table in units of GUID.
- UINT16 Offset; // Offset in Variable.
- UINT32 Attributes; // Variable attributes.
- UINT16 Property; // Variable property.
- UINT16 Reserved;
-} VARIABLE_HEAD;
-
-typedef struct {
- UINT32 Offset;
-} VPD_HEAD;
-
-typedef UINT32 STRING_HEAD;
-
-typedef UINT16 SIZE_INFO;
-
-typedef struct {
- UINT32 TokenSpaceCNameIndex; // Offset in String Table in units of UINT8.
- UINT32 PcdCNameIndex; // Offset in String Table in units of UINT8.
-} PCD_NAME_INDEX;
-
-typedef UINT32 TABLE_OFFSET;
-
-typedef struct {
- GUID Signature; // PcdDataBaseGuid.
- UINT32 BuildVersion;
- UINT32 Length; // Length of DEFAULT SKU PCD DB
- SKU_ID SystemSkuId; // Current SkuId value.
- UINT32 LengthForAllSkus; // Length of all SKU PCD DB
- UINT32 UninitDataBaseSize; // Total size for PCD those default value with 0.
- TABLE_OFFSET LocalTokenNumberTableOffset;
- TABLE_OFFSET ExMapTableOffset;
- TABLE_OFFSET GuidTableOffset;
- TABLE_OFFSET StringTableOffset;
- TABLE_OFFSET SizeTableOffset;
- TABLE_OFFSET SkuIdTableOffset;
- TABLE_OFFSET PcdNameTableOffset;
- UINT16 LocalTokenCount; // LOCAL_TOKEN_NUMBER for all.
- UINT16 ExTokenCount; // EX_TOKEN_NUMBER for DynamicEx.
- UINT16 GuidTableCount; // The Number of Guid in GuidTable.
- UINT8 Pad[6]; // Pad bytes to satisfy the alignment.
-
- //
- // Default initialized external PCD database binary structure
- //
- // Padding is needed to keep necessary alignment
- //
- // SKU_ID SkuIdTable[]; // SkuIds system supports.
- // UINT64 ValueUint64[];
- // UINT32 ValueUint32[];
- // VPD_HEAD VpdHead[]; // VPD Offset
- // DYNAMICEX_MAPPING ExMapTable[]; // DynamicEx PCD mapped to LocalIndex in LocalTokenNumberTable. It can be accessed by the ExMapTableOffset.
- // UINT32 LocalTokenNumberTable[]; // Offset | DataType | PCD Type. It can be accessed by LocalTokenNumberTableOffset.
- // GUID GuidTable[]; // GUID for DynamicEx and HII PCD variable Guid. It can be accessed by the GuidTableOffset.
- // STRING_HEAD StringHead[]; // String PCD
- // PCD_NAME_INDEX PcdNameTable[]; // PCD name index info. It can be accessed by the PcdNameTableOffset.
- // VARIABLE_HEAD VariableHead[]; // HII PCD
- // UINT8 StringTable[]; // String for String PCD value and HII PCD Variable Name. It can be accessed by StringTableOffset.
- // SIZE_INFO SizeTable[]; // MaxSize and CurSize for String PCD. It can be accessed by SizeTableOffset.
- // UINT16 ValueUint16[];
- // UINT8 ValueUint8[];
- // BOOLEAN ValueBoolean[];
-} PCD_DATABASE_INIT;
-
-//
-// PEI and DXE Pcd driver use the same PCD database
-//
-typedef PCD_DATABASE_INIT PEI_PCD_DATABASE;
-typedef PCD_DATABASE_INIT DXE_PCD_DATABASE;
-
-typedef struct {
- PEI_PCD_DATABASE *PeiDb;
- DXE_PCD_DATABASE *DxeDb;
-} PCD_DATABASE;
-
-typedef struct {
- UINT32 Offset : 24;
- UINT32 Value : 8;
-} PCD_DATA_DELTA;
-
-typedef struct {
- SKU_ID SkuId;
- UINT16 DefaultId;
- UINT8 Reserved[6];
-} PCD_DEFAULT_INFO;
-
-typedef struct {
- //
- // Full size, it must be at 8 byte alignment.
- //
- UINT32 DataSize;
- //
- // HeaderSize includes HeaderSize fields and DefaultInfo arrays
- //
- UINT32 HeaderSize;
- //
- // DefaultInfo arrays those have the same default setting.
- //
- PCD_DEFAULT_INFO DefaultInfo[1];
- //
- // Default data is stored as variable storage or the array of DATA_DELTA.
- //
-} PCD_DEFAULT_DATA;
-
-#define PCD_NV_STORE_DEFAULT_BUFFER_SIGNATURE SIGNATURE_32('N', 'S', 'D', 'B')
-
-typedef struct {
- //
- // PCD_NV_STORE_DEFAULT_BUFFER_SIGNATURE
- //
- UINT32 Signature;
- //
- // Length of the taken default buffer
- //
- UINT32 Length;
- //
- // Length of the total reserved buffer
- //
- UINT32 MaxLength;
- //
- // Reserved for 8 byte alignment
- //
- UINT32 Reserved;
- // one or more PCD_DEFAULT_DATA
-} PCD_NV_STORE_DEFAULT_BUFFER_HEADER;
-
-//
-// NvStoreDefaultValueBuffer layout:
-// +-------------------------------------+
-// | PCD_NV_STORE_DEFAULT_BUFFER_HEADER |
-// +-------------------------------------+
-// | PCD_DEFAULT_DATA (DEFAULT, Standard)|
-// +-------------------------------------+
-// | PCD_DATA_DELTA (DEFAULT, Standard)|
-// +-------------------------------------+
-// | ...... |
-// +-------------------------------------+
-// | PCD_DEFAULT_DATA (SKU A, Standard) |
-// +-------------------------------------+
-// | PCD_DATA_DELTA (SKU A, Standard) |
-// +-------------------------------------+
-// | ...... |
-// +-------------------------------------+
-//
-
-#pragma pack(1)
-typedef struct {
- SKU_ID SkuId;
- SKU_ID SkuIdCompared;
- UINT32 Length;
- // PCD_DATA_DELTA DeltaData[]
-} PCD_DATABASE_SKU_DELTA;
-
-//
-// PCD database layout:
-// +---------------------------------+
-// | PCD_DATABASE_INIT (DEFAULT SKU) |
-// +---------------------------------+
-// | PCD_DATABASE_SKU_DELTA (SKU A) |
-// +---------------------------------+
-// | PCD_DATABASE_SKU_DELTA (SKU B) |
-// +---------------------------------+
-// | ...... |
-// +---------------------------------+
-//
-#pragma pack()
-
-#endif
+/** @file + Guid for Pcd DataBase Signature. + +Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR> +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _PCD_DATABASE_SIGNATURE_GUID_H_ +#define _PCD_DATABASE_SIGNATURE_GUID_H_ + +#define PCD_DATA_BASE_SIGNATURE_GUID \ +{ 0x3c7d193c, 0x682c, 0x4c14, { 0xa6, 0x8f, 0x55, 0x2d, 0xea, 0x4f, 0x43, 0x7e } } + +extern EFI_GUID gPcdDataBaseSignatureGuid; + +// +// Common definitions +// +typedef UINT64 SKU_ID; + +#define PCD_TYPE_SHIFT 28 + +#define PCD_TYPE_DATA (0x0U << PCD_TYPE_SHIFT) +#define PCD_TYPE_HII (0x8U << PCD_TYPE_SHIFT) +#define PCD_TYPE_VPD (0x4U << PCD_TYPE_SHIFT) +#define PCD_TYPE_STRING (0x1U << PCD_TYPE_SHIFT) + +#define PCD_TYPE_ALL_SET (PCD_TYPE_DATA | PCD_TYPE_HII | PCD_TYPE_VPD | PCD_TYPE_STRING) + +#define PCD_DATUM_TYPE_SHIFT 24 + +#define PCD_DATUM_TYPE_POINTER (0x0U << PCD_DATUM_TYPE_SHIFT) +#define PCD_DATUM_TYPE_UINT8 (0x1U << PCD_DATUM_TYPE_SHIFT) +#define PCD_DATUM_TYPE_UINT16 (0x2U << PCD_DATUM_TYPE_SHIFT) +#define PCD_DATUM_TYPE_UINT32 (0x4U << PCD_DATUM_TYPE_SHIFT) +#define PCD_DATUM_TYPE_UINT64 (0x8U << PCD_DATUM_TYPE_SHIFT) + +#define PCD_DATUM_TYPE_ALL_SET (PCD_DATUM_TYPE_POINTER | \ + PCD_DATUM_TYPE_UINT8 | \ + PCD_DATUM_TYPE_UINT16 | \ + PCD_DATUM_TYPE_UINT32 | \ + PCD_DATUM_TYPE_UINT64) + +#define PCD_DATUM_TYPE_SHIFT2 20 + +#define PCD_DATUM_TYPE_UINT8_BOOLEAN (0x1U << PCD_DATUM_TYPE_SHIFT2) + +#define PCD_DATABASE_OFFSET_MASK (~(PCD_TYPE_ALL_SET | PCD_DATUM_TYPE_ALL_SET | PCD_DATUM_TYPE_UINT8_BOOLEAN)) + +typedef struct { + UINT32 ExTokenNumber; + UINT16 TokenNumber; // Token Number for Dynamic-Ex PCD. + UINT16 ExGuidIndex; // Index of GuidTable in units of GUID. +} DYNAMICEX_MAPPING; + +typedef struct { + UINT32 StringIndex; // Offset in String Table in units of UINT8. + UINT32 DefaultValueOffset; // Offset of the Default Value. + UINT16 GuidTableIndex; // Offset in Guid Table in units of GUID. + UINT16 Offset; // Offset in Variable. + UINT32 Attributes; // Variable attributes. + UINT16 Property; // Variable property. + UINT16 Reserved; +} VARIABLE_HEAD; + +typedef struct { + UINT32 Offset; +} VPD_HEAD; + +typedef UINT32 STRING_HEAD; + +typedef UINT16 SIZE_INFO; + +typedef struct { + UINT32 TokenSpaceCNameIndex; // Offset in String Table in units of UINT8. + UINT32 PcdCNameIndex; // Offset in String Table in units of UINT8. +} PCD_NAME_INDEX; + +typedef UINT32 TABLE_OFFSET; + +typedef struct { + GUID Signature; // PcdDataBaseGuid. + UINT32 BuildVersion; + UINT32 Length; // Length of DEFAULT SKU PCD DB + SKU_ID SystemSkuId; // Current SkuId value. + UINT32 LengthForAllSkus; // Length of all SKU PCD DB + UINT32 UninitDataBaseSize; // Total size for PCD those default value with 0. + TABLE_OFFSET LocalTokenNumberTableOffset; + TABLE_OFFSET ExMapTableOffset; + TABLE_OFFSET GuidTableOffset; + TABLE_OFFSET StringTableOffset; + TABLE_OFFSET SizeTableOffset; + TABLE_OFFSET SkuIdTableOffset; + TABLE_OFFSET PcdNameTableOffset; + UINT16 LocalTokenCount; // LOCAL_TOKEN_NUMBER for all. + UINT16 ExTokenCount; // EX_TOKEN_NUMBER for DynamicEx. + UINT16 GuidTableCount; // The Number of Guid in GuidTable. + UINT8 Pad[6]; // Pad bytes to satisfy the alignment. + + // + // Default initialized external PCD database binary structure + // + // Padding is needed to keep necessary alignment + // + // SKU_ID SkuIdTable[]; // SkuIds system supports. + // UINT64 ValueUint64[]; + // UINT32 ValueUint32[]; + // VPD_HEAD VpdHead[]; // VPD Offset + // DYNAMICEX_MAPPING ExMapTable[]; // DynamicEx PCD mapped to LocalIndex in LocalTokenNumberTable. It can be accessed by the ExMapTableOffset. + // UINT32 LocalTokenNumberTable[]; // Offset | DataType | PCD Type. It can be accessed by LocalTokenNumberTableOffset. + // GUID GuidTable[]; // GUID for DynamicEx and HII PCD variable Guid. It can be accessed by the GuidTableOffset. + // STRING_HEAD StringHead[]; // String PCD + // PCD_NAME_INDEX PcdNameTable[]; // PCD name index info. It can be accessed by the PcdNameTableOffset. + // VARIABLE_HEAD VariableHead[]; // HII PCD + // UINT8 StringTable[]; // String for String PCD value and HII PCD Variable Name. It can be accessed by StringTableOffset. + // SIZE_INFO SizeTable[]; // MaxSize and CurSize for String PCD. It can be accessed by SizeTableOffset. + // UINT16 ValueUint16[]; + // UINT8 ValueUint8[]; + // BOOLEAN ValueBoolean[]; +} PCD_DATABASE_INIT; + +// +// PEI and DXE Pcd driver use the same PCD database +// +typedef PCD_DATABASE_INIT PEI_PCD_DATABASE; +typedef PCD_DATABASE_INIT DXE_PCD_DATABASE; + +typedef struct { + PEI_PCD_DATABASE *PeiDb; + DXE_PCD_DATABASE *DxeDb; +} PCD_DATABASE; + +typedef struct { + UINT32 Offset : 24; + UINT32 Value : 8; +} PCD_DATA_DELTA; + +typedef struct { + SKU_ID SkuId; + UINT16 DefaultId; + UINT8 Reserved[6]; +} PCD_DEFAULT_INFO; + +typedef struct { + // + // Full size, it must be at 8 byte alignment. + // + UINT32 DataSize; + // + // HeaderSize includes HeaderSize fields and DefaultInfo arrays + // + UINT32 HeaderSize; + // + // DefaultInfo arrays those have the same default setting. + // + PCD_DEFAULT_INFO DefaultInfo[1]; + // + // Default data is stored as variable storage or the array of DATA_DELTA. + // +} PCD_DEFAULT_DATA; + +#define PCD_NV_STORE_DEFAULT_BUFFER_SIGNATURE SIGNATURE_32('N', 'S', 'D', 'B') + +typedef struct { + // + // PCD_NV_STORE_DEFAULT_BUFFER_SIGNATURE + // + UINT32 Signature; + // + // Length of the taken default buffer + // + UINT32 Length; + // + // Length of the total reserved buffer + // + UINT32 MaxLength; + // + // Reserved for 8 byte alignment + // + UINT32 Reserved; + // one or more PCD_DEFAULT_DATA +} PCD_NV_STORE_DEFAULT_BUFFER_HEADER; + +// +// NvStoreDefaultValueBuffer layout: +// +-------------------------------------+ +// | PCD_NV_STORE_DEFAULT_BUFFER_HEADER | +// +-------------------------------------+ +// | PCD_DEFAULT_DATA (DEFAULT, Standard)| +// +-------------------------------------+ +// | PCD_DATA_DELTA (DEFAULT, Standard)| +// +-------------------------------------+ +// | ...... | +// +-------------------------------------+ +// | PCD_DEFAULT_DATA (SKU A, Standard) | +// +-------------------------------------+ +// | PCD_DATA_DELTA (SKU A, Standard) | +// +-------------------------------------+ +// | ...... | +// +-------------------------------------+ +// + +#pragma pack(1) +typedef struct { + SKU_ID SkuId; + SKU_ID SkuIdCompared; + UINT32 Length; + // PCD_DATA_DELTA DeltaData[] +} PCD_DATABASE_SKU_DELTA; + +// +// PCD database layout: +// +---------------------------------+ +// | PCD_DATABASE_INIT (DEFAULT SKU) | +// +---------------------------------+ +// | PCD_DATABASE_SKU_DELTA (SKU A) | +// +---------------------------------+ +// | PCD_DATABASE_SKU_DELTA (SKU B) | +// +---------------------------------+ +// | ...... | +// +---------------------------------+ +// +#pragma pack() + +#endif |
