PcdValueCommon.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /** @file
  2. Header file for PcdValue structure definition.
  3. Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef _PCD_VALUE_COMMON_H
  7. #define _PCD_VALUE_COMMON_H
  8. #include <Common/UefiBaseTypes.h>
  9. #include <Common/UefiInternalFormRepresentation.h>
  10. #define __FIELD_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field)
  11. #define __ARRAY_ELEMENT_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field[0])
  12. #define __OFFSET_OF(TYPE, Field) ((UINT32) &(((TYPE *)0)->Field))
  13. #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)
  14. #define __ARRAY_SIZE(Array) (sizeof(Array)/sizeof(Array[0]))
  15. #if defined(_MSC_EXTENSIONS)
  16. #define __STATIC_ASSERT static_assert
  17. #else
  18. #define __STATIC_ASSERT _Static_assert
  19. #endif
  20. VOID
  21. PcdEntryPoint (
  22. VOID
  23. )
  24. /*++
  25. Routine Description:
  26. Main function updates PCD values. It is auto generated by Build
  27. Arguments:
  28. None
  29. Returns:
  30. None
  31. --*/
  32. ;
  33. int
  34. PcdValueMain (
  35. int argc,
  36. char *argv[]
  37. )
  38. /*++
  39. Routine Description:
  40. Main function updates PCD values.
  41. Arguments:
  42. argc Number of command line parameters.
  43. argv Array of pointers to parameter strings.
  44. Returns:
  45. EXIT_SUCCESS
  46. --*/
  47. ;
  48. VOID
  49. __PcdSet (
  50. CHAR8 *SkuName OPTIONAL,
  51. CHAR8 *DefaultValueName OPTIONAL,
  52. CHAR8 *TokenSpaceGuidName,
  53. CHAR8 *TokenName,
  54. UINT64 Value
  55. )
  56. /*++
  57. Routine Description:
  58. Get PCD value
  59. Arguments:
  60. SkuName SkuName String
  61. DefaultValueName DefaultValueName String
  62. TokenSpaceGuidName TokenSpaceGuidName String
  63. TokenName TokenName String
  64. Returns:
  65. PCD value
  66. --*/
  67. ;
  68. VOID
  69. __PcdSet (
  70. CHAR8 *SkuName OPTIONAL,
  71. CHAR8 *DefaultValueName OPTIONAL,
  72. CHAR8 *TokenSpaceGuidName,
  73. CHAR8 *TokenName,
  74. UINT64 Value
  75. )
  76. /*++
  77. Routine Description:
  78. Set PCD value
  79. Arguments:
  80. SkuName SkuName String
  81. DefaultValueName DefaultValueName String
  82. TokenSpaceGuidName TokenSpaceGuidName String
  83. TokenName TokenName String
  84. Value PCD value to be set
  85. Returns:
  86. None
  87. --*/
  88. ;
  89. VOID *
  90. __PcdGetPtr (
  91. CHAR8 *SkuName OPTIONAL,
  92. CHAR8 *DefaultValueName OPTIONAL,
  93. CHAR8 *TokenSpaceGuidName,
  94. CHAR8 *TokenName,
  95. UINT32 *Size
  96. )
  97. /*++
  98. Routine Description:
  99. Get PCD value buffer
  100. Arguments:
  101. SkuName SkuName String
  102. DefaultValueName DefaultValueName String
  103. TokenSpaceGuidName TokenSpaceGuidName String
  104. TokenName TokenName String
  105. Size Size of PCD value buffer
  106. Returns:
  107. PCD value buffer
  108. --*/
  109. ;
  110. VOID
  111. __PcdSetPtr (
  112. CHAR8 *SkuName OPTIONAL,
  113. CHAR8 *DefaultValueName OPTIONAL,
  114. CHAR8 *TokenSpaceGuidName,
  115. CHAR8 *TokenName,
  116. UINT32 Size,
  117. UINT8 *Value
  118. )
  119. /*++
  120. Routine Description:
  121. Set PCD value buffer
  122. Arguments:
  123. SkuName SkuName String
  124. DefaultValueName DefaultValueName String
  125. TokenSpaceGuidName TokenSpaceGuidName String
  126. TokenName TokenName String
  127. Size Size of PCD value
  128. Value Pointer to the updated PCD value buffer
  129. Returns:
  130. None
  131. --*/
  132. ;
  133. #define PcdGet(A, B, C, D) __PcdGet(#A, #B, #C, #D)
  134. #define PcdSet(A, B, C, D, Value) __PcdSet(#A, #B, #C, #D, Value)
  135. #define PcdGetPtr(A, B, C, D, Size) __PcdGetPtr(#A, #B, #C, #D, Size)
  136. #define PcdSetPtr(A, B, C, D, Size, Value) __PcdSetPtr(#A, #B, #C, #D, Size, Value)
  137. #endif