]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/PCD/Dxe/Service.h
Add sample for auto-generated PCD
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Dxe / Service.h
index 7df533b8fcc71c2c7fb917df32967dfc1d35ba38..0dd4df6bb2c54476066fbed8b3ff84efdcf16f0a 100644 (file)
@@ -10,15 +10,13 @@ http://opensource.org/licenses/bsd-license.php
 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-\r
-Module Name: Service.h\r
-\r
 **/\r
 \r
 #ifndef _PCD_DXE_SERVICE_H_\r
 #define _PCD_DXE_SERVICE_H_\r
 \r
 #include <PiDxe.h>\r
+#include <Guid/PcdDataBaseHobGuid.h>\r
 #include <Protocol/Pcd.h>\r
 #include <Library/BaseLib.h>\r
 #include <Library/DebugLib.h>\r
@@ -31,20 +29,6 @@ Module Name: Service.h
 #include <Library/BaseMemoryLib.h>\r
 #include <Library/UefiRuntimeServicesTableLib.h>\r
 \r
-//\r
-// Please make sure the PCD Serivce PEIM Version is consistent with\r
-// the version of PCD Database generation tool\r
-//\r
-#define PCD_SERVICE_DXE_DRIVER_VERSION      2\r
-\r
-//\r
-// PCD_DXE_DATABASE_GENTOOL_VERSION is defined in Autogen.h\r
-// and generated by PCD Database generation tool.\r
-//\r
-//#if (PCD_SERVICE_DXE_DRIVER_VERSION != PCD_DXE_SERVICE_DRIVER_AUTOGEN_VERSION)\r
-//  #error "Please make sure the version of PCD Service DXE Driver and PCD DXE Database Generation Tool matches"\r
-//#endif\r
-\r
 //\r
 // Protocol Interface function declaration.\r
 //\r
