]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/Common/PcdValueCommon.h
BaseTools: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / BaseTools / Source / C / Common / PcdValueCommon.h
CommitLineData
309e37a2
LG
1/** @file\r
2Header file for PcdValue structure definition.\r
3\r
4Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
2e351cbe 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
309e37a2
LG
6\r
7**/\r
8\r
9#ifndef _PCD_VALUE_COMMON_H\r
10#define _PCD_VALUE_COMMON_H\r
11\r
12#include <Common/UefiBaseTypes.h>\r
13#include <Common/UefiInternalFormRepresentation.h>\r
14\r
15#define __FIELD_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field)\r
16#define __ARRAY_ELEMENT_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field[0])\r
17#define __OFFSET_OF(TYPE, Field) ((UINT32) &(((TYPE *)0)->Field))\r
18#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
e451aaa6
Z
19#define __ARRAY_SIZE(Array) (sizeof(Array)/sizeof(Array[0]))\r
20\r
21#if defined(_MSC_EXTENSIONS)\r
22#define __STATIC_ASSERT static_assert\r
23#else\r
24#define __STATIC_ASSERT _Static_assert\r
25#endif\r
309e37a2
LG
26\r
27VOID\r
28PcdEntryPoint (\r
29 VOID\r
30 )\r
31/*++\r
32\r
33Routine Description:\r
34\r
35 Main function updates PCD values. It is auto generated by Build\r
36\r
37Arguments:\r
38\r
39 None\r
40\r
41Returns:\r
42 None\r
43--*/\r
44;\r
45\r
46int\r
47PcdValueMain (\r
48 int argc,\r
49 char *argv[]\r
50 )\r
51/*++\r
52\r
53Routine Description:\r
54\r
55 Main function updates PCD values.\r
56\r
57Arguments:\r
58\r
59 argc Number of command line parameters.\r
60 argv Array of pointers to parameter strings.\r
61\r
62Returns:\r
63 EXIT_SUCCESS\r
64--*/\r
65;\r
66\r
67VOID\r
68__PcdSet (\r
69 CHAR8 *SkuName OPTIONAL,\r
70 CHAR8 *DefaultValueName OPTIONAL,\r
71 CHAR8 *TokenSpaceGuidName,\r
72 CHAR8 *TokenName,\r
73 UINT64 Value\r
74 )\r
75/*++\r
76\r
77Routine Description:\r
78\r
79 Get PCD value\r
80\r
81Arguments:\r
82\r
83 SkuName SkuName String\r
84 DefaultValueName DefaultValueName String\r
85 TokenSpaceGuidName TokenSpaceGuidName String\r
86 TokenName TokenName String\r
87\r
88Returns:\r
89\r
90 PCD value\r
91--*/\r
92;\r
93\r
94VOID\r
95__PcdSet (\r
96 CHAR8 *SkuName OPTIONAL,\r
97 CHAR8 *DefaultValueName OPTIONAL,\r
98 CHAR8 *TokenSpaceGuidName,\r
99 CHAR8 *TokenName,\r
100 UINT64 Value\r
101 )\r
102/*++\r
103\r
104Routine Description:\r
105\r
106 Set PCD value\r
107\r
108Arguments:\r
109\r
110 SkuName SkuName String\r
111 DefaultValueName DefaultValueName String\r
112 TokenSpaceGuidName TokenSpaceGuidName String\r
113 TokenName TokenName String\r
114 Value PCD value to be set\r
115\r
116Returns:\r
117\r
118 None\r
119--*/\r
120;\r
121\r
122VOID *\r
123__PcdGetPtr (\r
124 CHAR8 *SkuName OPTIONAL,\r
125 CHAR8 *DefaultValueName OPTIONAL,\r
126 CHAR8 *TokenSpaceGuidName,\r
127 CHAR8 *TokenName,\r
128 UINT32 *Size\r
129 )\r
130/*++\r
131\r
132Routine Description:\r
133\r
134 Get PCD value buffer\r
135\r
136Arguments:\r
137\r
138 SkuName SkuName String\r
139 DefaultValueName DefaultValueName String\r
140 TokenSpaceGuidName TokenSpaceGuidName String\r
141 TokenName TokenName String\r
142 Size Size of PCD value buffer\r
143\r
144Returns:\r
145\r
146 PCD value buffer\r
147--*/\r
148;\r
149\r
150VOID\r
151__PcdSetPtr (\r
152 CHAR8 *SkuName OPTIONAL,\r
153 CHAR8 *DefaultValueName OPTIONAL,\r
154 CHAR8 *TokenSpaceGuidName,\r
155 CHAR8 *TokenName,\r
156 UINT32 Size,\r
157 UINT8 *Value\r
158 )\r
159/*++\r
160\r
161Routine Description:\r
162\r
163 Set PCD value buffer\r
164\r
165Arguments:\r
166\r
167 SkuName SkuName String\r
168 DefaultValueName DefaultValueName String\r
169 TokenSpaceGuidName TokenSpaceGuidName String\r
170 TokenName TokenName String\r
171 Size Size of PCD value\r
172 Value Pointer to the updated PCD value buffer\r
173\r
174Returns:\r
175\r
176 None\r
177--*/\r
178;\r
179\r
180#define PcdGet(A, B, C, D) __PcdGet(#A, #B, #C, #D)\r
181#define PcdSet(A, B, C, D, Value) __PcdSet(#A, #B, #C, #D, Value)\r
182#define PcdGetPtr(A, B, C, D, Size) __PcdGetPtr(#A, #B, #C, #D, Size)\r
183#define PcdSetPtr(A, B, C, D, Size, Value) __PcdSetPtr(#A, #B, #C, #D, Size, Value)\r
184\r
185#endif\r