]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Include/Guid/PcdDataBaseSignatureGuid.h
MdeModulePkg: Enable Firmware to retrieve the default setting
[mirror_edk2.git] / MdeModulePkg / Include / Guid / PcdDataBaseSignatureGuid.h
index d2e848800b75d97c7976f699c010a6e302b52404..9b1cb22bbbd481a40542de1e247935a9b680fac5 100644 (file)
@@ -146,5 +146,74 @@ typedef struct {
   DXE_PCD_DATABASE  *DxeDb;\r
 } PCD_DATABASE;\r
 \r
+typedef struct {\r
+  UINT32 Offset:24;\r
+  UINT32 Value:8;\r
+} PCD_DATA_DELTA;\r
+\r
+typedef struct {\r
+  SKU_ID SkuId;\r
+  UINT16 DefaultId;\r
+  UINT8  Reserved[6];\r
+} PCD_DEFAULT_INFO;\r
+\r
+typedef struct {\r
+  //\r
+  // Full size, it must be at 8 byte alignment.\r
+  //\r
+  UINT32 DataSize;\r
+  //\r
+  // HeaderSize includes HeaderSize fields and DefaultInfo arrays\r
+  //\r
+  UINT32 HeaderSize;\r
+  //\r
+  // DefaultInfo arrays those have the same default setting.\r
+  //\r
+  PCD_DEFAULT_INFO DefaultInfo[1];\r
+  //\r
+  // Default data is stored as variable storage or the array of DATA_DELTA.\r
+  //\r
+} PCD_DEFAULT_DATA;\r
+\r
+#define PCD_NV_STORE_DEFAULT_BUFFER_SIGNATURE SIGNATURE_32('N', 'S', 'D', 'B')\r
+\r
+typedef struct {\r
+  //\r
+  // PCD_NV_STORE_DEFAULT_BUFFER_SIGNATURE\r
+  //\r
+  UINT32    Signature;\r
+  //\r
+  // Length of the taken default buffer\r
+  //\r
+  UINT32    Length;\r
+  //\r
+  // Length of the total reserved buffer\r
+  //\r
+  UINT32    MaxLength;\r
+  //\r
+  // Reserved for 8 byte alignment\r
+  //\r
+  UINT32    Reserved;\r
+  // one or more PCD_DEFAULT_DATA\r
+} PCD_NV_STORE_DEFAULT_BUFFER_HEADER;\r
+\r
+//\r
+// NvStoreDefaultValueBuffer layout:\r
+// +-------------------------------------+\r
+// | PCD_NV_STORE_DEFAULT_BUFFER_HEADER  |\r
+// +-------------------------------------+\r
+// | PCD_DEFAULT_DATA (DEFAULT, Standard)|\r
+// +-------------------------------------+\r
+// | PCD_DATA_DELTA   (DEFAULT, Standard)|\r
+// +-------------------------------------+\r
+// | ......                              |\r
+// +-------------------------------------+\r
+// | PCD_DEFAULT_DATA (SKU A, Standard)  |\r
+// +-------------------------------------+\r
+// | PCD_DATA_DELTA   (SKU A, Standard)  |\r
+// +-------------------------------------+\r
+// | ......                              |\r
+// +-------------------------------------+\r
+//\r
 \r
 #endif\r