@@ -153,7 +137,7 @@ DxePcdGet64 (
 \r
   @param[in]  TokenNumber The PCD token number. \r
 \r
-  @return The pointer to the buffer to be retrived.\r
+  @return The pointer to the buffer to be retrieved.\r
   \r
 **/\r
 VOID *\r
@@ -293,7 +277,7 @@ DxePcdGet64Ex (
   @param[in]  Guid The token space for the token number.\r
   @param[in]  TokenNumber The PCD token number. \r
 \r
-  @return The pointer to the buffer to be retrived.\r
+  @return The pointer to the buffer to be retrieved.\r
   \r
 **/\r
 VOID *\r
@@ -746,7 +730,7 @@ typedef struct {
   PCD_PROTOCOL_CALLBACK   CallbackFn;\r
 } CALLBACK_FN_ENTRY;\r
 \r
-#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) _CR(Record, Type, Field)\r
+#define CR_FNENTRY_FROM_LISTNODE(Record, Type, Field) BASE_CR(Record, Type, Field)\r
 \r
 //\r
 // Internal Functions\r
@@ -862,7 +846,7 @@ GetWorker (
   Wrapper function for get PCD value for dynamic-ex PCD.\r
 \r
   @param Guid            Token space guid for dynamic-ex PCD.\r
-  @param ExTokenNumber   Token number for dyanmic-ex PCD.\r
+  @param ExTokenNumber   Token number for dynamic-ex PCD.\r
   @param GetSize         The size of dynamic-ex PCD value.\r
 \r
   @return PCD entry in PCD database.\r
@@ -997,7 +981,7 @@ BuildPcdDxeDataBase (
   space guid: token number} to local token number.\r
   \r
   @param Guid            Token space guid for dynamic-ex PCD entry.\r
-  @param ExTokenNumber   EDES_TODO: Add parameter description\r
+  @param ExTokenNumber   Dynamic-ex PCD token number.\r
 \r
   @return local token number for dynamic-ex PCD.\r
 \r
@@ -1047,7 +1031,7 @@ ExGetNextTokeNumber (
   Get size of POINTER type PCD value.\r
 \r
   @param LocalTokenNumberTableIdx Index of local token number in local token number table.\r
-  @param MaxSize                  Maxmium size of POINTER type PCD value.\r
+  @param MaxSize                  Maximum size of POINTER type PCD value.\r
 \r
   @return size of POINTER type PCD value.\r
 \r
@@ -1059,7 +1043,7 @@ GetPtrTypeSize (
   );\r
 \r
 /**\r
-  Set size of POINTER type PCD value. The size should not exceed the maxmium size\r
+  Set size of POINTER type PCD value. The size should not exceed the maximum size\r
   of this PCD value.\r
 \r
   @param LocalTokenNumberTableIdx Index of local token number in local token number table.\r
@@ -1074,8 +1058,6 @@ SetPtrTypeSize (
   IN    OUT   UINTN             *CurrentSize\r
   );\r
 \r
-extern EFI_GUID gPcdDataBaseHobGuid;\r
-\r
 extern PCD_DATABASE * mPcdDatabase;\r
 \r
 extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;\r
@@ -1083,3 +1065,300 @@ extern DXE_PCD_DATABASE_INIT gDXEPcdDbInit;
 extern EFI_LOCK mPcdDatabaseLock;\r
 \r
 #endif\r
+\r
+////////////////////////////////////////////////////////////////////////////////////////////////////\r
+///                                                                                              ///\r
+///  Following code is an example for auto-generated PCD database to hold all dynamic/dynamicex  ///\r
+///  PCD's value for one given platform. And following sample comes from autogen.h/autogen.c of  ///\r
+///  PCD Dxe driver for NT32 platform.                                                           ///\r
+///                                                                                              ///\r
+///  The PCD database is stored into a big structure - PCD_DATABASE which is consisted of        ///\r
+///  PEI PCD database structure and DXE PCD database structure.                                  ///\r
+///                                                                                              ///\r
+////////////////////////////////////////////////////////////////////////////////////////////////////\r
+\r
+// //\r
+// // Common definitions\r
+// //\r
+// typedef UINT8 SKU_ID;\r
+// \r
+// //\r
+// // A PCD offset value is consisted as follows:\r
+// // 32 ------------- 28 ---------- 24 -------- 0\r
+// //  | PCD type mask  | Datum Type  |  Offset  |\r
+// //  -------------------------------------------\r
+// \r
+// #define PCD_TYPE_SHIFT        28             // 28 ~ 32 bit hold PCD type information\r
+// \r
+// #define PCD_TYPE_DATA         (0x0 << PCD_TYPE_SHIFT)\r
+// #define PCD_TYPE_HII          (0x8 << PCD_TYPE_SHIFT)\r
+// #define PCD_TYPE_VPD          (0x4 << PCD_TYPE_SHIFT)\r
+// #define PCD_TYPE_SKU_ENABLED  (0x2 << PCD_TYPE_SHIFT)\r
+// #define PCD_TYPE_STRING       (0x1 << 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
+// \r
+// #define PCD_DATUM_TYPE_SHIFT  24             // 24 ~ 28 bit hold datum type information\r
+// \r
+// #define PCD_DATUM_TYPE_POINTER  (0x0 << PCD_DATUM_TYPE_SHIFT)\r
+// #define PCD_DATUM_TYPE_UINT8    (0x1 << PCD_DATUM_TYPE_SHIFT)\r
+// #define PCD_DATUM_TYPE_UINT16   (0x2 << PCD_DATUM_TYPE_SHIFT)\r
+// #define PCD_DATUM_TYPE_UINT32   (0x4 << PCD_DATUM_TYPE_SHIFT)\r
+// #define PCD_DATUM_TYPE_UINT64   (0x8 << PCD_DATUM_TYPE_SHIFT)\r
+// \r
+// #define PCD_DATUM_TYPE_ALL_SET  (PCD_DATUM_TYPE_POINTER | \\r
+//                                  PCD_DATUM_TYPE_UINT8   | \\r
+//                                  PCD_DATUM_TYPE_UINT16  | \\r
+//                                  PCD_DATUM_TYPE_UINT32  | \\r
+//                                  PCD_DATUM_TYPE_UINT64)\r
+// \r
+// #define PCD_DATABASE_OFFSET_MASK (~(PCD_TYPE_ALL_SET | PCD_DATUM_TYPE_ALL_SET))\r
+// \r
+// typedef struct  {\r
+//   UINT32  ExTokenNumber;\r
+//   UINT16  LocalTokenNumber;   // PCD Number of this particular platform build\r
+//   UINT16  ExGuidIndex;        // Index of GuidTable\r
+// } DYNAMICEX_MAPPING;\r
+// \r
+// typedef struct {\r
+//   UINT32  SkuDataStartOffset; //We have to use offsetof MACRO as we don't know padding done by compiler\r
+//   UINT32  SkuIdTableOffset;   //Offset from the PCD_DB\r
+// } SKU_HEAD;\r
+// \r
+// typedef struct {\r
+//   UINT16  GuidTableIndex;     // Offset in Guid Table in units of GUID.\r
+//   UINT16  StringIndex;        // Offset in String Table in units of UINT16.\r
+//   UINT16  Offset;             // Offset in Variable\r
+//   UINT16  DefaultValueOffset; // Offset of the Default Value\r
+// } VARIABLE_HEAD;\r
+// \r
+// typedef  struct {\r
+//   UINT32  Offset;\r
+// } VPD_HEAD;\r
+// \r
+// typedef UINT16 STRING_HEAD;\r
+// \r
+// typedef UINT16 SIZE_INFO;\r
+// \r
+// #define offsetof(s,m)  (UINT32) (UINTN) &(((s *)0)->m)\r
+// \r
+// \r
+// #define PEI_GUID_TABLE_SIZE                1\r
+// #define PEI_STRING_TABLE_SIZE              1\r
+// #define PEI_SKUID_TABLE_SIZE               1\r
+// #define PEI_LOCAL_TOKEN_NUMBER_TABLE_SIZE  3\r
+// #define PEI_LOCAL_TOKEN_NUMBER             3\r
+// #define PEI_EXMAPPING_TABLE_SIZE           1\r
+// #define PEI_EX_TOKEN_NUMBER                0\r
+// #define PEI_SIZE_TABLE_SIZE                2\r
+// #define PEI_GUID_TABLE_EMPTY               TRUE\r
+// #define PEI_STRING_TABLE_EMPTY             TRUE\r
+// #define PEI_SKUID_TABLE_EMPTY              TRUE\r
+// #define PEI_DATABASE_EMPTY                 FALSE\r
+// #define PEI_EXMAP_TABLE_EMPTY              TRUE\r
+// \r
+// //\r
+// // PEI database structure for dynamic/dynamicex PCD which has default value.\r
+// //\r
+// typedef struct {\r
+// \r
+// \r
+// \r
+// \r
+// \r
+//   DYNAMICEX_MAPPING  ExMapTable[PEI_EXMAPPING_TABLE_SIZE];                       // table for mapping dynamicex token number to local token number\r
+//   UINT32             LocalTokenNumberTable[PEI_LOCAL_TOKEN_NUMBER_TABLE_SIZE];   // table for local token number\r
+//   GUID               GuidTable[PEI_GUID_TABLE_SIZE];                             // table for token guid\r
+// \r
+// \r
+//   UINT16             StringTable[1]; /* _ */                                     // table for unicode string type PCD's value\r
+// \r
+//   SIZE_INFO          SizeTable[PEI_SIZE_TABLE_SIZE];                             // table for PCD size information\r
+// \r
+// \r
+// \r
+// \r
+// \r
+// \r
+//   UINT8              SkuIdTable[PEI_SKUID_TABLE_SIZE];                           // table for SKU IDs \r
+//   SKU_ID             SystemSkuId;                                                // system SKU ID\r
+// } PEI_PCD_DATABASE_INIT;\r
+// \r
+// //\r
+// // PEI database structure for dynamic/dynamicex PCD which has no default value.\r
+// //\r
+// typedef struct {\r
+// \r
+// \r
+//   UINT32   PcdFlashNvStorageVariableBase_a1aff049_fdeb_442a_b320_13ab4cb72bbc[1];        // PCD entry for PcdFlashNvStorageVariableBase\r
+//   UINT32   PcdFlashNvStorageFtwSpareBase_a1aff049_fdeb_442a_b320_13ab4cb72bbc[1];        // PCD entry for PcdFlashNvStorageFtwSpareBase\r
+//   UINT32   PcdFlashNvStorageFtwWorkingBase_a1aff049_fdeb_442a_b320_13ab4cb72bbc[1];      // PCD entry for PcdFlashNvStorageFtwWorkingBase\r
+// \r
+// \r
+// \r
+// \r
+// } PEI_PCD_DATABASE_UNINIT;\r
+// \r
+// #define PCD_PEI_SERVICE_DRIVER_VERSION         2\r
+// \r
+// typedef struct {\r
+//   PEI_PCD_DATABASE_INIT    Init;\r
+//   PEI_PCD_DATABASE_UNINIT  Uninit;\r
+// } PEI_PCD_DATABASE;\r
+// \r
+// #define PEI_NEX_TOKEN_NUMBER (PEI_LOCAL_TOKEN_NUMBER - PEI_EX_TOKEN_NUMBER)\r
+// \r
+// #define DXE_GUID_TABLE_SIZE                1\r
+// #define DXE_STRING_TABLE_SIZE              212\r
+// #define DXE_SKUID_TABLE_SIZE               1\r
+// #define DXE_LOCAL_TOKEN_NUMBER_TABLE_SIZE  9\r
+// #define DXE_LOCAL_TOKEN_NUMBER             9\r
+// #define DXE_EXMAPPING_TABLE_SIZE           1\r
+// #define DXE_EX_TOKEN_NUMBER                0\r
+// #define DXE_SIZE_TABLE_SIZE                16\r
+// #define DXE_GUID_TABLE_EMPTY               TRUE\r
+// #define DXE_STRING_TABLE_EMPTY             FALSE\r
+// #define DXE_SKUID_TABLE_EMPTY              TRUE\r
+// #define DXE_DATABASE_EMPTY                 FALSE\r
+// #define DXE_EXMAP_TABLE_EMPTY              TRUE\r
+// \r
+// typedef struct {\r
+// \r
+// \r
+// \r
+// \r
+// \r
+//   DYNAMICEX_MAPPING  ExMapTable[DXE_EXMAPPING_TABLE_SIZE];\r
+//   UINT32             LocalTokenNumberTable[DXE_LOCAL_TOKEN_NUMBER_TABLE_SIZE];\r
+//   GUID               GuidTable[DXE_GUID_TABLE_SIZE];\r
+//   STRING_HEAD        PcdWinNtMemorySize_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtGop_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtSerialPort_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtVirtualDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtUga_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtPhysicalDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtFileSystem_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+//   STRING_HEAD        PcdWinNtConsole_0d79a645_1d91_40a6_a81f_61e6982b32b4[1];\r
+// \r
+// \r
+//   UINT16             StringTable[6]; /* PcdWinNtMemorySize_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_1[26]; /* PcdWinNtGop_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_2[10]; /* PcdWinNtSerialPort_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_3[13]; /* PcdWinNtVirtualDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_4[26]; /* PcdWinNtUga_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_5[51]; /* PcdWinNtPhysicalDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_6[54]; /* PcdWinNtFileSystem_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//   UINT16             StringTable_7[26]; /* PcdWinNtConsole_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+// \r
+//   SIZE_INFO          SizeTable[DXE_SIZE_TABLE_SIZE];\r
+//   UINT16             PcdPlatformBootTimeOutDefault_a1aff049_fdeb_442a_b320_13ab4cb72bbc[1];\r
+// \r
+// \r
+// \r
+// \r
+// \r
+// \r
+//   UINT8              SkuIdTable[DXE_SKUID_TABLE_SIZE];\r
+// \r
+// } DXE_PCD_DATABASE_INIT;\r
+// \r
+// typedef struct {\r
+//   UINT8  dummy; /* PCD_DATABASE_UNINIT is emptry */\r
+// \r
+// \r
+// \r
+// \r
+// \r
+// } DXE_PCD_DATABASE_UNINIT;\r
+// \r
+// #define PCD_DXE_SERVICE_DRIVER_VERSION         2\r
+// \r
+// typedef struct {\r
+//   DXE_PCD_DATABASE_INIT    Init;\r
+//   DXE_PCD_DATABASE_UNINIT  Uninit;\r
+// } DXE_PCD_DATABASE;\r
+// \r
+// #define DXE_NEX_TOKEN_NUMBER (DXE_LOCAL_TOKEN_NUMBER - DXE_EX_TOKEN_NUMBER)\r
+// \r
+// typedef struct {\r
+//   PEI_PCD_DATABASE PeiDb;\r
+//   DXE_PCD_DATABASE DxeDb;\r
+// } PCD_DATABASE;\r
+// \r
+// #define PCD_TOTAL_TOKEN_NUMBER (PEI_LOCAL_TOKEN_NUMBER + DXE_LOCAL_TOKEN_NUMBER)\r
+// \r
+// \r
+// DXE_PCD_DATABASE_INIT gDXEPcdDbInit = {\r
+// \r
+// \r
+// \r
+// \r
+//   /* VPD */\r
+// \r
+//   /* ExMapTable */\r
+//   {\r
+//     { 0, 0, 0 },\r
+// \r
+//   },\r
+//   /* LocalTokenNumberTable */\r
+//   {\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtMemorySize_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtGop_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtSerialPort_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtVirtualDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtUga_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtPhysicalDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtFileSystem_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdWinNtConsole_0d79a645_1d91_40a6_a81f_61e6982b32b4) | PCD_DATUM_TYPE_POINTER | PCD_TYPE_STRING,\r
+//     offsetof(DXE_PCD_DATABASE, Init.PcdPlatformBootTimeOutDefault_a1aff049_fdeb_442a_b320_13ab4cb72bbc) | PCD_TYPE_DATA | PCD_DATUM_TYPE_UINT16,\r
+//\r
+//   },\r
+//   /* GuidTable */\r
+//   {\r
+//     {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},\r
+// \r
+//   },\r
+//  { 0 }, /* PcdWinNtMemorySize_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 6 }, /* PcdWinNtGop_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 32 }, /* PcdWinNtSerialPort_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 42 }, /* PcdWinNtVirtualDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 55 }, /* PcdWinNtUga_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 81 }, /* PcdWinNtPhysicalDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 132 }, /* PcdWinNtFileSystem_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//  { 186 }, /* PcdWinNtConsole_0d79a645_1d91_40a6_a81f_61e6982b32b4[1] */\r
+//\r
+//\r
+// /* StringTable */\r
+//  L"64!64", /* PcdWinNtMemorySize_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L"UGA Window 1!UGA Window 2", /* PcdWinNtGop_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L"COM1!COM2", /* PcdWinNtSerialPort_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L"FW;40960;512", /* PcdWinNtVirtualDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L"UGA Window 1!UGA Window 2", /* PcdWinNtUga_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L"a:RW;2880;512!d:RO;307200;2048!j:RW;262144;512", /* PcdWinNtPhysicalDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L".!..\\..\\..\\..\\EdkShellBinPkg\\Bin\\Ia32\\Apps", /* PcdWinNtFileSystem_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//  L"Bus Driver Console Window", /* PcdWinNtConsole_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+\r
+//  /* SizeTable */\r
+//  {\r
+//    10, 10, /* PcdWinNtMemorySize_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    50, 50, /* PcdWinNtGop_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    18, 18, /* PcdWinNtSerialPort_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    24, 24, /* PcdWinNtVirtualDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    50, 50, /* PcdWinNtUga_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    100, 92, /* PcdWinNtPhysicalDisk_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    106, 98, /* PcdWinNtFileSystem_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//    50, 50, /* PcdWinNtConsole_0d79a645_1d91_40a6_a81f_61e6982b32b4 */\r
+//\r
+//  },\r
+//  { 10 }, /*  PcdPlatformBootTimeOutDefault_a1aff049_fdeb_442a_b320_13ab4cb72bbc[1] */\r
+//\r
+//\r
+//\r
+//\r
+//\r
+//\r
+//  /* SkuIdTable */\r
+//  { 0,  },\r
+//  \r
+//};\r
+\r