]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/Common/PcdValueCommon.h
BaseTools: Fix compile error on VS2010
[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
5This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef _PCD_VALUE_COMMON_H\r
16#define _PCD_VALUE_COMMON_H\r
17\r
18#include <Common/UefiBaseTypes.h>\r
19#include <Common/UefiInternalFormRepresentation.h>\r
20\r
21#define __FIELD_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field)\r
22#define __ARRAY_ELEMENT_SIZE(TYPE, Field) (sizeof((TYPE *)0)->Field[0])\r
23#define __OFFSET_OF(TYPE, Field) ((UINT32) &(((TYPE *)0)->Field))\r
24#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
25\r
26VOID\r
27PcdEntryPoint (\r
28 VOID\r
29 )\r
30/*++\r
31\r
32Routine Description:\r
33\r
34 Main function updates PCD values. It is auto generated by Build\r
35\r
36Arguments:\r
37\r
38 None\r
39\r
40Returns:\r
41 None\r
42--*/\r
43;\r
44\r
45int\r
46PcdValueMain (\r
47 int argc,\r
48 char *argv[]\r
49 )\r
50/*++\r
51\r
52Routine Description:\r
53\r
54 Main function updates PCD values.\r
55\r
56Arguments:\r
57\r
58 argc Number of command line parameters.\r
59 argv Array of pointers to parameter strings.\r
60\r
61Returns:\r
62 EXIT_SUCCESS\r
63--*/\r
64;\r
65\r
66VOID\r
67__PcdSet (\r
68 CHAR8 *SkuName OPTIONAL,\r
69 CHAR8 *DefaultValueName OPTIONAL,\r
70 CHAR8 *TokenSpaceGuidName,\r
71 CHAR8 *TokenName,\r
72 UINT64 Value\r
73 )\r
74/*++\r
75\r
76Routine Description:\r
77\r
78 Get PCD value\r
79\r
80Arguments:\r
81\r
82 SkuName SkuName String\r
83 DefaultValueName DefaultValueName String\r
84 TokenSpaceGuidName TokenSpaceGuidName String\r
85 TokenName TokenName String\r
86\r
87Returns:\r
88\r
89 PCD value\r
90--*/\r
91;\r
92\r
93VOID\r
94__PcdSet (\r
95 CHAR8 *SkuName OPTIONAL,\r
96 CHAR8 *DefaultValueName OPTIONAL,\r
97 CHAR8 *TokenSpaceGuidName,\r
98 CHAR8 *TokenName,\r
99 UINT64 Value\r
100 )\r
101/*++\r
102\r
103Routine Description:\r
104\r
105 Set PCD value\r
106\r
107Arguments:\r
108\r
109 SkuName SkuName String\r
110 DefaultValueName DefaultValueName String\r
111 TokenSpaceGuidName TokenSpaceGuidName String\r
112 TokenName TokenName String\r
113 Value PCD value to be set\r
114\r
115Returns:\r
116\r
117 None\r
118--*/\r
119;\r
120\r
121VOID *\r
122__PcdGetPtr (\r
123 CHAR8 *SkuName OPTIONAL,\r
124 CHAR8 *DefaultValueName OPTIONAL,\r
125 CHAR8 *TokenSpaceGuidName,\r
126 CHAR8 *TokenName,\r
127 UINT32 *Size\r
128 )\r
129/*++\r
130\r
131Routine Description:\r
132\r
133 Get PCD value buffer\r
134\r
135Arguments:\r
136\r
137 SkuName SkuName String\r
138 DefaultValueName DefaultValueName String\r
139 TokenSpaceGuidName TokenSpaceGuidName String\r
140 TokenName TokenName String\r
141 Size Size of PCD value buffer\r
142\r
143Returns:\r
144\r
145 PCD value buffer\r
146--*/\r
147;\r
148\r
149VOID\r
150__PcdSetPtr (\r
151 CHAR8 *SkuName OPTIONAL,\r
152 CHAR8 *DefaultValueName OPTIONAL,\r
153 CHAR8 *TokenSpaceGuidName,\r
154 CHAR8 *TokenName,\r
155 UINT32 Size,\r
156 UINT8 *Value\r
157 )\r
158/*++\r
159\r
160Routine Description:\r
161\r
162 Set PCD value buffer\r
163\r
164Arguments:\r
165\r
166 SkuName SkuName String\r
167 DefaultValueName DefaultValueName String\r
168 TokenSpaceGuidName TokenSpaceGuidName String\r
169 TokenName TokenName String\r
170 Size Size of PCD value\r
171 Value Pointer to the updated PCD value buffer\r
172\r
173Returns:\r
174\r
175 None\r
176--*/\r
177;\r
178\r
179#define PcdGet(A, B, C, D) __PcdGet(#A, #B, #C, #D)\r
180#define PcdSet(A, B, C, D, Value) __PcdSet(#A, #B, #C, #D, Value)\r
181#define PcdGetPtr(A, B, C, D, Size) __PcdGetPtr(#A, #B, #C, #D, Size)\r
182#define PcdSetPtr(A, B, C, D, Size, Value) __PcdSetPtr(#A, #B, #C, #D, Size, Value)\r
183\r
184#endif\r