]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/Common/PcdValueCommon.h
BaseTools: Add PcdValueCommon logic into C source CommonLib
[mirror_edk2.git] / BaseTools / Source / C / Common / PcdValueCommon.h
diff --git a/BaseTools/Source/C/Common/PcdValueCommon.h b/BaseTools/Source/C/Common/PcdValueCommon.h
new file mode 100644 (file)
index 0000000..3922428
--- /dev/null
@@ -0,0 +1,184 @@
+/** @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