]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h
MdeModulePkg PCD: Remove unused PCD attribute PCD_TYPE_SKU_ENABLED
[mirror_edk2.git] / MdeModulePkg / Include / Guid / PcdDataBaseSignatureGuid.h
index 9b1cb22bbbd481a40542de1e247935a9b680fac5..5767ac82da210795f34a37326ac00989bbaa3cc4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Guid for Pcd DataBase Signature.\r
 \r
-Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under\r
 the terms and conditions of the BSD License that accompanies this distribution.\r
 The full text of the license may be found at\r
@@ -30,7 +30,6 @@ typedef UINT64 SKU_ID;
 #define PCD_TYPE_DATA         (0x0U << PCD_TYPE_SHIFT)\r
 #define PCD_TYPE_HII          (0x8U << PCD_TYPE_SHIFT)\r
 #define PCD_TYPE_VPD          (0x4U << PCD_TYPE_SHIFT)\r
-#define PCD_TYPE_SKU_ENABLED  (0x2U << PCD_TYPE_SHIFT)\r
 #define PCD_TYPE_STRING       (0x1U << PCD_TYPE_SHIFT)\r
 \r
 #define PCD_TYPE_ALL_SET      (PCD_TYPE_DATA | PCD_TYPE_HII | PCD_TYPE_VPD | PCD_TYPE_SKU_ENABLED | PCD_TYPE_STRING)\r
@@ -61,11 +60,6 @@ typedef struct  {
   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
@@ -94,8 +88,9 @@ typedef UINT32 TABLE_OFFSET;
 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
@@ -107,7 +102,7 @@ typedef struct {
     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
@@ -115,7 +110,6 @@ typedef struct {
     // 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
@@ -125,7 +119,6 @@ typedef struct {
     //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
@@ -216,4 +209,26 @@ typedef struct {
 // +-------------------------------------+\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