UINT16 ExGuidIndex; // Index of GuidTable in units of GUID.\r
} DYNAMICEX_MAPPING;\r
\r
-typedef struct {\r
- UINT32 SkuDataStartOffset; // Offset(with DATUM TYPE info) from the PCD_DB.\r
- UINT32 SkuIdTableOffset; // Offset from the PCD_DB.\r
-} SKU_HEAD;\r
-\r
typedef struct {\r
UINT32 StringIndex; // Offset in String Table in units of UINT8.\r
UINT32 DefaultValueOffset; // Offset of the Default Value.\r
typedef struct {\r
GUID Signature; // PcdDataBaseGuid.\r
UINT32 BuildVersion;\r
- UINT32 Length;\r
+ UINT32 Length; // Length of DEFAULT SKU PCD DB\r
SKU_ID SystemSkuId; // Current SkuId value.\r
+ UINT32 LengthForAllSkus; // Length of all SKU PCD DB\r
UINT32 UninitDataBaseSize; // Total size for PCD those default value with 0.\r
TABLE_OFFSET LocalTokenNumberTableOffset;\r
TABLE_OFFSET ExMapTableOffset;\r
UINT16 LocalTokenCount; // LOCAL_TOKEN_NUMBER for all.\r
UINT16 ExTokenCount; // EX_TOKEN_NUMBER for DynamicEx.\r
UINT16 GuidTableCount; // The Number of Guid in GuidTable.\r
- UINT8 Pad[2]; // Pad bytes to satisfy the alignment.\r
+ UINT8 Pad[6]; // Pad bytes to satisfy the alignment.\r
\r
//\r
// Default initialized external PCD database binary structure\r
// Padding is needed to keep necessary alignment\r
//\r
//SKU_ID SkuIdTable[]; // SkuIds system supports.\r
- //SKU_ID SkuIndexTable[]; // SkuIds for each PCD with SKU enable.\r
//UINT64 ValueUint64[];\r
//UINT32 ValueUint32[];\r
//VPD_HEAD VpdHead[]; // VPD Offset\r
//STRING_HEAD StringHead[]; // String PCD\r
//PCD_NAME_INDEX PcdNameTable[]; // PCD name index info. It can be accessed by the PcdNameTableOffset.\r
//VARIABLE_HEAD VariableHead[]; // HII PCD\r
- //SKU_HEAD SkuHead[]; // Store SKU info for each PCD with SKU enable.\r
//UINT8 StringTable[]; // String for String PCD value and HII PCD Variable Name. It can be accessed by StringTableOffset.\r
//SIZE_INFO SizeTable[]; // MaxSize and CurSize for String PCD. It can be accessed by SizeTableOffset.\r
//UINT16 ValueUint16[];\r
// +-------------------------------------+\r
//\r
\r
+#pragma pack(1)\r
+typedef struct {\r
+ SKU_ID SkuId;\r
+ SKU_ID SkuIdCompared;\r
+ UINT32 Length;\r
+ // PCD_DATA_DELTA DeltaData[]\r
+} PCD_DATABASE_SKU_DELTA;\r
+\r
+//\r
+// PCD database layout:\r
+// +---------------------------------+\r
+// | PCD_DATABASE_INIT (DEFAULT SKU) |\r
+// +---------------------------------+\r
+// | PCD_DATABASE_SKU_DELTA (SKU A) |\r
+// +---------------------------------+\r
+// | PCD_DATABASE_SKU_DELTA (SKU B) |\r
+// +---------------------------------+\r
+// | ...... |\r
+// +---------------------------------+\r
+//\r
+#pragma pack()\r
+\r
#endif\r