]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BasePcdLibNull/PcdLib.c
MdePkg/Pci22.h: Fix a coding style issue
[mirror_edk2.git] / MdePkg / Library / BasePcdLibNull / PcdLib.c
CommitLineData
bbfaace4 1/** @file\r
2 A emptry template implementation of PCD Library.\r
3\r
f8308f0a 4 Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
19388d29 5 This program and the accompanying materials\r
bbfaace4 6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
2fc59a00 8 http://opensource.org/licenses/bsd-license.php.\r
bbfaace4 9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
afa22326 15#include <Base.h>\r
16\r
bbfaace4 17#include <Library/DebugLib.h>\r
18#include <Library/PcdLib.h>\r
19#include <Library/BaseMemoryLib.h>\r
20\r
21\r
22/**\r
efb23117 23 This function provides a means by which SKU support can be established in the PCD infrastructure.\r
24\r
bbfaace4 25 Sets the current SKU in the PCD database to the value specified by SkuId. SkuId is returned.\r
26\r
27 @param[in] SkuId The SKU value that will be used when the PCD service will retrieve and \r
efb23117 28 set values associated with a PCD token.\r
29 \r
30 If SkuId >= 0x100, then ASSERT(). \r
bbfaace4 31\r
f73e0ad2 32 @return Return the SKU ID that just be set.\r
bbfaace4 33\r
34**/\r
efb23117 35UINTN\r
bbfaace4 36EFIAPI\r
37LibPcdSetSku (\r
efb23117 38 IN UINTN SkuId\r
bbfaace4 39 )\r
40{\r
afa22326 41 ASSERT (FALSE);\r
bbfaace4 42\r
cdebf6c6 43 return 0;\r
bbfaace4 44}\r
45\r
bbfaace4 46/**\r
efb23117 47 This function provides a means by which to retrieve a value for a given PCD token.\r
48 \r
bbfaace4 49 Returns the 8-bit value for the token specified by TokenNumber. \r
50\r
23a36779 51 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
bbfaace4 52\r
f73e0ad2 53 @return Returns the 8-bit value for the token specified by TokenNumber. \r
bbfaace4 54\r
55**/\r
56UINT8\r
57EFIAPI\r
58LibPcdGet8 (\r
59 IN UINTN TokenNumber\r
60 )\r
61{\r
afa22326 62 ASSERT (FALSE);\r
cdebf6c6 63\r
bbfaace4 64 return 0;\r
65}\r
66\r
67\r
68\r
69/**\r
efb23117 70 This function provides a means by which to retrieve a value for a given PCD token.\r
71 \r
bbfaace4 72 Returns the 16-bit value for the token specified by TokenNumber. \r
73\r
efb23117 74 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
bbfaace4 75\r
f73e0ad2 76 @return Returns the 16-bit value for the token specified by TokenNumber. \r
bbfaace4 77\r
78**/\r
79UINT16\r
80EFIAPI\r
81LibPcdGet16 (\r
82 IN UINTN TokenNumber\r
83 )\r
84{\r
afa22326 85 ASSERT (FALSE);\r
cdebf6c6 86\r
bbfaace4 87 return 0;\r
88}\r
89\r
90\r
91\r
92/**\r
efb23117 93 This function provides a means by which to retrieve a value for a given PCD token.\r
94 \r
bbfaace4 95 Returns the 32-bit value for the token specified by TokenNumber. \r
96\r
97 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
98\r
f73e0ad2 99 @return Returns the 32-bit value for the token specified by TokenNumber.\r
bbfaace4 100\r
101**/\r
102UINT32\r
103EFIAPI\r
104LibPcdGet32 (\r
105 IN UINTN TokenNumber\r
106 )\r
107{\r
afa22326 108 ASSERT (FALSE);\r
cdebf6c6 109\r
bbfaace4 110 return 0;\r
111}\r
112\r
113\r
114\r
115/**\r
efb23117 116 This function provides a means by which to retrieve a value for a given PCD token.\r
117 \r
bbfaace4 118 Returns the 64-bit value for the token specified by TokenNumber.\r
119\r
120 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
121\r
f73e0ad2 122 @return Returns the 64-bit value for the token specified by TokenNumber.\r
bbfaace4 123\r
124**/\r
125UINT64\r
126EFIAPI\r
127LibPcdGet64 (\r
128 IN UINTN TokenNumber\r
129 )\r
130{\r
afa22326 131 ASSERT (FALSE);\r
cdebf6c6 132\r
bbfaace4 133 return 0;\r
134}\r
135\r
136\r
137\r
138/**\r
efb23117 139 This function provides a means by which to retrieve a value for a given PCD token.\r
140 \r
bbfaace4 141 Returns the pointer to the buffer of the token specified by TokenNumber.\r
142\r
143 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
144\r
f73e0ad2 145 @return Returns the pointer to the token specified by TokenNumber.\r
bbfaace4 146\r
147**/\r
148VOID *\r
149EFIAPI\r
150LibPcdGetPtr (\r
151 IN UINTN TokenNumber\r
152 )\r
153{\r
afa22326 154 ASSERT (FALSE);\r
cdebf6c6 155\r
bbfaace4 156 return 0;\r
157}\r
158\r
159\r
160\r
161/**\r
efb23117 162 This function provides a means by which to retrieve a value for a given PCD token.\r
163 \r
bbfaace4 164 Returns the Boolean value of the token specified by TokenNumber. \r
165\r
166 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
167\r
f73e0ad2 168 @return Returns the Boolean value of the token specified by TokenNumber. \r
bbfaace4 169\r
170**/\r
171BOOLEAN \r
172EFIAPI\r
173LibPcdGetBool (\r
174 IN UINTN TokenNumber\r
175 )\r
176{\r
afa22326 177 ASSERT (FALSE);\r
cdebf6c6 178\r
bbfaace4 179 return 0;\r
180}\r
181\r
182\r
183\r
184/**\r
efb23117 185 This function provides a means by which to retrieve the size of a given PCD token.\r
bbfaace4 186\r
187 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
188\r
f73e0ad2 189 @return Returns the size of the token specified by TokenNumber. \r
bbfaace4 190\r
191**/\r
192UINTN\r
193EFIAPI\r
194LibPcdGetSize (\r
195 IN UINTN TokenNumber\r
196 )\r
197{\r
afa22326 198 ASSERT (FALSE);\r
cdebf6c6 199\r
bbfaace4 200 return 0;\r
201}\r
202\r
203\r
204\r
205/**\r
efb23117 206 This function provides a means by which to retrieve a value for a given PCD token.\r
207 \r
bbfaace4 208 Returns the 8-bit value for the token specified by TokenNumber and Guid.\r
efb23117 209 \r
bbfaace4 210 If Guid is NULL, then ASSERT(). \r
211\r
2fc59a00 212 @param[in] Guid The pointer to a 128-bit unique value that designates \r
bbfaace4 213 which namespace to retrieve a value from.\r
214 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
215\r
f73e0ad2 216 @return Return the UINT8.\r
bbfaace4 217\r
218**/\r
219UINT8\r
220EFIAPI\r
221LibPcdGetEx8 (\r
222 IN CONST GUID *Guid,\r
223 IN UINTN TokenNumber\r
224 )\r
225{\r
afa22326 226 ASSERT (FALSE);\r
bbfaace4 227\r
228 return 0;\r
229}\r
230\r
231\r
232\r
233/**\r
efb23117 234 This function provides a means by which to retrieve a value for a given PCD token.\r
235\r
bbfaace4 236 Returns the 16-bit value for the token specified by TokenNumber and Guid.\r
efb23117 237 \r
bbfaace4 238 If Guid is NULL, then ASSERT(). \r
239\r
2fc59a00 240 @param[in] Guid The pointer to a 128-bit unique value that designates \r
bbfaace4 241 which namespace to retrieve a value from.\r
242 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
243\r
f73e0ad2 244 @return Return the UINT16.\r
bbfaace4 245\r
246**/\r
247UINT16\r
248EFIAPI\r
249LibPcdGetEx16 (\r
250 IN CONST GUID *Guid,\r
251 IN UINTN TokenNumber\r
252 )\r
253{\r
afa22326 254 ASSERT (FALSE);\r
bbfaace4 255\r
256 return 0;\r
257}\r
258\r
259\r
260\r
261/**\r
262 Returns the 32-bit value for the token specified by TokenNumber and Guid.\r
263 If Guid is NULL, then ASSERT(). \r
264\r
2fc59a00 265 @param[in] Guid The pointer to a 128-bit unique value that designates \r
bbfaace4 266 which namespace to retrieve a value from.\r
267 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
268\r
f73e0ad2 269 @return Return the UINT32.\r
bbfaace4 270\r
271**/\r
272UINT32\r
273EFIAPI\r
274LibPcdGetEx32 (\r
275 IN CONST GUID *Guid,\r
276 IN UINTN TokenNumber\r
277 )\r
278{\r
afa22326 279 ASSERT (FALSE);\r
bbfaace4 280\r
281 return 0;\r
282}\r
283\r
284\r
285\r
286/**\r
efb23117 287 This function provides a means by which to retrieve a value for a given PCD token.\r
288 \r
bbfaace4 289 Returns the 64-bit value for the token specified by TokenNumber and Guid.\r
efb23117 290 \r
bbfaace4 291 If Guid is NULL, then ASSERT(). \r
292\r
2fc59a00 293 @param[in] Guid The pointer to a 128-bit unique value that designates \r
efb23117 294 which namespace to retrieve a value from.\r
295 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
bbfaace4 296\r
f73e0ad2 297 @return Return the UINT64.\r
bbfaace4 298\r
299**/\r
300UINT64\r
301EFIAPI\r
302LibPcdGetEx64 (\r
303 IN CONST GUID *Guid,\r
304 IN UINTN TokenNumber\r
305 )\r
306{\r
afa22326 307 ASSERT (FALSE);\r
bbfaace4 308\r
309 return 0;\r
310}\r
311\r
312\r
313\r
314/**\r
efb23117 315 This function provides a means by which to retrieve a value for a given PCD token.\r
316 \r
317 Returns the pointer to the buffer of token specified by TokenNumber and Guid.\r
318 \r
bbfaace4 319 If Guid is NULL, then ASSERT(). \r
320\r
2fc59a00 321 @param[in] Guid The pointer to a 128-bit unique value that designates \r
efb23117 322 which namespace to retrieve a value from.\r
323 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
bbfaace4 324\r
f73e0ad2 325 @return Return the VOID* pointer.\r
bbfaace4 326\r
327**/\r
328VOID *\r
329EFIAPI\r
330LibPcdGetExPtr (\r
331 IN CONST GUID *Guid,\r
332 IN UINTN TokenNumber\r
333 )\r
334{\r
afa22326 335 ASSERT (FALSE);\r
bbfaace4 336\r
337 return 0;\r
338}\r
339\r
340\r
341\r
342/**\r
efb23117 343 This function provides a means by which to retrieve a value for a given PCD token.\r
344 \r
bbfaace4 345 Returns the Boolean value of the token specified by TokenNumber and Guid. \r
efb23117 346 \r
bbfaace4 347 If Guid is NULL, then ASSERT(). \r
348\r
2fc59a00 349 @param[in] Guid The pointer to a 128-bit unique value that designates \r
efb23117 350 which namespace to retrieve a value from.\r
351 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
bbfaace4 352\r
f73e0ad2 353 @return Return the BOOLEAN.\r
bbfaace4 354\r
355**/\r
356BOOLEAN\r
357EFIAPI\r
358LibPcdGetExBool (\r
359 IN CONST GUID *Guid,\r
360 IN UINTN TokenNumber\r
361 )\r
362{\r
afa22326 363 ASSERT (FALSE);\r
bbfaace4 364\r
365 return 0;\r
366}\r
367\r
368\r
369\r
370/**\r
efb23117 371 This function provides a means by which to retrieve the size of a given PCD token.\r
372 \r
bbfaace4 373 Returns the size of the token specified by TokenNumber and Guid. \r
efb23117 374 \r
bbfaace4 375 If Guid is NULL, then ASSERT(). \r
376\r
2fc59a00 377 @param[in] Guid The pointer to a 128-bit unique value that designates \r
efb23117 378 which namespace to retrieve a value from.\r
379 @param[in] TokenNumber The PCD token number to retrieve a current value for.\r
bbfaace4 380\r
f73e0ad2 381 @return Return the size.\r
bbfaace4 382\r
383**/\r
384UINTN\r
385EFIAPI\r
386LibPcdGetExSize (\r
387 IN CONST GUID *Guid,\r
388 IN UINTN TokenNumber\r
389 )\r
390{\r
afa22326 391 ASSERT (FALSE);\r
bbfaace4 392\r
393 return 0;\r
394}\r
395\r
396\r
397\r
9a355841 398#ifndef DISABLE_NEW_DEPRECATED_INTERFACES\r
bbfaace4 399/**\r
efb23117 400 This function provides a means by which to set a value for a given PCD token.\r
401 \r
bbfaace4 402 Sets the 8-bit value for the token specified by TokenNumber \r
403 to the value specified by Value. Value is returned.\r
0befb08d 404\r
efb23117 405 @param[in] TokenNumber The PCD token number to set a current value for.\r
406 @param[in] Value The 8-bit value to set.\r
bbfaace4 407\r
58380e9c 408 @return Return the value that was set.\r
bbfaace4 409\r
410**/\r
411UINT8\r
412EFIAPI\r
413LibPcdSet8 (\r
414 IN UINTN TokenNumber,\r
415 IN UINT8 Value\r
416 )\r
417{\r
afa22326 418 ASSERT (FALSE);\r
cdebf6c6 419\r
420 return 0;\r
bbfaace4 421}\r
422\r
423\r
424\r
425/**\r
efb23117 426 This function provides a means by which to set a value for a given PCD token.\r
427 \r
bbfaace4 428 Sets the 16-bit value for the token specified by TokenNumber \r
429 to the value specified by Value. Value is returned.\r
0befb08d 430\r
efb23117 431 @param[in] TokenNumber The PCD token number to set a current value for.\r
432 @param[in] Value The 16-bit value to set.\r
bbfaace4 433\r
58380e9c 434 @return Return the value that was set.\r
bbfaace4 435\r
436**/\r
437UINT16\r
438EFIAPI\r
439LibPcdSet16 (\r
440 IN UINTN TokenNumber,\r
441 IN UINT16 Value\r
442 )\r
443{\r
afa22326 444 ASSERT (FALSE);\r
cdebf6c6 445\r
446 return 0;\r
bbfaace4 447}\r
448\r
449\r
450\r
451/**\r
efb23117 452 This function provides a means by which to set a value for a given PCD token.\r
453 \r
bbfaace4 454 Sets the 32-bit value for the token specified by TokenNumber \r
455 to the value specified by Value. Value is returned.\r
0befb08d 456\r
efb23117 457 @param[in] TokenNumber The PCD token number to set a current value for.\r
458 @param[in] Value The 32-bit value to set.\r
bbfaace4 459\r
58380e9c 460 @return Return the value that was set.\r
bbfaace4 461\r
462**/\r
463UINT32\r
464EFIAPI\r
465LibPcdSet32 (\r
efb23117 466 IN UINTN TokenNumber,\r
467 IN UINT32 Value\r
bbfaace4 468 )\r
469{\r
afa22326 470 ASSERT (FALSE);\r
cdebf6c6 471\r
472 return 0;\r
bbfaace4 473}\r
474\r
475\r
476\r
477/**\r
efb23117 478 This function provides a means by which to set a value for a given PCD token.\r
479 \r
bbfaace4 480 Sets the 64-bit value for the token specified by TokenNumber \r
481 to the value specified by Value. Value is returned.\r
0befb08d 482\r
efb23117 483 @param[in] TokenNumber The PCD token number to set a current value for.\r
484 @param[in] Value The 64-bit value to set.\r
bbfaace4 485\r
58380e9c 486 @return Return the value that was set.\r
bbfaace4 487\r
488**/\r
489UINT64\r
490EFIAPI\r
491LibPcdSet64 (\r
efb23117 492 IN UINTN TokenNumber,\r
493 IN UINT64 Value\r
bbfaace4 494 )\r
495{\r
afa22326 496 ASSERT (FALSE);\r
cdebf6c6 497\r
498 return 0;\r
bbfaace4 499}\r
500\r
501\r
502\r
503/**\r
efb23117 504 This function provides a means by which to set a value for a given PCD token.\r
bbfaace4 505 \r
efb23117 506 Sets a buffer for the token specified by TokenNumber to the value \r
507 specified by Buffer and SizeOfBuffer. Buffer is returned. \r
508 If SizeOfBuffer is greater than the maximum size support by TokenNumber, \r
509 then set SizeOfBuffer to the maximum size supported by TokenNumber and \r
9a355841 510 return NULL to indicate that the set operation was not actually performed.\r
efb23117 511\r
512 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the \r
513 maximum size supported by TokenName and NULL must be returned.\r
bbfaace4 514 \r
efb23117 515 If SizeOfBuffer is NULL, then ASSERT().\r
516 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
bbfaace4 517 \r
efb23117 518 @param[in] TokenNumber The PCD token number to set a current value for.\r
519 @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.\r
520 @param[in] Buffer A pointer to the buffer to set.\r
bbfaace4 521\r
f73e0ad2 522 @return Return the pointer for the buffer been set.\r
bbfaace4 523\r
524**/\r
525VOID *\r
526EFIAPI\r
527LibPcdSetPtr (\r
efb23117 528 IN UINTN TokenNumber,\r
529 IN OUT UINTN *SizeOfBuffer,\r
530 IN CONST VOID *Buffer\r
bbfaace4 531 )\r
532{\r
afa22326 533 ASSERT (FALSE);\r
bbfaace4 534\r
cdebf6c6 535 return NULL;\r
bbfaace4 536}\r
537\r
538\r
539\r
540/**\r
efb23117 541 This function provides a means by which to set a value for a given PCD token.\r
542 \r
bbfaace4 543 Sets the Boolean value for the token specified by TokenNumber \r
544 to the value specified by Value. Value is returned.\r
0befb08d 545\r
efb23117 546 @param[in] TokenNumber The PCD token number to set a current value for.\r
547 @param[in] Value The boolean value to set.\r
bbfaace4 548\r
58380e9c 549 @return Return the value that was set.\r
bbfaace4 550\r
551**/\r
552BOOLEAN\r
553EFIAPI\r
554LibPcdSetBool (\r
555 IN UINTN TokenNumber,\r
556 IN BOOLEAN Value\r
557 )\r
558{\r
afa22326 559 ASSERT (FALSE);\r
cdebf6c6 560\r
561 return FALSE;\r
bbfaace4 562}\r
563\r
564\r
565\r
566/**\r
efb23117 567 This function provides a means by which to set a value for a given PCD token.\r
568 \r
bbfaace4 569 Sets the 8-bit value for the token specified by TokenNumber and \r
570 Guid to the value specified by Value. Value is returned.\r
0befb08d 571\r
bbfaace4 572 If Guid is NULL, then ASSERT().\r
0befb08d 573\r
2fc59a00 574 @param[in] Guid The pointer to a 128-bit unique value that \r
efb23117 575 designates which namespace to set a value from.\r
576 @param[in] TokenNumber The PCD token number to set a current value for.\r
577 @param[in] Value The 8-bit value to set.\r
bbfaace4 578\r
58380e9c 579 @return Return the value that was set.\r
bbfaace4 580\r
581**/\r
582UINT8\r
583EFIAPI\r
584LibPcdSetEx8 (\r
585 IN CONST GUID *Guid,\r
586 IN UINTN TokenNumber,\r
587 IN UINT8 Value\r
588 )\r
589{\r
afa22326 590 ASSERT (FALSE);\r
bbfaace4 591\r
cdebf6c6 592 return 0;\r
bbfaace4 593}\r
594\r
595\r
596\r
597/**\r
efb23117 598 This function provides a means by which to set a value for a given PCD token.\r
599 \r
bbfaace4 600 Sets the 16-bit value for the token specified by TokenNumber and \r
601 Guid to the value specified by Value. Value is returned.\r
0befb08d 602\r
bbfaace4 603 If Guid is NULL, then ASSERT().\r
0befb08d 604\r
2fc59a00 605 @param[in] Guid The pointer to a 128-bit unique value that \r
efb23117 606 designates which namespace to set a value from.\r
607 @param[in] TokenNumber The PCD token number to set a current value for.\r
608 @param[in] Value The 16-bit value to set.\r
bbfaace4 609\r
58380e9c 610 @return Return the value that was set.\r
bbfaace4 611\r
612**/\r
613UINT16\r
614EFIAPI\r
615LibPcdSetEx16 (\r
616 IN CONST GUID *Guid,\r
617 IN UINTN TokenNumber,\r
618 IN UINT16 Value\r
619 )\r
620{\r
afa22326 621 ASSERT (FALSE);\r
bbfaace4 622\r
cdebf6c6 623 return 0;\r
bbfaace4 624}\r
625\r
626\r
627\r
628/**\r
efb23117 629 This function provides a means by which to set a value for a given PCD token.\r
630 \r
bbfaace4 631 Sets the 32-bit value for the token specified by TokenNumber and \r
632 Guid to the value specified by Value. Value is returned.\r
0befb08d 633\r
bbfaace4 634 If Guid is NULL, then ASSERT().\r
0befb08d 635\r
2fc59a00 636 @param[in] Guid The pointer to a 128-bit unique value that \r
efb23117 637 designates which namespace to set a value from.\r
638 @param[in] TokenNumber The PCD token number to set a current value for.\r
639 @param[in] Value The 32-bit value to set.\r
bbfaace4 640\r
58380e9c 641 @return Return the value that was set.\r
bbfaace4 642\r
643**/\r
644UINT32\r
645EFIAPI\r
646LibPcdSetEx32 (\r
647 IN CONST GUID *Guid,\r
648 IN UINTN TokenNumber,\r
649 IN UINT32 Value\r
650 )\r
651{\r
afa22326 652 ASSERT (FALSE);\r
bbfaace4 653\r
cdebf6c6 654 return 0;\r
bbfaace4 655}\r
656\r
657\r
658\r
659/**\r
efb23117 660 This function provides a means by which to set a value for a given PCD token.\r
661 \r
bbfaace4 662 Sets the 64-bit value for the token specified by TokenNumber and \r
663 Guid to the value specified by Value. Value is returned.\r
0befb08d 664\r
bbfaace4 665 If Guid is NULL, then ASSERT().\r
0befb08d 666\r
2fc59a00 667 @param[in] Guid The pointer to a 128-bit unique value that \r
efb23117 668 designates which namespace to set a value from.\r
669 @param[in] TokenNumber The PCD token number to set a current value for.\r
670 @param[in] Value The 64-bit value to set.\r
bbfaace4 671\r
58380e9c 672 @return Return the value that was set.\r
bbfaace4 673\r
674**/\r
675UINT64\r
676EFIAPI\r
677LibPcdSetEx64 (\r
678 IN CONST GUID *Guid,\r
679 IN UINTN TokenNumber,\r
680 IN UINT64 Value\r
681 )\r
682{\r
afa22326 683 ASSERT (FALSE);\r
bbfaace4 684\r
cdebf6c6 685 return 0;\r
bbfaace4 686}\r
687\r
688\r
689\r
690/**\r
efb23117 691 This function provides a means by which to set a value for a given PCD token.\r
692 \r
bbfaace4 693 Sets a buffer for the token specified by TokenNumber to the value specified by \r
efb23117 694 Buffer and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than \r
695 the maximum size support by TokenNumber, then set SizeOfBuffer to the maximum size \r
bbfaace4 696 supported by TokenNumber and return NULL to indicate that the set operation \r
9a355841 697 was not actually performed.\r
bbfaace4 698 \r
efb23117 699 If Guid is NULL, then ASSERT().\r
700 If SizeOfBuffer is NULL, then ASSERT().\r
701 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
bbfaace4 702 \r
2fc59a00 703 @param[in] Guid The pointer to a 128-bit unique value that \r
efb23117 704 designates which namespace to set a value from.\r
705 @param[in] TokenNumber The PCD token number to set a current value for.\r
706 @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.\r
707 @param[in] Buffer A pointer to the buffer to set.\r
bbfaace4 708\r
f73e0ad2 709 @return Return the pinter to the buffer been set.\r
bbfaace4 710\r
711**/\r
712VOID *\r
713EFIAPI\r
714LibPcdSetExPtr (\r
715 IN CONST GUID *Guid,\r
716 IN UINTN TokenNumber,\r
717 IN OUT UINTN *SizeOfBuffer,\r
718 IN VOID *Buffer\r
719 )\r
720{\r
afa22326 721 ASSERT (FALSE);\r
bbfaace4 722\r
cdebf6c6 723 return NULL;\r
bbfaace4 724}\r
725\r
726\r
727\r
728/**\r
efb23117 729 This function provides a means by which to set a value for a given PCD token.\r
730 \r
bbfaace4 731 Sets the Boolean value for the token specified by TokenNumber and \r
732 Guid to the value specified by Value. Value is returned.\r
0befb08d 733\r
bbfaace4 734 If Guid is NULL, then ASSERT().\r
0befb08d 735\r
2fc59a00 736 @param[in] Guid The pointer to a 128-bit unique value that \r
efb23117 737 designates which namespace to set a value from.\r
738 @param[in] TokenNumber The PCD token number to set a current value for.\r
739 @param[in] Value The Boolean value to set.\r
bbfaace4 740\r
58380e9c 741 @return Return the value that was set.\r
bbfaace4 742\r
743**/\r
744BOOLEAN\r
745EFIAPI\r
746LibPcdSetExBool (\r
747 IN CONST GUID *Guid,\r
748 IN UINTN TokenNumber,\r
749 IN BOOLEAN Value\r
750 )\r
751{\r
afa22326 752 ASSERT (FALSE);\r
bbfaace4 753\r
cdebf6c6 754 return FALSE;\r
bbfaace4 755}\r
9a355841
SZ
756#endif\r
757\r
758/**\r
759 This function provides a means by which to set a value for a given PCD token.\r
760\r
761 Sets the 8-bit value for the token specified by TokenNumber\r
762 to the value specified by Value.\r
763\r
764 @param[in] TokenNumber The PCD token number to set a current value for.\r
765 @param[in] Value The 8-bit value to set.\r
766\r
767 @return The status of the set operation.\r
768\r
769**/\r
770RETURN_STATUS\r
771EFIAPI\r
772LibPcdSet8S (\r
773 IN UINTN TokenNumber,\r
774 IN UINT8 Value\r
775 )\r
776{\r
777 ASSERT (FALSE);\r
778\r
779 return RETURN_INVALID_PARAMETER;\r
780}\r
781\r
782/**\r
783 This function provides a means by which to set a value for a given PCD token.\r
784\r
785 Sets the 16-bit value for the token specified by TokenNumber\r
786 to the value specified by Value.\r
787\r
788 @param[in] TokenNumber The PCD token number to set a current value for.\r
789 @param[in] Value The 16-bit value to set.\r
790\r
791 @return The status of the set operation.\r
792\r
793**/\r
794RETURN_STATUS\r
795EFIAPI\r
796LibPcdSet16S (\r
797 IN UINTN TokenNumber,\r
798 IN UINT16 Value\r
799 )\r
800{\r
801 ASSERT (FALSE);\r
802\r
803 return RETURN_INVALID_PARAMETER;\r
804}\r
805\r
806/**\r
807 This function provides a means by which to set a value for a given PCD token.\r
808\r
809 Sets the 32-bit value for the token specified by TokenNumber\r
810 to the value specified by Value.\r
811\r
812 @param[in] TokenNumber The PCD token number to set a current value for.\r
813 @param[in] Value The 32-bit value to set.\r
814\r
815 @return The status of the set operation.\r
816\r
817**/\r
818RETURN_STATUS\r
819EFIAPI\r
820LibPcdSet32S (\r
821 IN UINTN TokenNumber,\r
822 IN UINT32 Value\r
823 )\r
824{\r
825 ASSERT (FALSE);\r
826\r
827 return RETURN_INVALID_PARAMETER;\r
828}\r
829\r
830/**\r
831 This function provides a means by which to set a value for a given PCD token.\r
832\r
833 Sets the 64-bit value for the token specified by TokenNumber\r
834 to the value specified by Value.\r
835\r
836 @param[in] TokenNumber The PCD token number to set a current value for.\r
837 @param[in] Value The 64-bit value to set.\r
838\r
839 @return The status of the set operation.\r
840\r
841**/\r
842RETURN_STATUS\r
843EFIAPI\r
844LibPcdSet64S (\r
845 IN UINTN TokenNumber,\r
846 IN UINT64 Value\r
847 )\r
848{\r
849 ASSERT (FALSE);\r
850\r
851 return RETURN_INVALID_PARAMETER;\r
852}\r
853\r
854/**\r
855 This function provides a means by which to set a value for a given PCD token.\r
856\r
857 Sets a buffer for the token specified by TokenNumber to the value specified\r
858 by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than the maximum size\r
859 support by TokenNumber, then set SizeOfBuffer to the maximum size supported by\r
860 TokenNumber and return EFI_INVALID_PARAMETER to indicate that the set operation\r
861 was not actually performed.\r
862\r
863 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the\r
864 maximum size supported by TokenName and EFI_INVALID_PARAMETER must be returned.\r
865\r
866 If SizeOfBuffer is NULL, then ASSERT().\r
867 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
868\r
869 @param[in] TokenNumber The PCD token number to set a current value for.\r
870 @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.\r
871 @param[in] Buffer A pointer to the buffer to set.\r
872\r
873 @return The status of the set operation.\r
bbfaace4 874\r
9a355841
SZ
875**/\r
876RETURN_STATUS\r
877EFIAPI\r
878LibPcdSetPtrS (\r
879 IN UINTN TokenNumber,\r
880 IN OUT UINTN *SizeOfBuffer,\r
881 IN CONST VOID *Buffer\r
882 )\r
883{\r
884 ASSERT (FALSE);\r
bbfaace4 885\r
9a355841
SZ
886 return RETURN_INVALID_PARAMETER;\r
887}\r
888\r
889/**\r
890 This function provides a means by which to set a value for a given PCD token.\r
891\r
892 Sets the boolean value for the token specified by TokenNumber\r
893 to the value specified by Value.\r
894\r
895 @param[in] TokenNumber The PCD token number to set a current value for.\r
896 @param[in] Value The boolean value to set.\r
897\r
898 @return The status of the set operation.\r
899\r
900**/\r
901RETURN_STATUS\r
902EFIAPI\r
903LibPcdSetBoolS (\r
904 IN UINTN TokenNumber,\r
905 IN BOOLEAN Value\r
906 )\r
907{\r
908 ASSERT (FALSE);\r
909\r
910 return RETURN_INVALID_PARAMETER;\r
911}\r
912\r
913/**\r
914 This function provides a means by which to set a value for a given PCD token.\r
915\r
916 Sets the 8-bit value for the token specified by TokenNumber\r
917 to the value specified by Value.\r
918\r
919 If Guid is NULL, then ASSERT().\r
920\r
921 @param[in] Guid The pointer to a 128-bit unique value that\r
922 designates which namespace to set a value from.\r
923 @param[in] TokenNumber The PCD token number to set a current value for.\r
924 @param[in] Value The 8-bit value to set.\r
925\r
926 @return The status of the set operation.\r
927\r
928**/\r
929RETURN_STATUS\r
930EFIAPI\r
931LibPcdSetEx8S (\r
932 IN CONST GUID *Guid,\r
933 IN UINTN TokenNumber,\r
934 IN UINT8 Value\r
935 )\r
936{\r
937 ASSERT (FALSE);\r
938\r
939 return RETURN_INVALID_PARAMETER;\r
940}\r
941\r
942/**\r
943 This function provides a means by which to set a value for a given PCD token.\r
944\r
945 Sets the 16-bit value for the token specified by TokenNumber\r
946 to the value specified by Value.\r
947\r
948 If Guid is NULL, then ASSERT().\r
949\r
950 @param[in] Guid The pointer to a 128-bit unique value that\r
951 designates which namespace to set a value from.\r
952 @param[in] TokenNumber The PCD token number to set a current value for.\r
953 @param[in] Value The 16-bit value to set.\r
954\r
955 @return The status of the set operation.\r
956\r
957**/\r
958RETURN_STATUS\r
959EFIAPI\r
960LibPcdSetEx16S (\r
961 IN CONST GUID *Guid,\r
962 IN UINTN TokenNumber,\r
963 IN UINT16 Value\r
964 )\r
965{\r
966 ASSERT (FALSE);\r
967\r
968 return RETURN_INVALID_PARAMETER;\r
969}\r
970\r
971/**\r
972 This function provides a means by which to set a value for a given PCD token.\r
973\r
974 Sets the 32-bit value for the token specified by TokenNumber\r
975 to the value specified by Value.\r
976\r
977 If Guid is NULL, then ASSERT().\r
978\r
979 @param[in] Guid The pointer to a 128-bit unique value that\r
980 designates which namespace to set a value from.\r
981 @param[in] TokenNumber The PCD token number to set a current value for.\r
982 @param[in] Value The 32-bit value to set.\r
983\r
984 @return The status of the set operation.\r
985\r
986**/\r
987RETURN_STATUS\r
988EFIAPI\r
989LibPcdSetEx32S (\r
990 IN CONST GUID *Guid,\r
991 IN UINTN TokenNumber,\r
992 IN UINT32 Value\r
993 )\r
994{\r
995 ASSERT (FALSE);\r
996\r
997 return RETURN_INVALID_PARAMETER;\r
998}\r
999\r
1000/**\r
1001 This function provides a means by which to set a value for a given PCD token.\r
1002\r
1003 Sets the 64-bit value for the token specified by TokenNumber\r
1004 to the value specified by Value.\r
1005\r
1006 If Guid is NULL, then ASSERT().\r
1007\r
1008 @param[in] Guid The pointer to a 128-bit unique value that\r
1009 designates which namespace to set a value from.\r
1010 @param[in] TokenNumber The PCD token number to set a current value for.\r
1011 @param[in] Value The 64-bit value to set.\r
1012\r
1013 @return The status of the set operation.\r
1014\r
1015**/\r
1016RETURN_STATUS\r
1017EFIAPI\r
1018LibPcdSetEx64S (\r
1019 IN CONST GUID *Guid,\r
1020 IN UINTN TokenNumber,\r
1021 IN UINT64 Value\r
1022 )\r
1023{\r
1024 ASSERT (FALSE);\r
1025\r
1026 return RETURN_INVALID_PARAMETER;\r
1027}\r
1028\r
1029/**\r
1030 This function provides a means by which to set a value for a given PCD token.\r
1031\r
1032 Sets a buffer for the token specified by TokenNumber to the value specified by\r
1033 Buffer and SizeOfBuffer. If SizeOfBuffer is greater than the maximum size\r
1034 support by TokenNumber, then set SizeOfBuffer to the maximum size supported by\r
1035 TokenNumber and return EFI_INVALID_PARAMETER to indicate that the set operation\r
1036 was not actually performed.\r
1037\r
1038 If Guid is NULL, then ASSERT().\r
1039 If SizeOfBuffer is NULL, then ASSERT().\r
1040 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
1041\r
1042 @param[in] Guid Pointer to a 128-bit unique value that\r
1043 designates which namespace to set a value from.\r
1044 @param[in] TokenNumber The PCD token number to set a current value for.\r
1045 @param[in, out] SizeOfBuffer The size, in bytes, of Buffer.\r
1046 @param[in] Buffer A pointer to the buffer to set.\r
1047\r
1048 @return The status of the set operation.\r
1049\r
1050**/\r
1051RETURN_STATUS\r
1052EFIAPI\r
1053LibPcdSetExPtrS (\r
1054 IN CONST GUID *Guid,\r
1055 IN UINTN TokenNumber,\r
1056 IN OUT UINTN *SizeOfBuffer,\r
1057 IN VOID *Buffer\r
1058 )\r
1059{\r
1060 ASSERT (FALSE);\r
1061\r
1062 return RETURN_INVALID_PARAMETER;\r
1063}\r
1064\r
1065/**\r
1066 This function provides a means by which to set a value for a given PCD token.\r
1067\r
1068 Sets the boolean value for the token specified by TokenNumber\r
1069 to the value specified by Value.\r
1070\r
1071 If Guid is NULL, then ASSERT().\r
1072\r
1073 @param[in] Guid The pointer to a 128-bit unique value that\r
1074 designates which namespace to set a value from.\r
1075 @param[in] TokenNumber The PCD token number to set a current value for.\r
1076 @param[in] Value The boolean value to set.\r
1077\r
1078 @return The status of the set operation.\r
1079\r
1080**/\r
1081RETURN_STATUS\r
1082EFIAPI\r
1083LibPcdSetExBoolS (\r
1084 IN CONST GUID *Guid,\r
1085 IN UINTN TokenNumber,\r
1086 IN BOOLEAN Value\r
1087 )\r
1088{\r
1089 ASSERT (FALSE);\r
1090\r
1091 return RETURN_INVALID_PARAMETER;\r
1092}\r
bbfaace4 1093\r
1094/**\r
efb23117 1095 Set up a notification function that is called when a specified token is set.\r
1096 \r
bbfaace4 1097 When the token specified by TokenNumber and Guid is set, \r
1098 then notification function specified by NotificationFunction is called. \r
1099 If Guid is NULL, then the default token space is used. \r
efb23117 1100 \r
bbfaace4 1101 If NotificationFunction is NULL, then ASSERT().\r
1102\r
2fc59a00 1103 @param[in] Guid The pointer to a 128-bit unique value that designates which \r
efb23117 1104 namespace to set a value from. If NULL, then the default \r
1105 token space is used.\r
1106 @param[in] TokenNumber The PCD token number to monitor.\r
1107 @param[in] NotificationFunction The function to call when the token \r
1108 specified by Guid and TokenNumber is set.\r
bbfaace4 1109\r
bbfaace4 1110**/\r
1111VOID\r
1112EFIAPI\r
1113LibPcdCallbackOnSet (\r
1114 IN CONST GUID *Guid, OPTIONAL\r
1115 IN UINTN TokenNumber,\r
1116 IN PCD_CALLBACK NotificationFunction\r
1117 )\r
1118{\r
afa22326 1119 ASSERT (FALSE);\r
bbfaace4 1120}\r
1121\r
1122\r
1123\r
1124/**\r
1125 Disable a notification function that was established with LibPcdCallbackonSet().\r
efb23117 1126 \r
1127 Disable a notification function that was previously established with LibPcdCallbackOnSet(). \r
1128 \r
bbfaace4 1129 If NotificationFunction is NULL, then ASSERT().\r
efb23117 1130 If LibPcdCallbackOnSet() was not previously called with Guid, TokenNumber, \r
1131 and NotificationFunction, then ASSERT().\r
1132 \r
1133 @param[in] Guid Specify the GUID token space.\r
1134 @param[in] TokenNumber Specify the token number.\r
bbfaace4 1135 @param[in] NotificationFunction The callback function to be unregistered.\r
1136\r
bbfaace4 1137**/\r
1138VOID\r
1139EFIAPI\r
1140LibPcdCancelCallback (\r
1141 IN CONST GUID *Guid, OPTIONAL\r
1142 IN UINTN TokenNumber,\r
1143 IN PCD_CALLBACK NotificationFunction\r
1144 )\r
1145{\r
afa22326 1146 ASSERT (FALSE);\r
bbfaace4 1147}\r
1148\r
1149\r
1150\r
1151/**\r
efb23117 1152 Retrieves the next token in a token space.\r
1153 \r
bbfaace4 1154 Retrieves the next PCD token number from the token space specified by Guid. \r
1155 If Guid is NULL, then the default token space is used. If TokenNumber is 0, \r
1156 then the first token number is returned. Otherwise, the token number that \r
1157 follows TokenNumber in the token space is returned. If TokenNumber is the last \r
efb23117 1158 token number in the token space, then 0 is returned. \r
1159 \r
1160 If TokenNumber is not 0 and is not in the token space specified by Guid, then ASSERT().\r
bbfaace4 1161\r
2fc59a00 1162 @param[in] Guid The pointer to a 128-bit unique value that designates which namespace \r
efb23117 1163 to set a value from. If NULL, then the default token space is used.\r
1164 @param[in] TokenNumber The previous PCD token number. If 0, then retrieves the first PCD \r
1165 token number.\r
bbfaace4 1166\r
f73e0ad2 1167 @return The next valid token number.\r
bbfaace4 1168\r
1169**/\r
1170UINTN \r
1171EFIAPI\r
1172LibPcdGetNextToken (\r
efb23117 1173 IN CONST GUID *Guid, OPTIONAL\r
1174 IN UINTN TokenNumber\r
bbfaace4 1175 )\r
1176{\r
afa22326 1177 ASSERT (FALSE);\r
cdebf6c6 1178\r
bbfaace4 1179 return 0;\r
1180}\r
1181\r
1182\r
1183\r
1184/**\r
efb23117 1185 Used to retrieve the list of available PCD token space GUIDs.\r
1186 \r
8f0dd97e 1187 Returns the PCD token space GUID that follows TokenSpaceGuid in the list of token spaces\r
1188 in the platform.\r
1189 If TokenSpaceGuid is NULL, then a pointer to the first PCD token spaces returned.\r
1190 If TokenSpaceGuid is the last PCD token space GUID in the list, then NULL is returned.\r
bbfaace4 1191 \r
2fc59a00 1192 @param TokenSpaceGuid The pointer to a PCD token space GUID.\r
bbfaace4 1193\r
f73e0ad2 1194 @return The next valid token namespace.\r
bbfaace4 1195\r
1196**/\r
1197GUID * \r
1198EFIAPI\r
1199LibPcdGetNextTokenSpace (\r
efb23117 1200 IN CONST GUID *TokenSpaceGuid\r
bbfaace4 1201 )\r
1202{\r
afa22326 1203 ASSERT (FALSE);\r
cdebf6c6 1204\r
bbfaace4 1205 return NULL;\r
1206}\r
1207\r
1208\r
bbfaace4 1209/**\r
9638ba6d 1210 Sets a value of a patchable PCD entry that is type pointer.\r
1211 \r
bbfaace4 1212 Sets the PCD entry specified by PatchVariable to the value specified by Buffer \r
9638ba6d 1213 and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than \r
1214 MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return \r
bbfaace4 1215 NULL to indicate that the set operation was not actually performed. \r
9638ba6d 1216 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to \r
bbfaace4 1217 MaximumDatumSize and NULL must be returned.\r
1218 \r
1219 If PatchVariable is NULL, then ASSERT().\r
9638ba6d 1220 If SizeOfBuffer is NULL, then ASSERT().\r
1221 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
bbfaace4 1222\r
f8308f0a 1223 @param[out] PatchVariable A pointer to the global variable in a module that is \r
bbfaace4 1224 the target of the set operation.\r
1225 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.\r
1226 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
1227 @param[in] Buffer A pointer to the buffer to used to set the target variable.\r
9638ba6d 1228 \r
2fc59a00 1229 @return Return the pointer to the buffer that was set.\r
bbfaace4 1230\r
1231**/\r
1232VOID *\r
1233EFIAPI\r
1234LibPatchPcdSetPtr (\r
f8308f0a 1235 OUT VOID *PatchVariable,\r
bbfaace4 1236 IN UINTN MaximumDatumSize,\r
1237 IN OUT UINTN *SizeOfBuffer,\r
1238 IN CONST VOID *Buffer\r
1239 )\r
1240{\r
1241 ASSERT (PatchVariable != NULL);\r
1242 ASSERT (SizeOfBuffer != NULL);\r
1243 \r
1244 if (*SizeOfBuffer > 0) {\r
1245 ASSERT (Buffer != NULL);\r
1246 }\r
1247\r
1248 if ((*SizeOfBuffer > MaximumDatumSize) ||\r
1249 (*SizeOfBuffer == MAX_ADDRESS)) {\r
1250 *SizeOfBuffer = MaximumDatumSize;\r
1251 return NULL;\r
1252 }\r
1253 \r
1254 CopyMem (PatchVariable, Buffer, *SizeOfBuffer);\r
1255 \r
1256 return (VOID *) Buffer;\r
1257}\r
1258\r
9a355841
SZ
1259/**\r
1260 Sets a value of a patchable PCD entry that is type pointer.\r
1261\r
1262 Sets the PCD entry specified by PatchVariable to the value specified\r
1263 by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than MaximumDatumSize,\r
1264 then set SizeOfBuffer to MaximumDatumSize and return RETURN_INVALID_PARAMETER\r
1265 to indicate that the set operation was not actually performed.\r
1266 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to\r
1267 MaximumDatumSize and RETURN_INVALID_PARAMETER must be returned.\r
1268\r
1269 If PatchVariable is NULL, then ASSERT().\r
1270 If SizeOfBuffer is NULL, then ASSERT().\r
1271 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
1272\r
f8308f0a 1273 @param[out] PatchVariable A pointer to the global variable in a module that is\r
9a355841
SZ
1274 the target of the set operation.\r
1275 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.\r
1276 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
1277 @param[in] Buffer A pointer to the buffer to used to set the target variable.\r
1278 \r
1279 @return The status of the set operation.\r
1280\r
1281**/\r
1282RETURN_STATUS\r
1283EFIAPI\r
1284LibPatchPcdSetPtrS (\r
f8308f0a 1285 OUT VOID *PatchVariable,\r
9a355841
SZ
1286 IN UINTN MaximumDatumSize,\r
1287 IN OUT UINTN *SizeOfBuffer,\r
1288 IN CONST VOID *Buffer\r
1289 )\r
1290{\r
1291 ASSERT (PatchVariable != NULL);\r
1292 ASSERT (SizeOfBuffer != NULL);\r
1293 \r
1294 if (*SizeOfBuffer > 0) {\r
1295 ASSERT (Buffer != NULL);\r
1296 }\r
1297\r
1298 if ((*SizeOfBuffer > MaximumDatumSize) ||\r
1299 (*SizeOfBuffer == MAX_ADDRESS)) {\r
1300 *SizeOfBuffer = MaximumDatumSize;\r
1301 return RETURN_INVALID_PARAMETER;\r
1302 }\r
1303\r
1304 CopyMem (PatchVariable, Buffer, *SizeOfBuffer);\r
1305\r
1306 return RETURN_SUCCESS;\r
1307}\r
1308\r
f8308f0a
LG
1309/**\r
1310 Sets a value and size of a patchable PCD entry that is type pointer.\r
1311 \r
1312 Sets the PCD entry specified by PatchVariable to the value specified by Buffer \r
1313 and SizeOfBuffer. Buffer is returned. If SizeOfBuffer is greater than \r
1314 MaximumDatumSize, then set SizeOfBuffer to MaximumDatumSize and return \r
1315 NULL to indicate that the set operation was not actually performed. \r
1316 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to \r
1317 MaximumDatumSize and NULL must be returned.\r
1318 \r
1319 If PatchVariable is NULL, then ASSERT().\r
1320 If SizeOfPatchVariable is NULL, then ASSERT().\r
1321 If SizeOfBuffer is NULL, then ASSERT().\r
1322 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
1323\r
1324 @param[out] PatchVariable A pointer to the global variable in a module that is \r
1325 the target of the set operation.\r
1326 @param[out] SizeOfPatchVariable A pointer to the size, in bytes, of PatchVariable.\r
1327 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.\r
1328 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
1329 @param[in] Buffer A pointer to the buffer to used to set the target variable.\r
1330 \r
1331 @return Return the pointer to the buffer been set.\r
1332\r
1333**/\r
1334VOID *\r
1335EFIAPI\r
1336LibPatchPcdSetPtrAndSize (\r
1337 OUT VOID *PatchVariable,\r
1338 OUT UINTN *SizeOfPatchVariable,\r
1339 IN UINTN MaximumDatumSize,\r
1340 IN OUT UINTN *SizeOfBuffer,\r
1341 IN CONST VOID *Buffer\r
1342 )\r
1343{\r
1344 ASSERT (PatchVariable != NULL);\r
1345 ASSERT (SizeOfPatchVariable != NULL);\r
1346 ASSERT (SizeOfBuffer != NULL);\r
1347 \r
1348 if (*SizeOfBuffer > 0) {\r
1349 ASSERT (Buffer != NULL);\r
1350 }\r
1351\r
1352 if ((*SizeOfBuffer > MaximumDatumSize) ||\r
1353 (*SizeOfBuffer == MAX_ADDRESS)) {\r
1354 *SizeOfBuffer = MaximumDatumSize;\r
1355 return NULL;\r
1356 }\r
1357 \r
1358 CopyMem (PatchVariable, Buffer, *SizeOfBuffer);\r
1359 *SizeOfPatchVariable = *SizeOfBuffer;\r
1360 \r
1361 return (VOID *) Buffer;\r
1362}\r
1363\r
1364/**\r
1365 Sets a value and size of a patchable PCD entry that is type pointer.\r
1366\r
1367 Sets the PCD entry specified by PatchVariable to the value specified\r
1368 by Buffer and SizeOfBuffer. If SizeOfBuffer is greater than MaximumDatumSize,\r
1369 then set SizeOfBuffer to MaximumDatumSize and return RETURN_INVALID_PARAMETER\r
1370 to indicate that the set operation was not actually performed.\r
1371 If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to\r
1372 MaximumDatumSize and RETURN_INVALID_PARAMETER must be returned.\r
1373\r
1374 If PatchVariable is NULL, then ASSERT().\r
1375 If SizeOfPatchVariable is NULL, then ASSERT().\r
1376 If SizeOfBuffer is NULL, then ASSERT().\r
1377 If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().\r
1378\r
1379 @param[out] PatchVariable A pointer to the global variable in a module that is\r
1380 the target of the set operation.\r
1381 @param[out] SizeOfPatchVariable A pointer to the size, in bytes, of PatchVariable.\r
1382 @param[in] MaximumDatumSize The maximum size allowed for the PCD entry specified by PatchVariable.\r
1383 @param[in, out] SizeOfBuffer A pointer to the size, in bytes, of Buffer.\r
1384 @param[in] Buffer A pointer to the buffer to used to set the target variable.\r
1385 \r
1386 @return The status of the set operation.\r
1387\r
1388**/\r
1389RETURN_STATUS\r
1390EFIAPI\r
1391LibPatchPcdSetPtrAndSizeS (\r
1392 OUT VOID *PatchVariable,\r
1393 OUT UINTN *SizeOfPatchVariable,\r
1394 IN UINTN MaximumDatumSize,\r
1395 IN OUT UINTN *SizeOfBuffer,\r
1396 IN CONST VOID *Buffer\r
1397 )\r
1398{\r
1399 ASSERT (PatchVariable != NULL);\r
1400 ASSERT (SizeOfPatchVariable != NULL);\r
1401 ASSERT (SizeOfBuffer != NULL);\r
1402 \r
1403 if (*SizeOfBuffer > 0) {\r
1404 ASSERT (Buffer != NULL);\r
1405 }\r
1406\r
1407 if ((*SizeOfBuffer > MaximumDatumSize) ||\r
1408 (*SizeOfBuffer == MAX_ADDRESS)) {\r
1409 *SizeOfBuffer = MaximumDatumSize;\r
1410 return RETURN_INVALID_PARAMETER;\r
1411 }\r
1412\r
1413 CopyMem (PatchVariable, Buffer, *SizeOfBuffer);\r
1414 *SizeOfPatchVariable = *SizeOfBuffer;\r
1415\r
1416 return RETURN_SUCCESS;\r
1417}\r
1418\r
96d6d004
SZ
1419/**\r
1420 Retrieve additional information associated with a PCD token.\r
1421\r
1422 This includes information such as the type of value the TokenNumber is associated with as well as possible\r
1423 human readable name that is associated with the token.\r
1424\r
1425 If TokenNumber is not in the default token space specified, then ASSERT().\r
1426\r
1427 @param[in] TokenNumber The PCD token number.\r
1428 @param[out] PcdInfo The returned information associated with the requested TokenNumber.\r
1429 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.\r
1430**/\r
1431VOID\r
1432EFIAPI\r
1433LibPcdGetInfo (\r
1434 IN UINTN TokenNumber,\r
1435 OUT PCD_INFO *PcdInfo\r
1436 )\r
1437{\r
1438 ASSERT (FALSE);\r
1439}\r
1440\r
1441/**\r
1442 Retrieve additional information associated with a PCD token.\r
1443\r
1444 This includes information such as the type of value the TokenNumber is associated with as well as possible\r
1445 human readable name that is associated with the token.\r
1446\r
1447 If TokenNumber is not in the token space specified by Guid, then ASSERT().\r
1448\r
1449 @param[in] Guid The 128-bit unique value that designates the namespace from which to extract the value.\r
1450 @param[in] TokenNumber The PCD token number.\r
1451 @param[out] PcdInfo The returned information associated with the requested TokenNumber.\r
1452 The caller is responsible for freeing the buffer that is allocated by callee for PcdInfo->PcdName.\r
1453**/\r
1454VOID\r
1455EFIAPI\r
1456LibPcdGetInfoEx (\r
1457 IN CONST GUID *Guid,\r
1458 IN UINTN TokenNumber,\r
1459 OUT PCD_INFO *PcdInfo\r
1460 )\r
1461{\r
1462 ASSERT (FALSE);\r
1463}\r
1464\r
1465/**\r
1466 Retrieve the currently set SKU Id.\r
1467\r
1468 If the sku id got >= PCD_MAX_SKU_ID, then ASSERT().\r
1469\r
1470 @return The currently set SKU Id. If the platform has not set at a SKU Id, then the\r
1471 default SKU Id value of 0 is returned. If the platform has set a SKU Id, then the currently set SKU\r
1472 Id is returned.\r
1473**/\r
1474UINTN\r
1475EFIAPI\r
1476LibPcdGetSku (\r
1477 VOID\r
1478 )\r
1479{\r
1480 ASSERT (FALSE);\r
1481\r
1482 return 0;\r
1483}\r
1484\r