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