2 Provides library services to get and set Platform Configuration Database entries.
4 PCD Library Class provides a PCD usage macro interface for all PCD types.
5 It should be included in any module that uses PCD. If a module uses dynamic/dynamicex
6 PCD, module should be linked to a PEIM/DXE library instance to access that PCD.
7 If a module uses PatchableInModule type PCD, it also needs the library instance to produce
8 LibPatchPcdSetPtr() interface. For FeatureFlag/Fixed PCD, the macro interface is
9 translated to a variable or macro that is auto-generated by build tool in
10 module's autogen.h/autogen.c.
11 The PcdGetXX(), PcdSetXX(), PcdToken(), and PcdGetNextTokenSpace() operations are
12 only available prior to ExitBootServices(). If access to PCD values are required
13 at runtime, then their values must be collected prior to ExitBootServices().
14 There are no restrictions on the use of FeaturePcd(), FixedPcdGetXX(),
15 PatchPcdGetXX(), and PatchPcdSetXX().
17 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
18 SPDX-License-Identifier: BSD-2-Clause-Patent
26 Retrieves a token number based on a token name.
28 Returns the token number associated with the PCD token specified by TokenName.
29 If TokenName is not a valid token in the token space, then the module will not build.
31 @param TokenName The name of the PCD token to retrieve the token number for.
33 @return The token number associated with the PCD.
36 #define PcdToken(TokenName) _PCD_TOKEN_##TokenName
39 Retrieves a Boolean PCD feature flag based on a token name.
41 Returns the Boolean value for the PCD feature flag specified by TokenName.
42 If TokenName is not a valid token in the token space, then the module will not build.
43 If TokenName is not a feature flag PCD, then the module will not build.
45 @param TokenName The name of the PCD token to retrieve a current value for.
47 @return Boolean value for the PCD feature flag.
50 #define FeaturePcdGet(TokenName) _PCD_GET_MODE_BOOL_##TokenName
53 Retrieves an 8-bit fixed PCD token value based on a token name.
55 Returns the 8-bit value for the token specified by TokenName.
56 If TokenName is not a valid token in the token space, then the module will not build.
57 If TokenName is not a fixed at build PCD, then the module will not build.
59 @param TokenName The name of the PCD token to retrieve a current value for.
61 @return 8-bit value for the token specified by TokenName.
64 #define FixedPcdGet8(TokenName) _PCD_VALUE_##TokenName
67 Retrieves a 16-bit fixed PCD token value based on a token name.
69 Returns the 16-bit value for the token specified by TokenName.
70 If TokenName is not a valid token in the token space, then the module will not build.
71 If TokenName is not a fixed at build PCD, then the module will not build.
73 @param TokenName The name of the PCD token to retrieve a current value for.
75 @return 16-bit value for the token specified by TokenName.
78 #define FixedPcdGet16(TokenName) _PCD_VALUE_##TokenName
81 Retrieves a 32-bit fixed PCD token value based on a token name.
83 Returns the 32-bit value for the token specified by TokenName.
84 If TokenName is not a valid token in the token space, then the module will not build.
85 If TokenName is not a fixed at build PCD, then the module will not build.
87 @param TokenName The name of the PCD token to retrieve a current value for.
89 @return 32-bit value for the token specified by TokenName.
92 #define FixedPcdGet32(TokenName) _PCD_VALUE_##TokenName
95 Retrieves a 64-bit fixed PCD token value based on a token name.
97 Returns the 64-bit value for the token specified by TokenName.
98 If TokenName is not a valid token in the token space, then the module will not build.
99 If TokenName is not a fixed at build PCD, then the module will not build.
101 @param TokenName The name of the PCD token to retrieve a current value for.
103 @return 64-bit value for the token specified by TokenName.
106 #define FixedPcdGet64(TokenName) _PCD_VALUE_##TokenName
109 Retrieves a Boolean fixed PCD token value based on a token name.
111 Returns the Boolean value for the token specified by TokenName.
112 If TokenName is not a valid token in the token space, then the module will not build.
113 If TokenName is not a fixed at build PCD, then the module will not build.
115 @param TokenName The name of the PCD token to retrieve a current value for.
117 @return The Boolean value for the token.
120 #define FixedPcdGetBool(TokenName) _PCD_VALUE_##TokenName
123 Retrieves a pointer to a fixed PCD token buffer based on a token name.
125 Returns a pointer to the buffer for the token specified by TokenName.
126 If TokenName is not a valid token in the token space, then the module will not build.
127 If TokenName is not a fixed at build PCD, then the module will not build.
129 @param TokenName The name of the PCD token to retrieve a current value for.
131 @return A pointer to the buffer.
134 #define FixedPcdGetPtr(TokenName) ((VOID *)_PCD_VALUE_##TokenName)
137 Retrieves an 8-bit binary patchable PCD token value based on a token name.
139 Returns the 8-bit value for the token specified by TokenName.
140 If TokenName is not a valid token in the token space, then the module will not build.
141 If TokenName is not a patchable in module PCD, then the module will not build.
143 @param TokenName The name of the PCD token to retrieve a current value for.
145 @return An 8-bit binary patchable PCD token value.
148 #define PatchPcdGet8(TokenName) _gPcd_BinaryPatch_##TokenName
151 Retrieves a 16-bit binary patchable PCD token value based on a token name.
153 Returns the 16-bit value for the token specified by TokenName.
154 If TokenName is not a valid token in the token space, then the module will not build.
155 If TokenName is not a patchable in module PCD, then the module will not build.
157 @param TokenName The name of the PCD token to retrieve a current value for.
159 @return A 16-bit binary patchable PCD token value.
162 #define PatchPcdGet16(TokenName) _gPcd_BinaryPatch_##TokenName
165 Retrieves a 32-bit binary patchable PCD token value based on a token name.
167 Returns the 32-bit value for the token specified by TokenName.
168 If TokenName is not a valid token in the token space, then the module will not build.
169 If TokenName is not a patchable in module PCD, then the module will not build.
171 @param TokenName The name of the PCD token to retrieve a current value for.
173 @return A 32-bit binary patchable PCD token value.
176 #define PatchPcdGet32(TokenName) _gPcd_BinaryPatch_##TokenName
179 Retrieves a 64-bit binary patchable PCD token value based on a token name.
181 Returns the 64-bit value for the token specified by TokenName.
182 If TokenName is not a valid token in the token space, then the module will not build.
183 If TokenName is not a patchable in module PCD, then the module will not build.
185 @param TokenName The name of the PCD token to retrieve a current value for.
187 @return A 64-bit binary patchable PCD token value.
190 #define PatchPcdGet64(TokenName) _gPcd_BinaryPatch_##TokenName
193 Retrieves a Boolean binary patchable PCD token value based on a token name.
195 Returns the Boolean value for the token specified by TokenName.
196 If TokenName is not a valid token in the token space, then the module will not build.
197 If TokenName is not a patchable in module PCD, then the module will not build.
199 @param TokenName The name of the PCD token to retrieve a current value for.
201 @return The Boolean value for the token.
204 #define PatchPcdGetBool(TokenName) _gPcd_BinaryPatch_##TokenName
207 Retrieves a pointer to a binary patchable PCD token buffer based on a token name.
209 Returns a pointer to the buffer for the token specified by TokenName.
210 If TokenName is not a valid token in the token space, then the module will not build.
211 If TokenName is not a patchable in module PCD, then the module will not build.
213 @param TokenName The name of the PCD token to retrieve a current value for.
215 @return A pointer to the buffer for the token.
218 #define PatchPcdGetPtr(TokenName) ((VOID *)_gPcd_BinaryPatch_##TokenName)
221 Sets an 8-bit binary patchable PCD token value based on a token name.
223 Sets the 8-bit value for the token specified by TokenName. Value is returned.
224 If TokenName is not a valid token in the token space, then the module will not build.
225 If TokenName is not a patchable in module PCD, then the module will not build.
227 @param TokenName The name of the binary patchable PCD token to set the current value for.
228 @param Value The 8-bit value to set.
230 @return Return the Value that was set.
233 #define PatchPcdSet8(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
236 Sets a 16-bit binary patchable PCD token value based on a token name.
238 Sets the 16-bit value for the token specified by TokenName. Value is returned.
239 If TokenName is not a valid token in the token space, then the module will not build.
240 If TokenName is not a patchable in module PCD, then the module will not build.
242 @param TokenName The name of the binary patchable PCD token to set the current value for.
243 @param Value The 16-bit value to set.
245 @return Return the Value that was set.
248 #define PatchPcdSet16(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
251 Sets a 32-bit binary patchable PCD token value based on a token name.
253 Sets the 32-bit value for the token specified by TokenName. Value is returned.
254 If TokenName is not a valid token in the token space, then the module will not build.
255 If TokenName is not a patchable in module PCD, then the module will not build.
257 @param TokenName The name of the binary patchable PCD token to set the current value for.
258 @param Value The 32-bit value to set.
260 @return Return the Value that was set.
263 #define PatchPcdSet32(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
266 Sets a 64-bit binary patchable PCD token value based on a token name.
268 Sets the 64-bit value for the token specified by TokenName. Value is returned.
269 If TokenName is not a valid token in the token space, then the module will not build.
270 If TokenName is not a patchable in module PCD, then the module will not build.
272 @param TokenName The name of the binary patchable PCD token to set the current value for.
273 @param Value The 64-bit value to set.
275 @return Return the Value that was set.
278 #define PatchPcdSet64(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
281 Sets a Boolean binary patchable PCD token value based on a token name.
283 Sets the Boolean value for the token specified by TokenName. Value is returned.
284 If TokenName is not a valid token in the token space, then the module will not build.
285 If TokenName is not a patchable in module PCD, then the module will not build.
287 @param TokenName The name of the binary patchable PCD token to set the current value for.
288 @param Value The boolean value to set.
290 @return Return the Value that was set.
293 #define PatchPcdSetBool(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = (Value))
296 Sets a pointer to a binary patchable PCD token buffer based on a token name.
298 Sets the buffer for the token specified by TokenName. Buffer is returned.
299 If SizeOfBuffer is greater than the maximum size supported by TokenName, then set SizeOfBuffer
300 to the maximum size supported by TokenName and return NULL to indicate that the set operation
301 was not actually performed. If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be
302 set to the maximum size supported by TokenName and NULL must be returned.
303 If TokenName is not a valid token in the token space, then the module will not build.
304 If TokenName is not a patchable in module PCD, then the module will not build.
306 If SizeOfBuffer is NULL, then ASSERT().
307 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
309 @param TokenName The name of the binary patchable PCD token to set the current value for.
310 @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.
311 @param Buffer Pointer to the value to set.
313 @return Return the pointer to the Buffer that was set.
316 #define PatchPcdSetPtr(TokenName, Size, Buffer) \
317 LibPatchPcdSetPtrAndSize ( \
318 (VOID *)_gPcd_BinaryPatch_##TokenName, \
319 &_gPcd_BinaryPatch_Size_##TokenName, \
320 (UINTN)_PCD_PATCHABLE_##TokenName##_SIZE, \
326 Retrieves an 8-bit PCD token value based on a token name.
328 Returns the 8-bit value for the token specified by TokenName.
329 If TokenName is not a valid token in the token space, then the module will not build.
331 @param TokenName The name of the PCD token to retrieve a current value for.
333 @return 8-bit value for the token specified by TokenName.
336 #define PcdGet8(TokenName) _PCD_GET_MODE_8_##TokenName
339 Retrieves a 16-bit PCD token value based on a token name.
341 Returns the 16-bit value for the token specified by TokenName.
342 If TokenName is not a valid token in the token space, then the module will not build.
344 @param TokenName The name of the PCD token to retrieve a current value for.
346 @return 16-bit value for the token specified by TokenName.
349 #define PcdGet16(TokenName) _PCD_GET_MODE_16_##TokenName
352 Retrieves a 32-bit PCD token value based on a token name.
354 Returns the 32-bit value for the token specified by TokenName.
355 If TokenName is not a valid token in the token space, then the module will not build.
357 @param TokenName The name of the PCD token to retrieve a current value for.
359 @return 32-bit value for the token specified by TokenName.
362 #define PcdGet32(TokenName) _PCD_GET_MODE_32_##TokenName
365 Retrieves a 64-bit PCD token value based on a token name.
367 Returns the 64-bit value for the token specified by TokenName.
368 If TokenName is not a valid token in the token space, then the module will not build.
370 @param TokenName The name of the PCD token to retrieve a current value for.
372 @return 64-bit value for the token specified by TokenName.
375 #define PcdGet64(TokenName) _PCD_GET_MODE_64_##TokenName
378 Retrieves a pointer to a PCD token buffer based on a token name.
380 Returns a pointer to the buffer for the token specified by TokenName.
381 If TokenName is not a valid token in the token space, then the module will not build.
383 @param TokenName The name of the PCD token to retrieve a current value for.
385 @return A pointer to the buffer.
388 #define PcdGetPtr(TokenName) _PCD_GET_MODE_PTR_##TokenName
391 Retrieves a Boolean PCD token value based on a token name.
393 Returns the Boolean value for the token specified by TokenName.
394 If TokenName is not a valid token in the token space, then the module will not build.
396 @param TokenName The name of the PCD token to retrieve a current value for.
398 @return A Boolean PCD token value.
401 #define PcdGetBool(TokenName) _PCD_GET_MODE_BOOL_##TokenName
404 Retrieves the size of a fixed PCD token based on a token name.
406 Returns the size of the token specified by TokenName.
407 If TokenName is not a valid token in the token space, then the module will not build.
409 @param[in] TokenName The name of the PCD token to retrieve a current value size for.
411 @return Return the size
414 #define FixedPcdGetSize(TokenName) _PCD_SIZE_##TokenName
417 Retrieves the size of a binary patchable PCD token based on a token name.
419 Returns the size of the token specified by TokenName.
420 If TokenName is not a valid token in the token space, then the module will not build.
422 @param[in] TokenName The name of the PCD token to retrieve a current value size for.
424 @return Return the size
427 #define PatchPcdGetSize(TokenName) _gPcd_BinaryPatch_Size_##TokenName
430 Retrieves the size of the PCD token based on a token name.
432 Returns the size of the token specified by TokenName.
433 If TokenName is not a valid token in the token space, then the module will not build.
435 @param[in] TokenName The name of the PCD token to retrieve a current value size for.
437 @return Return the size
440 #define PcdGetSize(TokenName) _PCD_GET_MODE_SIZE_##TokenName
443 Retrieve the size of a given PCD token.
445 Returns the size of the token specified by TokenNumber and Guid.
446 If Guid is NULL, then ASSERT().
448 @param[in] Guid Pointer to a 128-bit unique value that designates
449 which namespace to retrieve a value from.
450 @param[in] TokenNumber The PCD token number to retrieve a current value size for.
452 @return Return the size.
455 #define PcdGetExSize(Guid, TokenName) LibPcdGetExSize ((Guid), PcdTokenEx(Guid,TokenName))
458 Sets a 8-bit PCD token value based on a token name.
460 Sets the 8-bit value for the token specified by TokenName.
461 If TokenName is not a valid token in the token space, then the module will not build.
463 @param TokenName The name of the PCD token to retrieve a current value for.
464 @param Value The 8-bit value to set.
466 @return The status of the set operation.
469 #define PcdSet8S(TokenName, Value) _PCD_SET_MODE_8_S_##TokenName ((Value))
472 Sets a 16-bit PCD token value based on a token name.
474 Sets the 16-bit value for the token specified by TokenName.
475 If TokenName is not a valid token in the token space, then the module will not build.
477 @param TokenName The name of the PCD token to retrieve a current value for.
478 @param Value The 16-bit value to set.
480 @return The status of the set operation.
483 #define PcdSet16S(TokenName, Value) _PCD_SET_MODE_16_S_##TokenName ((Value))
486 Sets a 32-bit PCD token value based on a token name.
488 Sets the 32-bit value for the token specified by TokenName.
489 If TokenName is not a valid token in the token space, then the module will not build.
491 @param TokenName The name of the PCD token to retrieve a current value for.
492 @param Value The 32-bit value to set.
494 @return The status of the set operation.
497 #define PcdSet32S(TokenName, Value) _PCD_SET_MODE_32_S_##TokenName ((Value))
500 Sets a 64-bit PCD token value based on a token name.
502 Sets the 64-bit value for the token specified by TokenName.
503 If TokenName is not a valid token in the token space, then the module will not build.
505 @param TokenName The name of the PCD token to retrieve a current value for.
506 @param Value The 64-bit value to set.
508 @return The status of the set operation.
511 #define PcdSet64S(TokenName, Value) _PCD_SET_MODE_64_S_##TokenName ((Value))
514 Sets a pointer to a PCD token buffer based on a token name.
516 Sets the buffer for the token specified by TokenName.
517 If SizeOfBuffer is greater than the maximum size supported by TokenName,
518 then set SizeOfBuffer to the maximum size supported by TokenName and return
519 RETURN_INVALID_PARAMETER to indicate that the set operation was not actually performed.
520 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size
521 supported by TokenName and RETURN_INVALID_PARAMETER must be returned.
522 If TokenName is not a valid token in the token space, then the module will not build.
524 If SizeOfBuffer is NULL, then ASSERT().
525 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
527 @param TokenName The name of the PCD token to set the current value for.
528 @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.
529 @param Buffer A pointer to the buffer to set.
531 @return The status of the set operation.
534 #define PcdSetPtrS(TokenName, SizeOfBuffer, Buffer) \
535 _PCD_SET_MODE_PTR_S_##TokenName ((SizeOfBuffer), (Buffer))
538 Sets a boolean PCD token value based on a token name.
540 Sets the boolean value for the token specified by TokenName.
541 If TokenName is not a valid token in the token space, then the module will not build.
543 @param TokenName The name of the PCD token to retrieve a current value for.
544 @param Value The boolean value to set.
546 @return The status of the set operation.
549 #define PcdSetBoolS(TokenName, Value) _PCD_SET_MODE_BOOL_S_##TokenName ((Value))
552 Retrieves a token number based on a GUID and a token name.
554 Returns the token number for the token specified by Guid and TokenName.
555 If TokenName is not a valid token in the token space, then the module will not build.
557 @param Guid Pointer to a 128-bit unique value that designates
558 which namespace to retrieve a value from.
559 @param TokenName The name of the PCD token to retrieve a current value for.
561 @return Return the token number.
564 #define PcdTokenEx(Guid, TokenName) _PCD_TOKEN_EX_##TokenName(Guid)
567 Retrieves an 8-bit PCD token value based on a GUID and a token name.
569 Returns the 8-bit value for the token specified by Guid and TokenName.
570 If TokenName is not a valid token in the token space specified by Guid,
571 then the module will not build.
573 If Guid is NULL, then ASSERT().
575 @param Guid Pointer to a 128-bit unique value that designates
576 which namespace to retrieve a value from.
577 @param TokenName The name of the PCD token to retrieve a current value for.
579 @return An 8-bit PCD token value.
582 #define PcdGetEx8(Guid, TokenName) LibPcdGetEx8 ((Guid), PcdTokenEx(Guid,TokenName))
585 Retrieves a 16-bit PCD token value based on a GUID and a token name.
587 Returns the 16-bit value for the token specified by Guid and TokenName.
588 If TokenName is not a valid token in the token space specified by Guid,
589 then the module will not build.
591 If Guid is NULL, then ASSERT().
593 @param Guid Pointer to a 128-bit unique value that designates
594 which namespace to retrieve a value from.
595 @param TokenName The name of the PCD token to retrieve a current value for.
597 @return A 16-bit PCD token value.
600 #define PcdGetEx16(Guid, TokenName) LibPcdGetEx16 ((Guid), PcdTokenEx(Guid,TokenName))
603 Retrieves a 32-bit PCD token value based on a GUID and a token name.
605 Returns the 32-bit value for the token specified by Guid and TokenName.
606 If TokenName is not a valid token in the token space specified by Guid,
607 then the module will not build.
609 If Guid is NULL, then ASSERT().
611 @param Guid Pointer to a 128-bit unique value that designates
612 which namespace to retrieve a value from.
613 @param TokenName The name of the PCD token to retrieve a current value for.
615 @return A 32-bit PCD token value.
618 #define PcdGetEx32(Guid, TokenName) LibPcdGetEx32 ((Guid), PcdTokenEx(Guid,TokenName))
621 Retrieves a 64-bit PCD token value based on a GUID and a token name.
623 Returns the 64-bit value for the token specified by Guid and TokenName.
624 If TokenName is not a valid token in the token space specified by Guid,
625 then the module will not build.
627 If Guid is NULL, then ASSERT().
629 @param Guid Pointer to a 128-bit unique value that designates
630 which namespace to retrieve a value from.
631 @param TokenName The name of the PCD token to retrieve a current value for.
633 @return A 64-bit PCD token value.
636 #define PcdGetEx64(Guid, TokenName) LibPcdGetEx64 ((Guid), PcdTokenEx(Guid,TokenName))
639 Retrieves a pointer to a PCD token buffer based on a GUID and a token name.
641 Returns a pointer to the buffer for the token specified by Guid and TokenName.
642 If TokenName is not a valid token in the token space specified by Guid,
643 then the module will not build.
645 If Guid is NULL, then ASSERT().
647 @param Guid Pointer to a 128-bit unique value that designates
648 which namespace to retrieve a value from.
649 @param TokenName The name of the PCD token to retrieve a current value for.
651 @return A pointer to a PCD token buffer.
654 #define PcdGetExPtr(Guid, TokenName) LibPcdGetExPtr ((Guid), PcdTokenEx(Guid,TokenName))
657 Retrieves a Boolean PCD token value based on a GUID and a token name.
659 Returns the Boolean value for the token specified by Guid and TokenName.
660 If TokenName is not a valid token in the token space specified by Guid,
661 then the module will not build.
663 If Guid is NULL, then ASSERT().
665 @param Guid Pointer to a 128-bit unique value that designates
666 which namespace to retrieve a value from.
667 @param TokenName The name of the PCD token to retrieve a current value for.
669 @return A Boolean PCD token value.
672 #define PcdGetExBool(Guid, TokenName) LibPcdGetExBool ((Guid), PcdTokenEx(Guid,TokenName))
675 Sets an 8-bit PCD token value based on a GUID and a token name.
677 Sets the 8-bit value for the token specified by Guid and TokenName.
678 If TokenName is not a valid token in the token space specified by Guid,
679 then the module will not build.
681 If Guid is NULL, then ASSERT().
683 @param Guid Pointer to a 128-bit unique value that designates
684 which namespace to retrieve a value from.
685 @param TokenName The name of the PCD token to set the current value for.
686 @param Value The 8-bit value to set.
688 @return The status of the set operation.
691 #define PcdSetEx8S(Guid, TokenName, Value) LibPcdSetEx8S ((Guid), PcdTokenEx(Guid,TokenName), (Value))
694 Sets an 16-bit PCD token value based on a GUID and a token name.
696 Sets the 16-bit value for the token specified by Guid and TokenName.
697 If TokenName is not a valid token in the token space specified by Guid,
698 then the module will not build.
700 If Guid is NULL, then ASSERT().
702 @param Guid Pointer to a 128-bit unique value that designates
703 which namespace to retrieve a value from.
704 @param TokenName The name of the PCD token to set the current value for.
705 @param Value The 16-bit value to set.
707 @return The status of the set operation.
710 #define PcdSetEx16S(Guid, TokenName, Value) LibPcdSetEx16S ((Guid), PcdTokenEx(Guid,TokenName), (Value))
713 Sets an 32-bit PCD token value based on a GUID and a token name.
715 Sets the 32-bit value for the token specified by Guid and TokenName.
716 If TokenName is not a valid token in the token space specified by Guid,
717 then the module will not build.
719 If Guid is NULL, then ASSERT().
721 @param Guid Pointer to a 128-bit unique value that designates
722 which namespace to retrieve a value from.
723 @param TokenName The name of the PCD token to set the current value for.
724 @param Value The 32-bit value to set.
726 @return The status of the set operation.
729 #define PcdSetEx32S(Guid, TokenName, Value) LibPcdSetEx32S ((Guid), PcdTokenEx(Guid,TokenName), (Value))
732 Sets an 64-bit PCD token value based on a GUID and a token name.
734 Sets the 64-bit value for the token specified by Guid and TokenName.
735 If TokenName is not a valid token in the token space specified by Guid,
736 then the module will not build.
738 If Guid is NULL, then ASSERT().
740 @param Guid Pointer to a 128-bit unique value that designates
741 which namespace to retrieve a value from.
742 @param TokenName The name of the PCD token to set the current value for.
743 @param Value The 64-bit value to set.
745 @return The status of the set operation.
748 #define PcdSetEx64S(Guid, TokenName, Value) LibPcdSetEx64S ((Guid), PcdTokenEx(Guid,TokenName), (Value))
751 Sets a pointer to a PCD token buffer based on a GUID and a token name.
753 Sets the buffer for the token specified by Guid and TokenName.
754 If SizeOfBuffer is greater than the maximum size supported by Guid and TokenName,
755 then set SizeOfBuffer to the maximum size supported by Guid and TokenName and return
756 RETURN_INVALID_PARAMETER to indicate that the set operation was not actually performed.
757 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size
758 supported by Guid and TokenName and RETURN_INVALID_PARAMETER must be returned.
759 If TokenName is not a valid token in the token space specified by Guid,
760 then the module will not build.
762 If Guid is NULL, then ASSERT().
763 If SizeOfBuffer is NULL, then ASSERT().
764 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
766 @param Guid Pointer to a 128-bit unique value that designates
767 which namespace to retrieve a value from.
768 @param TokenName The name of the PCD token to set the current value for.
769 @param SizeOfBuffer A pointer to the size, in bytes, of Buffer.
770 @param Buffer Pointer to the buffer to set.
772 @return The status of the set operation.
775 #define PcdSetExPtrS(Guid, TokenName, SizeOfBuffer, Buffer) \
776 LibPcdSetExPtrS ((Guid), PcdTokenEx(Guid,TokenName), (SizeOfBuffer), (Buffer))
779 Sets an boolean PCD token value based on a GUID and a token name.
781 Sets the boolean value for the token specified by Guid and TokenName.
782 If TokenName is not a valid token in the token space specified by Guid,
783 then the module will not build.
785 If Guid is NULL, then ASSERT().
787 @param Guid Pointer to a 128-bit unique value that designates
788 which namespace to retrieve a value from.
789 @param TokenName The name of the PCD token to set the current value for.
790 @param Value The boolean value to set.
792 @return The status of the set operation.
795 #define PcdSetExBoolS(Guid, TokenName, Value) \
796 LibPcdSetExBoolS ((Guid), PcdTokenEx(Guid,TokenName), (Value))
799 This function provides a means by which SKU support can be established in the PCD infrastructure.
801 Sets the current SKU in the PCD database to the value specified by SkuId. SkuId is returned.
803 @param SkuId The SKU value that will be used when the PCD service retrieves and sets values
804 associated with a PCD token.
806 @return Return the SKU ID that was set.
816 This function provides a means by which to retrieve a value for a given PCD token.
818 Returns the 8-bit value for the token specified by TokenNumber.
820 @param[in] TokenNumber The PCD token number to retrieve a current value for.
822 @return Returns the 8-bit value for the token specified by TokenNumber.
832 This function provides a means by which to retrieve a value for a given PCD token.
834 Returns the 16-bit value for the token specified by TokenNumber.
836 @param[in] TokenNumber The PCD token number to retrieve a current value for.
838 @return Returns the 16-bit value for the token specified by TokenNumber.
848 This function provides a means by which to retrieve a value for a given PCD token.
850 Returns the 32-bit value for the token specified by TokenNumber.
852 @param[in] TokenNumber The PCD token number to retrieve a current value for.
854 @return Returns the 32-bit value for the token specified by TokenNumber.
864 This function provides a means by which to retrieve a value for a given PCD token.
866 Returns the 64-bit value for the token specified by TokenNumber.
868 @param[in] TokenNumber The PCD token number to retrieve a current value for.
870 @return Returns the 64-bit value for the token specified by TokenNumber.
880 This function provides a means by which to retrieve a value for a given PCD token.
882 Returns the pointer to the buffer of the token specified by TokenNumber.
884 @param[in] TokenNumber The PCD token number to retrieve a current value for.
886 @return Returns the pointer to the token specified by TokenNumber.
896 This function provides a means by which to retrieve a value for a given PCD token.
898 Returns the Boolean value of the token specified by TokenNumber.
900 @param[in] TokenNumber The PCD token number to retrieve a current value for.
902 @return Returns the Boolean value of the token specified by TokenNumber.
912 This function provides a means by which to retrieve the size of a given PCD token.
914 @param[in] TokenNumber The PCD token number to retrieve a current value for.
916 @return Returns the size of the token specified by TokenNumber.
926 This function provides a means by which to retrieve a value for a given PCD token.
928 Returns the 8-bit value for the token specified by TokenNumber and Guid.
930 If Guid is NULL, then ASSERT().
932 @param[in] Guid Pointer to a 128-bit unique value that designates
933 which namespace to retrieve a value from.
934 @param[in] TokenNumber The PCD token number to retrieve a current value for.
936 @return Return the UINT8.
947 This function provides a means by which to retrieve a value for a given PCD token.
949 Returns the 16-bit value for the token specified by TokenNumber and Guid.
951 If Guid is NULL, then ASSERT().
953 @param[in] Guid Pointer to a 128-bit unique value that designates
954 which namespace to retrieve a value from.
955 @param[in] TokenNumber The PCD token number to retrieve a current value for.
957 @return Return the UINT16.
968 Returns the 32-bit value for the token specified by TokenNumber and Guid.
969 If Guid is NULL, then ASSERT().
971 @param[in] Guid Pointer to a 128-bit unique value that designates
972 which namespace to retrieve a value from.
973 @param[in] TokenNumber The PCD token number to retrieve a current value for.
975 @return Return the UINT32.
986 This function provides a means by which to retrieve a value for a given PCD token.
988 Returns the 64-bit value for the token specified by TokenNumber and Guid.
990 If Guid is NULL, then ASSERT().
992 @param[in] Guid Pointer to a 128-bit unique value that designates
993 which namespace to retrieve a value from.
994 @param[in] TokenNumber The PCD token number to retrieve a current value for.
996 @return Return the UINT64.
1002 IN CONST GUID
*Guid
,
1003 IN UINTN TokenNumber
1007 This function provides a means by which to retrieve a value for a given PCD token.
1009 Returns the pointer to the buffer of token specified by TokenNumber and Guid.
1011 If Guid is NULL, then ASSERT().
1013 @param[in] Guid Pointer to a 128-bit unique value that designates
1014 which namespace to retrieve a value from.
1015 @param[in] TokenNumber The PCD token number to retrieve a current value for.
1017 @return Return the VOID* pointer.
1023 IN CONST GUID
*Guid
,
1024 IN UINTN TokenNumber
1028 This function provides a means by which to retrieve a value for a given PCD token.
1030 Returns the Boolean value of the token specified by TokenNumber and Guid.
1032 If Guid is NULL, then ASSERT().
1034 @param[in] Guid Pointer to a 128-bit unique value that designates
1035 which namespace to retrieve a value from.
1036 @param[in] TokenNumber The PCD token number to retrieve a current value for.
1038 @return Return the BOOLEAN.
1044 IN CONST GUID
*Guid
,
1045 IN UINTN TokenNumber
1049 This function provides a means by which to retrieve the size of a given PCD token.
1051 Returns the size of the token specified by TokenNumber and Guid.
1053 If Guid is NULL, then ASSERT().
1055 @param[in] Guid Pointer to a 128-bit unique value that designates
1056 which namespace to retrieve a value from.
1057 @param[in] TokenNumber The PCD token number to retrieve a current value for.
1059 @return Return the size.
1065 IN CONST GUID
*Guid
,
1066 IN UINTN TokenNumber
1070 This function provides a means by which to set a value for a given PCD token.
1072 Sets the 8-bit value for the token specified by TokenNumber
1073 to the value specified by Value.
1075 @param[in] TokenNumber The PCD token number to set a current value for.
1076 @param[in] Value The 8-bit value to set.
1078 @return The status of the set operation.
1084 IN UINTN TokenNumber
,
1089 This function provides a means by which to set a value for a given PCD token.
1091 Sets the 16-bit value for the token specified by TokenNumber
1092 to the value specified by Value.
1094 @param[in] TokenNumber The PCD token number to set a current value for.
1095 @param[in] Value The 16-bit value to set.
1097 @return The status of the set operation.
1103 IN UINTN TokenNumber
,
1108 This function provides a means by which to set a value for a given PCD token.
1110 Sets the 32-bit value for the token specified by TokenNumber
1111 to the value specified by Value.
1113 @param[in] TokenNumber The PCD token number to set a current value for.
1114 @param[in] Value The 32-bit value to set.
1116 @return The status of the set operation.
1122 IN UINTN TokenNumber
,
1127 This function provides a means by which to set a value for a given PCD token.
1129 Sets the 64-bit value for the token specified by TokenNumber
1130 to the value specified by Value.
1132 @param[in] TokenNumber The PCD token number to set a current value for.
1133 @param[in] Value The 64-bit value to set.
1135 @return The status of the set operation.
1141 IN UINTN TokenNumber
,
1146 This function provides a means by which to set a value for a given PCD token.
1148 Sets a buffer for the token specified by TokenNumber to the value specified
1149 by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than the maximum size
1150 support by TokenNumber, then set SizeOfBuffer to the maximum size supported by
1151 TokenNumber and return RETURN_INVALID_PARAMETER to indicate that the set operation
1152 was not actually performed.
1154 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the
1155 maximum size supported by TokenName and RETURN_INVALID_PARAMETER must be returned.
1157 If SizeOfBuffer is NULL, then ASSERT().
1158 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
1160 @param[in] TokenNumber The PCD token number to set a current value for.
1161 @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.
1162 @param[in] Buffer A pointer to the buffer to set.
1164 @return The status of the set operation.
1170 IN UINTN TokenNumber
,
1171 IN OUT UINTN
*SizeOfBuffer
,
1172 IN CONST VOID
*Buffer
1176 This function provides a means by which to set a value for a given PCD token.
1178 Sets the boolean value for the token specified by TokenNumber
1179 to the value specified by Value.
1181 @param[in] TokenNumber The PCD token number to set a current value for.
1182 @param[in] Value The boolean value to set.
1184 @return The status of the set operation.
1190 IN UINTN TokenNumber
,
1195 This function provides a means by which to set a value for a given PCD token.
1197 Sets the 8-bit value for the token specified by TokenNumber
1198 to the value specified by Value.
1200 If Guid is NULL, then ASSERT().
1202 @param[in] Guid The pointer to a 128-bit unique value that
1203 designates which namespace to set a value from.
1204 @param[in] TokenNumber The PCD token number to set a current value for.
1205 @param[in] Value The 8-bit value to set.
1207 @return The status of the set operation.
1213 IN CONST GUID
*Guid
,
1214 IN UINTN TokenNumber
,
1219 This function provides a means by which to set a value for a given PCD token.
1221 Sets the 16-bit value for the token specified by TokenNumber
1222 to the value specified by Value.
1224 If Guid is NULL, then ASSERT().
1226 @param[in] Guid The pointer to a 128-bit unique value that
1227 designates which namespace to set a value from.
1228 @param[in] TokenNumber The PCD token number to set a current value for.
1229 @param[in] Value The 16-bit value to set.
1231 @return The status of the set operation.
1237 IN CONST GUID
*Guid
,
1238 IN UINTN TokenNumber
,
1243 This function provides a means by which to set a value for a given PCD token.
1245 Sets the 32-bit value for the token specified by TokenNumber
1246 to the value specified by Value.
1248 If Guid is NULL, then ASSERT().
1250 @param[in] Guid The pointer to a 128-bit unique value that
1251 designates which namespace to set a value from.
1252 @param[in] TokenNumber The PCD token number to set a current value for.
1253 @param[in] Value The 32-bit value to set.
1255 @return The status of the set operation.
1261 IN CONST GUID
*Guid
,
1262 IN UINTN TokenNumber
,
1267 This function provides a means by which to set a value for a given PCD token.
1269 Sets the 64-bit value for the token specified by TokenNumber
1270 to the value specified by Value.
1272 If Guid is NULL, then ASSERT().
1274 @param[in] Guid The pointer to a 128-bit unique value that
1275 designates which namespace to set a value from.
1276 @param[in] TokenNumber The PCD token number to set a current value for.
1277 @param[in] Value The 64-bit value to set.
1279 @return The status of the set operation.
1285 IN CONST GUID
*Guid
,
1286 IN UINTN TokenNumber
,
1291 This function provides a means by which to set a value for a given PCD token.
1293 Sets a buffer for the token specified by TokenNumber to the value specified by
1294 Buffer and SizeOfBuffer. If SizeOfBuffer is greater than the maximum size
1295 support by TokenNumber, then set SizeOfBuffer to the maximum size supported by
1296 TokenNumber and return RETURN_INVALID_PARAMETER to indicate that the set operation
1297 was not actually performed.
1299 If Guid is NULL, then ASSERT().
1300 If SizeOfBuffer is NULL, then ASSERT().
1301 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
1303 @param[in] Guid Pointer to a 128-bit unique value that
1304 designates which namespace to set a value from.
1305 @param[in] TokenNumber The PCD token number to set a current value for.
1306 @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.
1307 @param[in] Buffer A pointer to the buffer to set.
1309 @return The status of the set operation.
1315 IN CONST GUID
*Guid
,
1316 IN UINTN TokenNumber
,
1317 IN OUT UINTN
*SizeOfBuffer
,
1322 This function provides a means by which to set a value for a given PCD token.
1324 Sets the boolean value for the token specified by TokenNumber
1325 to the value specified by Value.
1327 If Guid is NULL, then ASSERT().
1329 @param[in] Guid The pointer to a 128-bit unique value that
1330 designates which namespace to set a value from.
1331 @param[in] TokenNumber The PCD token number to set a current value for.
1332 @param[in] Value The boolean value to set.
1334 @return The status of the set operation.
1340 IN CONST GUID
*Guid
,
1341 IN UINTN TokenNumber
,
1346 This notification function serves two purposes.
1348 Firstly, it notifies the module that did the registration that the value of this
1349 PCD token has been set.
1350 Secondly, it provides a mechanism for the module that did the registration to intercept
1351 the set operation and override the value been set if necessary. After the invocation of
1352 the callback function, TokenData will be used by PCD service PEIM or driver to modify th
1353 internal data in PCD database.
1355 @param[in] CallBackGuid The PCD token GUID being set.
1356 @param[in] CallBackToken The PCD token number being set.
1357 @param[in, out] TokenData A pointer to the token data being set.
1358 @param[in] TokenDataSize The size, in bytes, of the data being set.
1363 (EFIAPI
*PCD_CALLBACK
)(
1364 IN CONST GUID
*CallBackGuid OPTIONAL
,
1365 IN UINTN CallBackToken
,
1366 IN OUT VOID
*TokenData
,
1367 IN UINTN TokenDataSize
1371 Set up a notification function that is called when a specified token is set.
1373 When the token specified by TokenNumber and Guid is set,
1374 then notification function specified by NotificationFunction is called.
1375 If Guid is NULL, then the default token space is used.
1376 If NotificationFunction is NULL, then ASSERT().
1378 @param[in] Guid Pointer to a 128-bit unique value that designates which
1379 namespace to set a value from. If NULL, then the default
1380 token space is used.
1381 @param[in] TokenNumber The PCD token number to monitor.
1382 @param[in] NotificationFunction The function to call when the token
1383 specified by Guid and TokenNumber is set.
1388 LibPcdCallbackOnSet (
1389 IN CONST GUID
*Guid OPTIONAL
,
1390 IN UINTN TokenNumber
,
1391 IN PCD_CALLBACK NotificationFunction
1395 Disable a notification function that was established with LibPcdCallbackonSet().
1397 Disable a notification function that was previously established with LibPcdCallbackOnSet().
1398 If NotificationFunction is NULL, then ASSERT().
1399 If LibPcdCallbackOnSet() was not previously called with Guid, TokenNumber,
1400 and NotificationFunction, then ASSERT().
1402 @param[in] Guid Specify the GUID token space.
1403 @param[in] TokenNumber Specify the token number.
1404 @param[in] NotificationFunction The callback function to be unregistered.
1409 LibPcdCancelCallback (
1410 IN CONST GUID
*Guid OPTIONAL
,
1411 IN UINTN TokenNumber
,
1412 IN PCD_CALLBACK NotificationFunction
1416 Retrieves the next token in a token space.
1418 Retrieves the next PCD token number from the token space specified by Guid.
1419 If Guid is NULL, then the default token space is used. If TokenNumber is 0,
1420 then the first token number is returned. Otherwise, the token number that
1421 follows TokenNumber in the token space is returned. If TokenNumber is the last
1422 token number in the token space, then 0 is returned.
1424 If TokenNumber is not 0 and is not in the token space specified by Guid, then ASSERT().
1426 @param[in] Guid Pointer to a 128-bit unique value that designates which namespace
1427 to set a value from. If NULL, then the default token space is used.
1428 @param[in] TokenNumber The previous PCD token number. If 0, then retrieves the first PCD
1431 @return The next valid token number.
1436 LibPcdGetNextToken (
1437 IN CONST GUID
*Guid OPTIONAL
,
1438 IN UINTN TokenNumber
1442 Used to retrieve the list of available PCD token space GUIDs.
1444 Returns the PCD token space GUID that follows TokenSpaceGuid in the list of token spaces
1446 If TokenSpaceGuid is NULL, then a pointer to the first PCD token spaces returned.
1447 If TokenSpaceGuid is the last PCD token space GUID in the list, then NULL is returned.
1449 @param TokenSpaceGuid Pointer to the a PCD token space GUID
1451 @return The next valid token namespace.
1456 LibPcdGetNextTokenSpace (
1457 IN CONST GUID
*TokenSpaceGuid
1461 Sets a value of a patchable PCD entry that is type pointer.
1463 Sets the PCD entry specified by PatchVariable to the value specified by Buffer
1464 and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than
1465 MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return
1466 NULL to indicate that the set operation was not actually performed.
1467 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
1468 MaximumDatumSize and NULL must be returned.
1470 If PatchVariable is NULL, then ASSERT().
1471 If SizeOfBuffer is NULL, then ASSERT().
1472 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
1474 @param[out] PatchVariable A pointer to the global variable in a module that is
1475 the target of the set operation.
1476 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
1477 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
1478 @param[in] Buffer A pointer to the buffer to used to set the target variable.
1480 @return Return the pointer to the Buffer that was set.
1486 OUT VOID
*PatchVariable
,
1487 IN UINTN MaximumDatumSize
,
1488 IN OUT UINTN
*SizeOfBuffer
,
1489 IN CONST VOID
*Buffer
1493 Sets a value of a patchable PCD entry that is type pointer.
1495 Sets the PCD entry specified by PatchVariable to the value specified
1496 by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than MaximumDatumSize,
1497 then set SizeOfBuffer to MaximumDatumSize and return RETURN_INVALID_PARAMETER
1498 to indicate that the set operation was not actually performed.
1499 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
1500 MaximumDatumSize and RETURN_INVALID_PARAMETER must be returned.
1502 If PatchVariable is NULL, then ASSERT().
1503 If SizeOfBuffer is NULL, then ASSERT().
1504 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
1506 @param[out] PatchVariable A pointer to the global variable in a module that is
1507 the target of the set operation.
1508 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
1509 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
1510 @param[in] Buffer A pointer to the buffer to used to set the target variable.
1512 @return The status of the set operation.
1517 LibPatchPcdSetPtrS (
1518 OUT VOID
*PatchVariable
,
1519 IN UINTN MaximumDatumSize
,
1520 IN OUT UINTN
*SizeOfBuffer
,
1521 IN CONST VOID
*Buffer
1525 Sets a value and size of a patchable PCD entry that is type pointer.
1527 Sets the PCD entry specified by PatchVariable to the value specified by Buffer
1528 and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than
1529 MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return
1530 NULL to indicate that the set operation was not actually performed.
1531 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
1532 MaximumDatumSize and NULL must be returned.
1534 If PatchVariable is NULL, then ASSERT().
1535 If SizeOfPatchVariable is NULL, then ASSERT().
1536 If SizeOfBuffer is NULL, then ASSERT().
1537 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
1539 @param[out] PatchVariable A pointer to the global variable in a module that is
1540 the target of the set operation.
1541 @param[out] SizeOfPatchVariable A pointer to the size, in bytes, of PatchVariable.
1542 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
1543 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
1544 @param[in] Buffer A pointer to the buffer to used to set the target variable.
1546 @return Return the pointer to the Buffer that was set.
1551 LibPatchPcdSetPtrAndSize (
1552 OUT VOID
*PatchVariable
,
1553 OUT UINTN
*SizeOfPatchVariable
,
1554 IN UINTN MaximumDatumSize
,
1555 IN OUT UINTN
*SizeOfBuffer
,
1556 IN CONST VOID
*Buffer
1560 Sets a value and size of a patchable PCD entry that is type pointer.
1562 Sets the PCD entry specified by PatchVariable to the value specified
1563 by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than MaximumDatumSize,
1564 then set SizeOfBuffer to MaximumDatumSize and return RETURN_INVALID_PARAMETER
1565 to indicate that the set operation was not actually performed.
1566 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to
1567 MaximumDatumSize and RETURN_INVALID_PARAMETER must be returned.
1569 If PatchVariable is NULL, then ASSERT().
1570 If SizeOfPatchVariable is NULL, then ASSERT().
1571 If SizeOfBuffer is NULL, then ASSERT().
1572 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
1574 @param[out] PatchVariable A pointer to the global variable in a module that is
1575 the target of the set operation.
1576 @param[out] SizeOfPatchVariable A pointer to the size, in bytes, of PatchVariable.
1577 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.
1578 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.
1579 @param[in] Buffer A pointer to the buffer to used to set the target variable.
1581 @return The status of the set operation.
1586 LibPatchPcdSetPtrAndSizeS (
1587 OUT VOID
*PatchVariable
,
1588 OUT UINTN
*SizeOfPatchVariable
,
1589 IN UINTN MaximumDatumSize
,
1590 IN OUT UINTN
*SizeOfBuffer
,
1591 IN CONST VOID
*Buffer
1605 /// The returned information associated with the requested TokenNumber. If
1606 /// TokenNumber is 0, then PcdType is set to PCD_TYPE_8.
1610 /// The size of the data in bytes associated with the TokenNumber specified. If
1611 /// TokenNumber is 0, then PcdSize is set 0.
1615 /// The null-terminated ASCII string associated with a given token. If the
1616 /// TokenNumber specified was 0, then this field corresponds to the null-terminated
1617 /// ASCII string associated with the token's namespace Guid. If NULL, there is no
1618 /// name associated with this request.
1624 Retrieve additional information associated with a PCD token.
1626 This includes information such as the type of value the TokenNumber is associated with as well as possible
1627 human readable name that is associated with the token.
1629 If TokenNumber is not in the default token space specified, then ASSERT().
1631 @param[in] TokenNumber The PCD token number.
1632 @param[out] PcdInfo The returned information associated with the requested TokenNumber.
1633 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
1638 IN UINTN TokenNumber
,
1639 OUT PCD_INFO
*PcdInfo
1643 Retrieve additional information associated with a PCD token.
1645 This includes information such as the type of value the TokenNumber is associated with as well as possible
1646 human readable name that is associated with the token.
1648 If TokenNumber is not in the token space specified by Guid, then ASSERT().
1650 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.
1651 @param[in] TokenNumber The PCD token number.
1652 @param[out] PcdInfo The returned information associated with the requested TokenNumber.
1653 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.
1658 IN CONST GUID
*Guid
,
1659 IN UINTN TokenNumber
,
1660 OUT PCD_INFO
*PcdInfo
1664 Retrieve the currently set SKU Id.
1666 @return The currently set SKU Id. If the platform has not set at a SKU Id, then the
1667 default SKU Id value of 0 is returned. If the platform has set a SKU Id, then the currently set SKU