--- /dev/null
+/** @file\r
+Header file for PcdValue structure definition.\r
+\r
+Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+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
+\r
+#ifndef _PCD_VALUE_COMMON_H\r
+#define _PCD_VALUE_COMMON_H\r
+\r
+#include <Common/UefiBaseTypes.h>\r
+#include <Common/UefiInternalFormRepresentation.h>\r
+\r
+#define __FIELD_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field)\r
+#define __ARRAY_ELEMENT_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field[0])\r
+#define __OFFSET_OF(TYPE, Field) ((UINT32) &(((TYPE *)0)->Field))\r
+#define __FLEXIBLE_SIZE(Size, TYPE, Field, MaxIndex) if (__FIELD_SIZE(TYPE, Field) == 0) Size = MAX((__OFFSET_OF(TYPE, Field) + __ARRAY_ELEMENT_SIZE(TYPE, Field) * (MaxIndex)), Size)\r
+\r
+VOID\r
+PcdEntryPoint (\r
+ VOID\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Main function updates PCD values. It is auto generated by Build\r
+\r
+Arguments:\r
+\r
+ None\r
+\r
+Returns:\r
+ None\r
+--*/\r
+;\r
+\r
+int\r
+PcdValueMain (\r
+ int argc,\r
+ char *argv[]\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Main function updates PCD values.\r
+\r
+Arguments:\r
+\r
+ argc Number of command line parameters.\r
+ argv Array of pointers to parameter strings.\r
+\r
+Returns:\r
+ EXIT_SUCCESS\r
+--*/\r
+;\r
+\r
+VOID\r
+__PcdSet (\r
+ CHAR8 *SkuName OPTIONAL,\r
+ CHAR8 *DefaultValueName OPTIONAL,\r
+ CHAR8 *TokenSpaceGuidName,\r
+ CHAR8 *TokenName,\r
+ UINT64 Value\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Get PCD value\r
+\r
+Arguments:\r
+\r
+ SkuName SkuName String\r
+ DefaultValueName DefaultValueName String\r
+ TokenSpaceGuidName TokenSpaceGuidName String\r
+ TokenName TokenName String\r
+\r
+Returns:\r
+\r
+ PCD value\r
+--*/\r
+;\r
+\r
+VOID\r
+__PcdSet (\r
+ CHAR8 *SkuName OPTIONAL,\r
+ CHAR8 *DefaultValueName OPTIONAL,\r
+ CHAR8 *TokenSpaceGuidName,\r
+ CHAR8 *TokenName,\r
+ UINT64 Value\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Set PCD value\r
+\r
+Arguments:\r
+\r
+ SkuName SkuName String\r
+ DefaultValueName DefaultValueName String\r
+ TokenSpaceGuidName TokenSpaceGuidName String\r
+ TokenName TokenName String\r
+ Value PCD value to be set\r
+\r
+Returns:\r
+\r
+ None\r
+--*/\r
+;\r
+\r
+VOID *\r
+__PcdGetPtr (\r
+ CHAR8 *SkuName OPTIONAL,\r
+ CHAR8 *DefaultValueName OPTIONAL,\r
+ CHAR8 *TokenSpaceGuidName,\r
+ CHAR8 *TokenName,\r
+ UINT32 *Size\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Get PCD value buffer\r
+\r
+Arguments:\r
+\r
+ SkuName SkuName String\r
+ DefaultValueName DefaultValueName String\r
+ TokenSpaceGuidName TokenSpaceGuidName String\r
+ TokenName TokenName String\r
+ Size Size of PCD value buffer\r
+\r
+Returns:\r
+\r
+ PCD value buffer\r
+--*/\r
+;\r
+\r
+VOID\r
+__PcdSetPtr (\r
+ CHAR8 *SkuName OPTIONAL,\r
+ CHAR8 *DefaultValueName OPTIONAL,\r
+ CHAR8 *TokenSpaceGuidName,\r
+ CHAR8 *TokenName,\r
+ UINT32 Size,\r
+ UINT8 *Value\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+ Set PCD value buffer\r
+\r
+Arguments:\r
+\r
+ SkuName SkuName String\r
+ DefaultValueName DefaultValueName String\r
+ TokenSpaceGuidName TokenSpaceGuidName String\r
+ TokenName TokenName String\r
+ Size Size of PCD value\r
+ Value Pointer to the updated PCD value buffer\r
+\r
+Returns:\r
+\r
+ None\r
+--*/\r
+;\r
+\r
+#define PcdGet(A, B, C, D) __PcdGet(#A, #B, #C, #D)\r
+#define PcdSet(A, B, C, D, Value) __PcdSet(#A, #B, #C, #D, Value)\r
+#define PcdGetPtr(A, B, C, D, Size) __PcdGetPtr(#A, #B, #C, #D, Size)\r
+#define PcdSetPtr(A, B, C, D, Size, Value) __PcdSetPtr(#A, #B, #C, #D, Size, Value)\r
+\r
+#endif\r