]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/PCD/Pei/Service.h
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Universal / PCD / Pei / Service.h
CommitLineData
80408db0 1/** @file\r
5944a83b 2 The internal header file declares the private functions used by PeiPcd driver.\r
80408db0 3\r
d1102dba 4Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
9d510e61 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
80408db0 6\r
80408db0 7**/\r
8\r
fc547e08 9#ifndef _PEI_PCD_SERVICE_H_\r
10#define _PEI_PCD_SERVICE_H_\r
80408db0 11\r
97a079ed
A
12#include <PiPei.h>\r
13#include <Ppi/ReadOnlyVariable2.h>\r
14#include <Ppi/Pcd.h>\r
c896d682 15#include <Ppi/PiPcd.h>\r
96d6d004
SZ
16#include <Ppi/PcdInfo.h>\r
17#include <Ppi/PiPcdInfo.h>\r
98b15cf1 18#include <Guid/PcdDataBaseHobGuid.h>\r
419db80b 19#include <Guid/PcdDataBaseSignatureGuid.h>\r
219247e1 20#include <Guid/VariableFormat.h>\r
97a079ed
A
21#include <Library/DebugLib.h>\r
22#include <Library/PeimEntryPoint.h>\r
23#include <Library/BaseLib.h>\r
24#include <Library/HobLib.h>\r
25#include <Library/PeiServicesLib.h>\r
26#include <Library/PcdLib.h>\r
97a079ed 27#include <Library/BaseMemoryLib.h>\r
96d6d004 28#include <Library/MemoryAllocationLib.h>\r
80408db0 29\r
30//\r
31// Please make sure the PCD Serivce PEIM Version is consistent with\r
e9d97d08 32// the version of the generated PEIM PCD Database by build tool.\r
80408db0 33//\r
219247e1 34#define PCD_SERVICE_PEIM_VERSION 7\r
80408db0 35\r
36//\r
e9d97d08 37// PCD_PEI_SERVICE_DRIVER_VERSION is defined in Autogen.h.\r
80408db0 38//\r
e9d97d08
LG
39#if (PCD_SERVICE_PEIM_VERSION != PCD_PEI_SERVICE_DRIVER_VERSION)\r
40 #error "Please make sure the version of PCD PEIM Service and the generated PCD PEI Database match."\r
41#endif\r
80408db0 42\r
96d6d004
SZ
43/**\r
44 Retrieve additional information associated with a PCD token in the default token space.\r
45\r
46 This includes information such as the type of value the TokenNumber is associated with as well as possible\r
47 human readable name that is associated with the token.\r
48\r
49 @param[in] TokenNumber The PCD token number.\r
50 @param[out] PcdInfo The returned information associated with the requested TokenNumber.\r
51 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.\r
52\r
53 @retval EFI_SUCCESS The PCD information was returned successfully.\r
54 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
55**/\r
56EFI_STATUS\r
57EFIAPI\r
58PeiGetPcdInfoGetInfo (\r
59 IN UINTN TokenNumber,\r
60 OUT EFI_PCD_INFO *PcdInfo\r
61 );\r
62\r
63/**\r
64 Retrieve additional information associated with a PCD token.\r
65\r
66 This includes information such as the type of value the TokenNumber is associated with as well as possible\r
67 human readable name that is associated with the token.\r
68\r
69 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
70 @param[in] TokenNumber The PCD token number.\r
71 @param[out] PcdInfo The returned information associated with the requested TokenNumber.\r
72 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.\r
73\r
74 @retval EFI_SUCCESS The PCD information was returned successfully.\r
75 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
76**/\r
77EFI_STATUS\r
78EFIAPI\r
79PeiGetPcdInfoGetInfoEx (\r
80 IN CONST EFI_GUID *Guid,\r
81 IN UINTN TokenNumber,\r
82 OUT EFI_PCD_INFO *PcdInfo\r
83 );\r
84\r
85/**\r
86 Retrieve the currently set SKU Id.\r
87\r
88 @return The currently set SKU Id. If the platform has not set at a SKU Id, then the\r
89 default SKU Id value of 0 is returned. If the platform has set a SKU Id, then the currently set SKU\r
90 Id is returned.\r
91**/\r
92UINTN\r
93EFIAPI\r
94PeiGetPcdInfoGetSku (\r
95 VOID\r
96 );\r
97\r
80408db0 98//\r
99// PPI Interface Implementation Declaration.\r
100//\r
fc547e08 101\r
102/**\r
103 Sets the SKU value for subsequent calls to set or get PCD token values.\r
104\r
d1102dba 105 SetSku() sets the SKU Id to be used for subsequent calls to set or get PCD values.\r
fc547e08 106 SetSku() is normally called only once by the system.\r
107\r
d1102dba
LG
108 For each item (token), the database can hold a single value that applies to all SKUs,\r
109 or multiple values, where each value is associated with a specific SKU Id. Items with multiple,\r
110 SKU-specific values are called SKU enabled.\r
111\r
112 The SKU Id of zero is reserved as a default. The valid SkuId range is 1 to 255.\r
113 For tokens that are not SKU enabled, the system ignores any set SKU Id and works with the\r
114 single value for that token. For SKU-enabled tokens, the system will use the SKU Id set by the\r
115 last call to SetSku(). If no SKU Id is set or the currently set SKU Id isn't valid for the specified token,\r
116 the system uses the default SKU Id. If the system attempts to use the default SKU Id and no value has been\r
fc547e08 117 set for that Id, the results are unpredictable.\r
118\r
d1102dba 119 @param[in] SkuId The SKU value that will be used when the PCD service will retrieve and\r
fc547e08 120 set values associated with a PCD token.\r
121\r
fc547e08 122**/\r
80408db0 123VOID\r
124EFIAPI\r
125PeiPcdSetSku (\r
126 IN UINTN SkuId\r
ed66e1bc 127 );\r
80408db0 128\r
fc547e08 129/**\r
130 Retrieves an 8-bit value for a given PCD token.\r
131\r
d1102dba 132 Retrieves the current byte-sized value for a PCD token number.\r
fc547e08 133 If the TokenNumber is invalid, the results are unpredictable.\r
d1102dba
LG
134\r
135 @param[in] TokenNumber The PCD token number.\r
80408db0 136\r
fc547e08 137 @return The UINT8 value.\r
d1102dba 138\r
fc547e08 139**/\r
80408db0 140UINT8\r
141EFIAPI\r
142PeiPcdGet8 (\r
143 IN UINTN TokenNumber\r
ed66e1bc 144 );\r
80408db0 145\r
fc547e08 146/**\r
147 Retrieves an 16-bit value for a given PCD token.\r
148\r
d1102dba 149 Retrieves the current 16-bits value for a PCD token number.\r
fc547e08 150 If the TokenNumber is invalid, the results are unpredictable.\r
d1102dba
LG
151\r
152 @param[in] TokenNumber The PCD token number.\r
80408db0 153\r
fc547e08 154 @return The UINT16 value.\r
d1102dba 155\r
fc547e08 156**/\r
80408db0 157UINT16\r
158EFIAPI\r
159PeiPcdGet16 (\r
160 IN UINTN TokenNumber\r
ed66e1bc 161 );\r
80408db0 162\r
fc547e08 163/**\r
164 Retrieves an 32-bit value for a given PCD token.\r
165\r
d1102dba 166 Retrieves the current 32-bits value for a PCD token number.\r
fc547e08 167 If the TokenNumber is invalid, the results are unpredictable.\r
d1102dba
LG
168\r
169 @param[in] TokenNumber The PCD token number.\r
80408db0 170\r
fc547e08 171 @return The UINT32 value.\r
d1102dba 172\r
fc547e08 173**/\r
80408db0 174UINT32\r
175EFIAPI\r
176PeiPcdGet32 (\r
177 IN UINTN TokenNumber\r
ed66e1bc 178 );\r
80408db0 179\r
fc547e08 180/**\r
181 Retrieves an 64-bit value for a given PCD token.\r
182\r
d1102dba 183 Retrieves the current 64-bits value for a PCD token number.\r
fc547e08 184 If the TokenNumber is invalid, the results are unpredictable.\r
d1102dba
LG
185\r
186 @param[in] TokenNumber The PCD token number.\r
80408db0 187\r
fc547e08 188 @return The UINT64 value.\r
d1102dba 189\r
fc547e08 190**/\r
80408db0 191UINT64\r
192EFIAPI\r
193PeiPcdGet64 (\r
194 IN UINTN TokenNumber\r
ed66e1bc 195 );\r
80408db0 196\r
fc547e08 197/**\r
198 Retrieves a pointer to a value for a given PCD token.\r
199\r
d1102dba
LG
200 Retrieves the current pointer to the buffer for a PCD token number.\r
201 Do not make any assumptions about the alignment of the pointer that\r
202 is returned by this function call. If the TokenNumber is invalid,\r
fc547e08 203 the results are unpredictable.\r
80408db0 204\r
d1102dba 205 @param[in] TokenNumber The PCD token number.\r
fc547e08 206\r
207 @return The pointer to the buffer to be retrived.\r
d1102dba 208\r
fc547e08 209**/\r
80408db0 210VOID *\r
211EFIAPI\r
212PeiPcdGetPtr (\r
213 IN UINTN TokenNumber\r
ed66e1bc 214 );\r
80408db0 215\r
fc547e08 216/**\r
217 Retrieves a Boolean value for a given PCD token.\r
218\r
d1102dba
LG
219 Retrieves the current boolean value for a PCD token number.\r
220 Do not make any assumptions about the alignment of the pointer that\r
221 is returned by this function call. If the TokenNumber is invalid,\r
fc547e08 222 the results are unpredictable.\r
223\r
d1102dba 224 @param[in] TokenNumber The PCD token number.\r
80408db0 225\r
fc547e08 226 @return The Boolean value.\r
d1102dba 227\r
fc547e08 228**/\r
80408db0 229BOOLEAN\r
230EFIAPI\r
231PeiPcdGetBool (\r
232 IN UINTN TokenNumber\r
ed66e1bc 233 );\r
80408db0 234\r
fc547e08 235/**\r
236 Retrieves the size of the value for a given PCD token.\r
237\r
d1102dba 238 Retrieves the current size of a particular PCD token.\r
fc547e08 239 If the TokenNumber is invalid, the results are unpredictable.\r
80408db0 240\r
d1102dba 241 @param[in] TokenNumber The PCD token number.\r
fc547e08 242\r
243 @return The size of the value for the PCD token.\r
d1102dba 244\r
fc547e08 245**/\r
80408db0 246UINTN\r
247EFIAPI\r
248PeiPcdGetSize (\r
249 IN UINTN TokenNumber\r
ed66e1bc 250 );\r
80408db0 251\r
fc547e08 252/**\r
253 Retrieves an 8-bit value for a given PCD token.\r
80408db0 254\r
d1102dba 255 Retrieves the 8-bit value of a particular PCD token.\r
fc547e08 256 If the TokenNumber is invalid or the token space\r
d1102dba 257 specified by Guid does not exist, the results are\r
fc547e08 258 unpredictable.\r
259\r
260 @param[in] Guid The token space for the token number.\r
d1102dba 261 @param[in] TokenNumber The PCD token number.\r
fc547e08 262\r
263 @return The size 8-bit value for the PCD token.\r
d1102dba 264\r
fc547e08 265**/\r
80408db0 266UINT8\r
267EFIAPI\r
268PeiPcdGet8Ex (\r
269 IN CONST EFI_GUID *Guid,\r
270 IN UINTN TokenNumber\r
ed66e1bc 271 );\r
80408db0 272\r
fc547e08 273/**\r
274 Retrieves an 16-bit value for a given PCD token.\r
275\r
d1102dba 276 Retrieves the 16-bit value of a particular PCD token.\r
fc547e08 277 If the TokenNumber is invalid or the token space\r
d1102dba 278 specified by Guid does not exist, the results are\r
fc547e08 279 unpredictable.\r
80408db0 280\r
fc547e08 281 @param[in] Guid The token space for the token number.\r
d1102dba 282 @param[in] TokenNumber The PCD token number.\r
fc547e08 283\r
284 @return The size 16-bit value for the PCD token.\r
d1102dba 285\r
fc547e08 286**/\r
80408db0 287UINT16\r
288EFIAPI\r
289PeiPcdGet16Ex (\r
290 IN CONST EFI_GUID *Guid,\r
291 IN UINTN TokenNumber\r
ed66e1bc 292 );\r
80408db0 293\r
fc547e08 294/**\r
295 Retrieves an 32-bit value for a given PCD token.\r
296\r
d1102dba 297 Retrieves the 32-bit value of a particular PCD token.\r
fc547e08 298 If the TokenNumber is invalid or the token space\r
d1102dba 299 specified by Guid does not exist, the results are\r
fc547e08 300 unpredictable.\r
301\r
302 @param[in] Guid The token space for the token number.\r
d1102dba 303 @param[in] TokenNumber The PCD token number.\r
fc547e08 304\r
305 @return The size 32-bit value for the PCD token.\r
d1102dba 306\r
fc547e08 307**/\r
80408db0 308UINT32\r
309EFIAPI\r
310PeiPcdGet32Ex (\r
311 IN CONST EFI_GUID *Guid,\r
312 IN UINTN TokenNumber\r
ed66e1bc 313 );\r
80408db0 314\r
fc547e08 315/**\r
316 Retrieves an 64-bit value for a given PCD token.\r
317\r
d1102dba 318 Retrieves the 64-bit value of a particular PCD token.\r
fc547e08 319 If the TokenNumber is invalid or the token space\r
d1102dba 320 specified by Guid does not exist, the results are\r
fc547e08 321 unpredictable.\r
322\r
323 @param[in] Guid The token space for the token number.\r
d1102dba 324 @param[in] TokenNumber The PCD token number.\r
80408db0 325\r
fc547e08 326 @return The size 64-bit value for the PCD token.\r
d1102dba 327\r
fc547e08 328**/\r
80408db0 329UINT64\r
330EFIAPI\r
331PeiPcdGet64Ex (\r
332 IN CONST EFI_GUID *Guid,\r
333 IN UINTN TokenNumber\r
ed66e1bc 334 );\r
80408db0 335\r
fc547e08 336/**\r
337 Retrieves a pointer to a value for a given PCD token.\r
338\r
d1102dba
LG
339 Retrieves the current pointer to the buffer for a PCD token number.\r
340 Do not make any assumptions about the alignment of the pointer that\r
341 is returned by this function call. If the TokenNumber is invalid,\r
fc547e08 342 the results are unpredictable.\r
80408db0 343\r
fc547e08 344 @param[in] Guid The token space for the token number.\r
d1102dba 345 @param[in] TokenNumber The PCD token number.\r
fc547e08 346\r
347 @return The pointer to the buffer to be retrived.\r
d1102dba 348\r
fc547e08 349**/\r
80408db0 350VOID *\r
351EFIAPI\r
352PeiPcdGetPtrEx (\r
353 IN CONST EFI_GUID *Guid,\r
354 IN UINTN TokenNumber\r
ed66e1bc 355 );\r
80408db0 356\r
fc547e08 357/**\r
358 Retrieves an Boolean value for a given PCD token.\r
80408db0 359\r
d1102dba 360 Retrieves the Boolean value of a particular PCD token.\r
fc547e08 361 If the TokenNumber is invalid or the token space\r
d1102dba 362 specified by Guid does not exist, the results are\r
fc547e08 363 unpredictable.\r
364\r
365 @param[in] Guid The token space for the token number.\r
d1102dba 366 @param[in] TokenNumber The PCD token number.\r
fc547e08 367\r
368 @return The size Boolean value for the PCD token.\r
d1102dba 369\r
fc547e08 370**/\r
80408db0 371BOOLEAN\r
372EFIAPI\r
373PeiPcdGetBoolEx (\r
374 IN CONST EFI_GUID *Guid,\r
375 IN UINTN TokenNumber\r
ed66e1bc 376 );\r
80408db0 377\r
fc547e08 378/**\r
379 Retrieves the size of the value for a given PCD token.\r
380\r
d1102dba 381 Retrieves the current size of a particular PCD token.\r
fc547e08 382 If the TokenNumber is invalid, the results are unpredictable.\r
80408db0 383\r
fc547e08 384 @param[in] Guid The token space for the token number.\r
d1102dba 385 @param[in] TokenNumber The PCD token number.\r
fc547e08 386\r
387 @return The size of the value for the PCD token.\r
d1102dba 388\r
fc547e08 389**/\r
80408db0 390UINTN\r
391EFIAPI\r
392PeiPcdGetSizeEx (\r
393 IN CONST EFI_GUID *Guid,\r
394 IN UINTN TokenNumber\r
ed66e1bc 395 );\r
80408db0 396\r
fc547e08 397/**\r
398 Sets an 8-bit value for a given PCD token.\r
399\r
d1102dba
LG
400 When the PCD service sets a value, it will check to ensure that the\r
401 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 402 If it is not, an error will be returned.\r
403\r
d1102dba 404 @param[in] TokenNumber The PCD token number.\r
fc547e08 405 @param[in] Value The value to set for the PCD token.\r
80408db0 406\r
fc547e08 407 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
408 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
409 being set was incompatible with a call to this function.\r
fc547e08 410 Use GetSize() to retrieve the size of the target data.\r
411 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 412\r
fc547e08 413**/\r
80408db0 414EFI_STATUS\r
415EFIAPI\r
416PeiPcdSet8 (\r
417 IN UINTN TokenNumber,\r
418 IN UINT8 Value\r
ed66e1bc 419 );\r
80408db0 420\r
fc547e08 421/**\r
422 Sets an 16-bit value for a given PCD token.\r
423\r
d1102dba
LG
424 When the PCD service sets a value, it will check to ensure that the\r
425 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 426 If it is not, an error will be returned.\r
80408db0 427\r
d1102dba 428 @param[in] TokenNumber The PCD token number.\r
fc547e08 429 @param[in] Value The value to set for the PCD token.\r
430\r
431 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
432 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
433 being set was incompatible with a call to this function.\r
fc547e08 434 Use GetSize() to retrieve the size of the target data.\r
435 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 436\r
fc547e08 437**/\r
80408db0 438EFI_STATUS\r
439EFIAPI\r
440PeiPcdSet16 (\r
441 IN UINTN TokenNumber,\r
442 IN UINT16 Value\r
ed66e1bc 443 );\r
80408db0 444\r
fc547e08 445/**\r
446 Sets an 32-bit value for a given PCD token.\r
80408db0 447\r
d1102dba
LG
448 When the PCD service sets a value, it will check to ensure that the\r
449 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 450 If it is not, an error will be returned.\r
451\r
d1102dba 452 @param[in] TokenNumber The PCD token number.\r
fc547e08 453 @param[in] Value The value to set for the PCD token.\r
454\r
455 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
456 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
457 being set was incompatible with a call to this function.\r
fc547e08 458 Use GetSize() to retrieve the size of the target data.\r
459 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 460\r
fc547e08 461**/\r
80408db0 462EFI_STATUS\r
463EFIAPI\r
464PeiPcdSet32 (\r
465 IN UINTN TokenNumber,\r
466 IN UINT32 Value\r
ed66e1bc 467 );\r
80408db0 468\r
fc547e08 469/**\r
470 Sets an 64-bit value for a given PCD token.\r
471\r
d1102dba
LG
472 When the PCD service sets a value, it will check to ensure that the\r
473 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 474 If it is not, an error will be returned.\r
80408db0 475\r
d1102dba 476 @param[in] TokenNumber The PCD token number.\r
fc547e08 477 @param[in] Value The value to set for the PCD token.\r
478\r
479 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
480 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
481 being set was incompatible with a call to this function.\r
fc547e08 482 Use GetSize() to retrieve the size of the target data.\r
483 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 484\r
fc547e08 485**/\r
80408db0 486EFI_STATUS\r
487EFIAPI\r
488PeiPcdSet64 (\r
489 IN UINTN TokenNumber,\r
490 IN UINT64 Value\r
ed66e1bc 491 );\r
80408db0 492\r
fc547e08 493/**\r
494 Sets a value of a specified size for a given PCD token.\r
495\r
d1102dba
LG
496 When the PCD service sets a value, it will check to ensure that the\r
497 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 498 If it is not, an error will be returned.\r
499\r
d1102dba
LG
500 @param[in] TokenNumber The PCD token number.\r
501 @param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token.\r
502 On input, if the SizeOfValue is greater than the maximum size supported\r
503 for this TokenNumber then the output value of SizeOfValue will reflect\r
fc547e08 504 the maximum size supported for this TokenNumber.\r
505 @param[in] Buffer The buffer to set for the PCD token.\r
506\r
507 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
508 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
509 being set was incompatible with a call to this function.\r
fc547e08 510 Use GetSize() to retrieve the size of the target data.\r
511 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 512\r
fc547e08 513**/\r
80408db0 514EFI_STATUS\r
515EFIAPI\r
516PeiPcdSetPtr (\r
517 IN UINTN TokenNumber,\r
518 IN OUT UINTN *SizeOfBuffer,\r
519 IN VOID *Buffer\r
ed66e1bc 520 );\r
80408db0 521\r
fc547e08 522/**\r
523 Sets an Boolean value for a given PCD token.\r
524\r
d1102dba
LG
525 When the PCD service sets a value, it will check to ensure that the\r
526 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 527 If it is not, an error will be returned.\r
80408db0 528\r
d1102dba 529 @param[in] TokenNumber The PCD token number.\r
fc547e08 530 @param[in] Value The value to set for the PCD token.\r
531\r
532 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
533 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
534 being set was incompatible with a call to this function.\r
fc547e08 535 Use GetSize() to retrieve the size of the target data.\r
536 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 537\r
fc547e08 538**/\r
80408db0 539EFI_STATUS\r
540EFIAPI\r
541PeiPcdSetBool (\r
542 IN UINTN TokenNumber,\r
543 IN BOOLEAN Value\r
ed66e1bc 544 );\r
80408db0 545\r
fc547e08 546/**\r
547 Sets an 8-bit value for a given PCD token.\r
548\r
d1102dba
LG
549 When the PCD service sets a value, it will check to ensure that the\r
550 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 551 If it is not, an error will be returned.\r
552\r
553 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba 554 @param[in] TokenNumber The PCD token number.\r
fc547e08 555 @param[in] Value The value to set for the PCD token.\r
80408db0 556\r
fc547e08 557 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
558 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
559 being set was incompatible with a call to this function.\r
fc547e08 560 Use GetSize() to retrieve the size of the target data.\r
561 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 562\r
fc547e08 563**/\r
80408db0 564EFI_STATUS\r
565EFIAPI\r
566PeiPcdSet8Ex (\r
567 IN CONST EFI_GUID *Guid,\r
568 IN UINTN TokenNumber,\r
569 IN UINT8 Value\r
ed66e1bc 570 );\r
80408db0 571\r
fc547e08 572/**\r
573 Sets an 16-bit value for a given PCD token.\r
574\r
d1102dba
LG
575 When the PCD service sets a value, it will check to ensure that the\r
576 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 577 If it is not, an error will be returned.\r
578\r
579 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba 580 @param[in] TokenNumber The PCD token number.\r
fc547e08 581 @param[in] Value The value to set for the PCD token.\r
582\r
583 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
584 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
585 being set was incompatible with a call to this function.\r
fc547e08 586 Use GetSize() to retrieve the size of the target data.\r
587 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 588\r
fc547e08 589**/\r
80408db0 590EFI_STATUS\r
591EFIAPI\r
592PeiPcdSet16Ex (\r
593 IN CONST EFI_GUID *Guid,\r
594 IN UINTN TokenNumber,\r
595 IN UINT16 Value\r
ed66e1bc 596 );\r
80408db0 597\r
fc547e08 598/**\r
599 Sets an 32-bit value for a given PCD token.\r
600\r
d1102dba
LG
601 When the PCD service sets a value, it will check to ensure that the\r
602 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 603 If it is not, an error will be returned.\r
80408db0 604\r
fc547e08 605 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba 606 @param[in] TokenNumber The PCD token number.\r
fc547e08 607 @param[in] Value The value to set for the PCD token.\r
608\r
609 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
610 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
611 being set was incompatible with a call to this function.\r
fc547e08 612 Use GetSize() to retrieve the size of the target data.\r
613 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 614\r
fc547e08 615**/\r
80408db0 616EFI_STATUS\r
617EFIAPI\r
618PeiPcdSet32Ex (\r
619 IN CONST EFI_GUID *Guid,\r
620 IN UINTN TokenNumber,\r
621 IN UINT32 Value\r
ed66e1bc 622 );\r
80408db0 623\r
fc547e08 624/**\r
625 Sets an 64-bit value for a given PCD token.\r
80408db0 626\r
d1102dba
LG
627 When the PCD service sets a value, it will check to ensure that the\r
628 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 629 If it is not, an error will be returned.\r
630\r
631 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba 632 @param[in] TokenNumber The PCD token number.\r
fc547e08 633 @param[in] Value The value to set for the PCD token.\r
634\r
635 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
636 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
637 being set was incompatible with a call to this function.\r
fc547e08 638 Use GetSize() to retrieve the size of the target data.\r
639 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 640\r
fc547e08 641**/\r
80408db0 642EFI_STATUS\r
643EFIAPI\r
644PeiPcdSet64Ex (\r
645 IN CONST EFI_GUID *Guid,\r
646 IN UINTN TokenNumber,\r
647 IN UINT64 Value\r
ed66e1bc 648 );\r
80408db0 649\r
fc547e08 650/**\r
651 Sets a value of a specified size for a given PCD token.\r
652\r
d1102dba
LG
653 When the PCD service sets a value, it will check to ensure that the\r
654 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 655 If it is not, an error will be returned.\r
656\r
657 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba
LG
658 @param[in] TokenNumber The PCD token number.\r
659 @param[in, out] SizeOfBuffer A pointer to the length of the value being set for the PCD token.\r
660 On input, if the SizeOfValue is greater than the maximum size supported\r
661 for this TokenNumber then the output value of SizeOfValue will reflect\r
fc547e08 662 the maximum size supported for this TokenNumber.\r
663 @param[in] Buffer The buffer to set for the PCD token.\r
664\r
665 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
666 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
667 being set was incompatible with a call to this function.\r
fc547e08 668 Use GetSize() to retrieve the size of the target data.\r
669 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 670\r
fc547e08 671**/\r
80408db0 672EFI_STATUS\r
673EFIAPI\r
674PeiPcdSetPtrEx (\r
675 IN CONST EFI_GUID *Guid,\r
676 IN UINTN TokenNumber,\r
677 IN OUT UINTN *SizeOfBuffer,\r
678 IN VOID *Buffer\r
ed66e1bc 679 );\r
80408db0 680\r
fc547e08 681/**\r
682 Sets an Boolean value for a given PCD token.\r
683\r
d1102dba
LG
684 When the PCD service sets a value, it will check to ensure that the\r
685 size of the value being set is compatible with the Token's existing definition.\r
fc547e08 686 If it is not, an error will be returned.\r
80408db0 687\r
fc547e08 688 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba 689 @param[in] TokenNumber The PCD token number.\r
fc547e08 690 @param[in] Value The value to set for the PCD token.\r
691\r
692 @retval EFI_SUCCESS Procedure returned successfully.\r
d1102dba
LG
693 @retval EFI_INVALID_PARAMETER The PCD service determined that the size of the data\r
694 being set was incompatible with a call to this function.\r
fc547e08 695 Use GetSize() to retrieve the size of the target data.\r
696 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
d1102dba 697\r
fc547e08 698**/\r
80408db0 699EFI_STATUS\r
700EFIAPI\r
701PeiPcdSetBoolEx (\r
702 IN CONST EFI_GUID *Guid,\r
703 IN UINTN TokenNumber,\r
704 IN BOOLEAN Value\r
ed66e1bc 705 );\r
80408db0 706\r
fc547e08 707/**\r
708 Specifies a function to be called anytime the value of a designated token is changed.\r
80408db0 709\r
fc547e08 710 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba
LG
711 @param[in] TokenNumber The PCD token number.\r
712 @param[in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set.\r
80408db0 713\r
d1102dba 714 @retval EFI_SUCCESS The PCD service has successfully established a call event\r
fc547e08 715 for the CallBackToken requested.\r
716 @retval EFI_NOT_FOUND The PCD service could not find the referenced token number.\r
717\r
718**/\r
80408db0 719EFI_STATUS\r
720EFIAPI\r
721PeiRegisterCallBackOnSet (\r
722 IN CONST EFI_GUID *Guid, OPTIONAL\r
723 IN UINTN TokenNumber,\r
724 IN PCD_PPI_CALLBACK CallBackFunction\r
ed66e1bc 725 );\r
80408db0 726\r
fc547e08 727/**\r
728 Cancels a previously set callback function for a particular PCD token number.\r
729\r
730 @param [in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
d1102dba
LG
731 @param [in] TokenNumber The PCD token number.\r
732 @param [in] CallBackFunction The function prototype called when the value associated with the CallBackToken is set.\r
fc547e08 733\r
d1102dba 734 @retval EFI_SUCCESS The PCD service has successfully established a call event\r
fc547e08 735 for the CallBackToken requested.\r
736 @retval EFI_NOT_FOUND The PCD service could not find the referenced token number.\r
80408db0 737\r
fc547e08 738**/\r
80408db0 739EFI_STATUS\r
740EFIAPI\r
741PcdUnRegisterCallBackOnSet (\r
742 IN CONST EFI_GUID *Guid, OPTIONAL\r
743 IN UINTN TokenNumber,\r
744 IN PCD_PPI_CALLBACK CallBackFunction\r
ed66e1bc 745 );\r
80408db0 746\r
fc547e08 747/**\r
d1102dba
LG
748 Retrieves the next valid token number in a given namespace.\r
749\r
750 This is useful since the PCD infrastructure contains a sparse list of token numbers,\r
751 and one cannot a priori know what token numbers are valid in the database.\r
752\r
753 If TokenNumber is 0 and Guid is not NULL, then the first token from the token space specified by Guid is returned.\r
754 If TokenNumber is not 0 and Guid is not NULL, then the next token in the token space specified by Guid is returned.\r
755 If TokenNumber is 0 and Guid is NULL, then the first token in the default token space is returned.\r
756 If TokenNumber is not 0 and Guid is NULL, then the next token in the default token space is returned.\r
757 The token numbers in the default token space may not be related to token numbers in token spaces that are named by Guid.\r
758 If the next token number can be retrieved, then it is returned in TokenNumber, and EFI_SUCCESS is returned.\r
759 If TokenNumber represents the last token number in the token space specified by Guid, then EFI_NOT_FOUND is returned.\r
90e06556 760 If TokenNumber is not present in the token space specified by Guid, then EFI_NOT_FOUND is returned.\r
761\r
762\r
d1102dba
LG
763 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
764 This is an optional parameter that may be NULL. If this parameter is NULL, then a request\r
90e06556 765 is being made to retrieve tokens from the default token space.\r
766 @param[in, out] TokenNumber A pointer to the PCD token number to use to find the subsequent token number.\r
d1102dba
LG
767\r
768 @retval EFI_SUCCESS The PCD service has retrieved the next valid token number.\r
769 Or the input token number is already the last valid token number in the PCD database.\r
fc547e08 770 In the later case, *TokenNumber is updated with the value of 0.\r
771 @retval EFI_NOT_FOUND If this input token number and token namespace does not exist on the platform.\r
772\r
773**/\r
80408db0 774EFI_STATUS\r
775EFIAPI\r
776PeiPcdGetNextToken (\r
777 IN CONST EFI_GUID *Guid, OPTIONAL\r
778 IN OUT UINTN *TokenNumber\r
ed66e1bc 779 );\r
80408db0 780\r
fc547e08 781/**\r
782 Retrieves the next valid PCD token namespace for a given namespace.\r
783\r
d1102dba
LG
784 @param[in, out] Guid An indirect pointer to EFI_GUID. On input it designates\r
785 a known token namespace from which the search will start. On output,\r
786 it designates the next valid token namespace on the platform. If the input\r
787 token namespace does not exist on the platform, an error is returned and\r
788 the value of *Guid is undefined. If *Guid is NULL, then the GUID of the\r
789 first token space of the current platform is assigned to *Guid the function\r
790 return EFI_SUCCESS. If *Guid is NULL and there is no namespace exist in\r
791 the platform other than the default (NULL) tokennamespace, *Guid is unchanged\r
792 and the function return EFI_SUCCESS. If this input token namespace is the last\r
793 namespace on the platform, *Guid will be assigned to NULL and the function return\r
794 EFI_SUCCESS.\r
795\r
796 @retval EFI_SUCCESS The PCD service retrieved the next valid token space Guid.\r
797 Or the input token space Guid is already the last valid token space Guid\r
fc547e08 798 in the PCD database. In the later case, *Guid is updated with the value of NULL.\r
799 @retval EFI_NOT_FOUND If the input token namespace does not exist on the platform.\r
80408db0 800\r
fc547e08 801**/\r
80408db0 802EFI_STATUS\r
803EFIAPI\r
804PeiPcdGetNextTokenSpace (\r
fc547e08 805 IN OUT CONST EFI_GUID **Guid\r
ed66e1bc 806 );\r
80408db0 807\r
96d6d004
SZ
808/**\r
809 Retrieve additional information associated with a PCD token.\r
810\r
811 This includes information such as the type of value the TokenNumber is associated with as well as possible\r
812 human readable name that is associated with the token.\r
813\r
814 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
815 @param[in] TokenNumber The PCD token number.\r
816 @param[out] PcdInfo The returned information associated with the requested TokenNumber.\r
d1102dba 817 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.\r
96d6d004
SZ
818\r
819 @retval EFI_SUCCESS The PCD information was returned successfully\r
820 @retval EFI_NOT_FOUND The PCD service could not find the requested token number.\r
821**/\r
822EFI_STATUS\r
96d6d004
SZ
823PeiGetPcdInfo (\r
824 IN CONST EFI_GUID *Guid,\r
825 IN UINTN TokenNumber,\r
826 OUT EFI_PCD_INFO *PcdInfo\r
827 );\r
80408db0 828\r
829/* Internal Function definitions */\r
fc547e08 830/**\r
831 Get PCD database from GUID HOB in PEI phase.\r
832\r
833 @return Pointer to PCD database.\r
80408db0 834\r
fc547e08 835**/\r
80408db0 836PEI_PCD_DATABASE *\r
837GetPcdDatabase (\r
838 VOID\r
ed66e1bc 839 );\r
80408db0 840\r
fc547e08 841/**\r
842 Wrapper function for setting non-pointer type value for a PCD entry.\r
843\r
844 @param TokenNumber Pcd token number autogenerated by build tools.\r
845 @param Data Value want to be set for PCD entry\r
846 @param Size Size of value.\r
80408db0 847\r
fc547e08 848 @return status of SetWorker.\r
849\r
850**/\r
80408db0 851EFI_STATUS\r
852SetValueWorker (\r
853 IN UINTN TokenNumber,\r
854 IN VOID *Data,\r
855 IN UINTN Size\r
ed66e1bc 856 );\r
80408db0 857\r
fc547e08 858/**\r
859 Set value for an PCD entry\r
80408db0 860\r
fc547e08 861 @param TokenNumber Pcd token number autogenerated by build tools.\r
862 @param Data Value want to be set for PCD entry\r
863 @param Size Size of value.\r
864 @param PtrType If TRUE, the type of PCD entry's value is Pointer.\r
865 If False, the type of PCD entry's value is not Pointer.\r
866\r
867 @retval EFI_INVALID_PARAMETER If this PCD type is VPD, VPD PCD can not be set.\r
868 @retval EFI_INVALID_PARAMETER If Size can not be set to size table.\r
149fb6d6 869 @retval EFI_INVALID_PARAMETER If Size of non-Ptr type PCD does not match the size information in PCD database.\r
fc547e08 870 @retval EFI_NOT_FOUND If value type of PCD entry is intergrate, but not in\r
871 range of UINT8, UINT16, UINT32, UINT64\r
d1102dba 872 @retval EFI_NOT_FOUND Can not find the PCD type according to token number.\r
fc547e08 873**/\r
80408db0 874EFI_STATUS\r
875SetWorker (\r
876 IN UINTN TokenNumber,\r
877 IN VOID *Data,\r
878 IN OUT UINTN *Size,\r
879 IN BOOLEAN PtrType\r
ed66e1bc 880 );\r
80408db0 881\r
fc547e08 882/**\r
883 Wrapper function for set PCD value for non-Pointer type dynamic-ex PCD.\r
80408db0 884\r
fc547e08 885 @param ExTokenNumber Token number for dynamic-ex PCD.\r
886 @param Guid Token space guid for dynamic-ex PCD.\r
887 @param Data Value want to be set.\r
888 @param SetSize The size of value.\r
889\r
890 @return status of ExSetWorker().\r
891\r
892**/\r
80408db0 893EFI_STATUS\r
894ExSetValueWorker (\r
895 IN UINTN ExTokenNumber,\r
896 IN CONST EFI_GUID *Guid,\r
897 IN VOID *Data,\r
898 IN UINTN Size\r
ed66e1bc 899 );\r
80408db0 900\r
fc547e08 901/**\r
902 Set value for a dynamic PCD entry.\r
d1102dba
LG
903\r
904 This routine find the local token number according to dynamic-ex PCD's token\r
fc547e08 905 space guid and token number firstly, and invoke callback function if this PCD\r
906 entry registered callback function. Finally, invoken general SetWorker to set\r
907 PCD value.\r
d1102dba 908\r
fc547e08 909 @param ExTokenNumber Dynamic-ex PCD token number.\r
910 @param Guid Token space guid for dynamic-ex PCD.\r
911 @param Data PCD value want to be set\r
912 @param SetSize Size of value.\r
913 @param PtrType If TRUE, this PCD entry is pointer type.\r
914 If FALSE, this PCD entry is not pointer type.\r
915\r
916 @return status of SetWorker().\r
80408db0 917\r
fc547e08 918**/\r
80408db0 919EFI_STATUS\r
920ExSetWorker (\r
921 IN UINTN ExTokenNumber,\r
922 IN CONST EFI_GUID *Guid,\r
923 IN VOID *Data,\r
924 IN OUT UINTN *Size,\r
925 IN BOOLEAN PtrType\r
ed66e1bc 926 );\r
80408db0 927\r
fc547e08 928/**\r
929 Get the PCD entry pointer in PCD database.\r
d1102dba 930\r
fc547e08 931 This routine will visit PCD database to find the PCD entry according to given\r
d1102dba
LG
932 token number. The given token number is autogened by build tools and it will be\r
933 translated to local token number. Local token number contains PCD's type and\r
fc547e08 934 offset of PCD entry in PCD database.\r
935\r
936 @param TokenNumber Token's number, it is autogened by build tools\r
937 @param GetSize The size of token's value\r
80408db0 938\r
fc547e08 939 @return PCD entry pointer in PCD database\r
80408db0 940\r
fc547e08 941**/\r
80408db0 942VOID *\r
943GetWorker (\r
944 IN UINTN TokenNumber,\r
945 IN UINTN GetSize\r
ed66e1bc 946 );\r
80408db0 947\r
fc547e08 948/**\r
949 Wrapper function for get PCD value for dynamic-ex PCD.\r
950\r
951 @param Guid Token space guid for dynamic-ex PCD.\r
952 @param ExTokenNumber Token number for dyanmic-ex PCD.\r
953 @param GetSize The size of dynamic-ex PCD value.\r
80408db0 954\r
fc547e08 955 @return PCD entry in PCD database.\r
80408db0 956\r
fc547e08 957**/\r
80408db0 958VOID *\r
959ExGetWorker (\r
960 IN CONST EFI_GUID *Guid,\r
961 IN UINTN ExTokenNumber,\r
962 IN UINTN GetSize\r
ed66e1bc 963 );\r
80408db0 964\r
965typedef struct {\r
966 UINTN TokenNumber;\r
967 UINTN Size;\r
968 UINT32 LocalTokenNumberAlias;\r
969} EX_PCD_ENTRY_ATTRIBUTE;\r
970\r
fc547e08 971/**\r
419db80b 972 Get Token Number according to dynamic-ex PCD's {token space guid:token number}\r
fc547e08 973\r
974 A dynamic-ex type PCD, developer must provide pair of token space guid: token number\r
975 in DEC file. PCD database maintain a mapping table that translate pair of {token\r
419db80b 976 space guid: token number} to Token Number.\r
d1102dba 977\r
fc547e08 978 @param Guid Token space guid for dynamic-ex PCD entry.\r
a5eca427 979 @param ExTokenNumber Token number for dynamic-ex PCD.\r
80408db0 980\r
419db80b 981 @return Token Number for dynamic-ex PCD.\r
fc547e08 982\r
983**/\r
c52fa98c 984UINTN\r
80408db0 985GetExPcdTokenNumber (\r
986 IN CONST EFI_GUID *Guid,\r
987 IN UINTN ExTokenNumber\r
ed66e1bc 988 );\r
80408db0 989\r
fc547e08 990/**\r
991 The function registers the CallBackOnSet fucntion\r
992 according to TokenNumber and EFI_GUID space.\r
80408db0 993\r
fc547e08 994 @param TokenNumber The token number.\r
995 @param Guid The GUID space.\r
996 @param CallBackFunction The Callback function to be registered.\r
997 @param Register To register or unregister the callback function.\r
80408db0 998\r
fc547e08 999 @retval EFI_SUCCESS If the Callback function is registered.\r
1000 @retval EFI_NOT_FOUND If the PCD Entry is not found according to Token Number and GUID space.\r
1001 @retval EFI_OUT_OF_RESOURCES If the callback function can't be registered because there is not free\r
1002 slot left in the CallbackFnTable.\r
1003**/\r
80408db0 1004EFI_STATUS\r
1005PeiRegisterCallBackWorker (\r
1006 IN UINTN TokenNumber,\r
fc547e08 1007 IN CONST EFI_GUID *Guid, OPTIONAL\r
80408db0 1008 IN PCD_PPI_CALLBACK CallBackFunction,\r
1009 IN BOOLEAN Register\r
a3a70b6a 1010 );\r
80408db0 1011\r
fc547e08 1012/**\r
1013 The function builds the PCD database.\r
419db80b
BF
1014\r
1015 @param FileHandle Handle of the file the external PCD database binary located.\r
1016\r
96d6d004
SZ
1017 @return Pointer to PCD database.\r
1018\r
fc547e08 1019**/\r
96d6d004 1020PEI_PCD_DATABASE *\r
80408db0 1021BuildPcdDatabase (\r
419db80b 1022 IN EFI_PEI_FILE_HANDLE FileHandle\r
ed66e1bc 1023 );\r
80408db0 1024\r
fc547e08 1025/**\r
1026 Get index of PCD entry in size table.\r
1027\r
1028 @param LocalTokenNumberTableIdx Index of this PCD in local token number table.\r
1029 @param Database Pointer to PCD database.\r
1030\r
1031 @return index of PCD entry in size table.\r
1032\r
1033**/\r
80408db0 1034UINTN\r
1035GetSizeTableIndex (\r
1036 IN UINTN LocalTokenNumberTableIdx,\r
1037 IN PEI_PCD_DATABASE *Database\r
ed66e1bc 1038 );\r
80408db0 1039\r
fc547e08 1040/**\r
1041 Get PCD value's size for POINTER type PCD.\r
d1102dba 1042\r
fc547e08 1043 The POINTER type PCD's value will be stored into a buffer in specificed size.\r
1044 The max size of this PCD's value is described in PCD's definition in DEC file.\r
1045\r
1046 @param LocalTokenNumberTableIdx Index of PCD token number in PCD token table\r
1047 @param MaxSize Maxmium size of PCD's value\r
1048 @param Database Pcd database in PEI phase.\r
1049\r
1050 @return PCD value's size for POINTER type PCD.\r
1051\r
1052**/\r
80408db0 1053UINTN\r
1054GetPtrTypeSize (\r
1055 IN UINTN LocalTokenNumberTableIdx,\r
1056 OUT UINTN *MaxSize,\r
1057 IN PEI_PCD_DATABASE *Database\r
ed66e1bc 1058 );\r
80408db0 1059\r
fc547e08 1060/**\r
1061 Set PCD value's size for POINTER type PCD.\r
d1102dba 1062\r
fc547e08 1063 The POINTER type PCD's value will be stored into a buffer in specificed size.\r
1064 The max size of this PCD's value is described in PCD's definition in DEC file.\r
80408db0 1065\r
fc547e08 1066 @param LocalTokenNumberTableIdx Index of PCD token number in PCD token table\r
1067 @param CurrentSize Maxmium size of PCD's value\r
1068 @param Database Pcd database in PEI phase.\r
80408db0 1069\r
fc547e08 1070 @retval TRUE Success to set PCD's value size, which is not exceed maxmium size\r
1071 @retval FALSE Fail to set PCD's value size, which maybe exceed maxmium size\r
1072\r
1073**/\r
80408db0 1074BOOLEAN\r
1075SetPtrTypeSize (\r
1076 IN UINTN LocalTokenNumberTableIdx,\r
1077 IN OUT UINTN *CurrentSize,\r
1078 IN PEI_PCD_DATABASE *Database\r
ed66e1bc 1079 );\r
80408db0 1080\r
80408db0 1081#endif\r
a5eca427 1082\r