TianoCore EDK2 master
Loading...
Searching...
No Matches
VarCheckUefiLibNullClass.c
Go to the documentation of this file.
1
9#include <Uefi/UefiBaseType.h>
10
11#include <Library/VarCheckLib.h>
12#include <Library/BaseLib.h>
14#include <Library/DebugLib.h>
16
17#include <Guid/VariableFormat.h>
18#include <Guid/GlobalVariable.h>
21
22typedef
24(EFIAPI *INTERNAL_VAR_CHECK_FUNCTION)(
26 IN UINTN DataSize,
27 IN VOID *Data
28 );
29
30typedef struct {
31 CHAR16 *Name;
32 VAR_CHECK_VARIABLE_PROPERTY VariableProperty;
33 INTERNAL_VAR_CHECK_FUNCTION CheckFunction;
35
48EFIAPI
50 IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery,
51 IN UINTN DataSize,
52 IN VOID *Data
53 )
54{
55 UINT16 FilePathListLength;
56 CHAR16 *Description;
57 EFI_DEVICE_PATH_PROTOCOL *FilePathList;
58
59 FilePathListLength = *((UINT16 *)((UINTN)Data + sizeof (UINT32)));
60
61 //
62 // Check Description
63 //
64 Description = (CHAR16 *)((UINTN)Data + sizeof (UINT32) + sizeof (UINT16));
65 while (Description < (CHAR16 *)((UINTN)Data + DataSize)) {
66 if (*Description == L'\0') {
67 break;
68 }
69
70 Description++;
71 }
72
73 if ((UINTN)Description >= ((UINTN)Data + DataSize)) {
74 return EFI_INVALID_PARAMETER;
75 }
76
77 Description++;
78
79 //
80 // Check FilePathList
81 //
82 FilePathList = (EFI_DEVICE_PATH_PROTOCOL *)Description;
83 if ((UINTN)FilePathList > (MAX_ADDRESS - FilePathListLength)) {
84 return EFI_INVALID_PARAMETER;
85 }
86
87 if (((UINTN)FilePathList + FilePathListLength) > ((UINTN)Data + DataSize)) {
88 return EFI_INVALID_PARAMETER;
89 }
90
91 if (FilePathListLength < sizeof (EFI_DEVICE_PATH_PROTOCOL)) {
92 return EFI_INVALID_PARAMETER;
93 }
94
95 if (!IsDevicePathValid (FilePathList, FilePathListLength)) {
96 return EFI_INVALID_PARAMETER;
97 }
98
99 return EFI_SUCCESS;
100}
101
114EFIAPI
116 IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery,
117 IN UINTN DataSize,
118 IN VOID *Data
119 )
120{
121 if (((DataSize - sizeof (EFI_KEY_OPTION)) % sizeof (EFI_INPUT_KEY)) != 0) {
122 return EFI_INVALID_PARAMETER;
123 }
124
125 return EFI_SUCCESS;
126}
127
140EFIAPI
142 IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery,
143 IN UINTN DataSize,
144 IN VOID *Data
145 )
146{
147 if (!IsDevicePathValid ((EFI_DEVICE_PATH_PROTOCOL *)Data, DataSize)) {
148 return EFI_INVALID_PARAMETER;
149 }
150
151 return EFI_SUCCESS;
152}
153
166EFIAPI
168 IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery,
169 IN UINTN DataSize,
170 IN VOID *Data
171 )
172{
173 CHAR8 *String;
174 UINTN Index;
175
176 String = (CHAR8 *)Data;
177 if (String[DataSize - 1] == '\0') {
178 return EFI_SUCCESS;
179 } else {
180 for (Index = 1; Index < DataSize && (String[DataSize - 1 - Index] != '\0'); Index++) {
181 }
182
183 if (Index == DataSize) {
184 return EFI_INVALID_PARAMETER;
185 }
186 }
187
188 return EFI_SUCCESS;
189}
190
203EFIAPI
205 IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery,
206 IN UINTN DataSize,
207 IN VOID *Data
208 )
209{
210 if ((DataSize % VariablePropery->MinSize) != 0) {
211 return EFI_INVALID_PARAMETER;
212 }
213
214 return EFI_SUCCESS;
215}
216
217//
218// To prevent name collisions with possible future globally defined variables,
219// other internal firmware data variables that are not defined here must be
220// saved with a unique VendorGuid other than EFI_GLOBAL_VARIABLE or
221// any other GUID defined by the UEFI Specification. Implementations must
222// only permit the creation of variables with a UEFI Specification-defined
223// VendorGuid when these variables are documented in the UEFI Specification.
224//
225UEFI_DEFINED_VARIABLE_ENTRY mGlobalVariableList[] = {
226 {
228 {
229 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
230 0,
231 VARIABLE_ATTRIBUTE_BS_RT,
232 1,
233 MAX_UINTN
234 },
236 },
237 {
239 {
240 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
241 0,
242 VARIABLE_ATTRIBUTE_NV_BS_RT,
243 1,
244 MAX_UINTN
245 },
247 },
248 {
250 {
251 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
252 0,
253 VARIABLE_ATTRIBUTE_NV_BS_RT,
254 sizeof (UINT16),
255 sizeof (UINT16)
256 },
257 NULL
258 },
259 {
261 {
262 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
263 0,
264 VARIABLE_ATTRIBUTE_BS_RT,
265 1,
266 MAX_UINTN
267 },
269 },
270 {
272 {
273 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
274 0,
275 VARIABLE_ATTRIBUTE_NV_BS_RT,
276 1,
277 MAX_UINTN
278 },
280 },
281 {
283 {
284 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
285 0,
286 VARIABLE_ATTRIBUTE_NV_BS_RT,
288 MAX_UINTN
289 },
291 },
292 {
293 EFI_CON_OUT_VARIABLE_NAME,
294 {
295 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
296 0,
297 VARIABLE_ATTRIBUTE_NV_BS_RT,
299 MAX_UINTN
300 },
302 },
303 {
304 EFI_ERR_OUT_VARIABLE_NAME,
305 {
306 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
307 0,
308 VARIABLE_ATTRIBUTE_NV_BS_RT,
310 MAX_UINTN
311 },
313 },
314 {
316 {
317 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
318 0,
319 VARIABLE_ATTRIBUTE_BS_RT,
321 MAX_UINTN
322 },
324 },
325 {
326 EFI_CON_OUT_DEV_VARIABLE_NAME,
327 {
328 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
329 0,
330 VARIABLE_ATTRIBUTE_BS_RT,
332 MAX_UINTN
333 },
335 },
336 {
337 EFI_ERR_OUT_DEV_VARIABLE_NAME,
338 {
339 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
340 0,
341 VARIABLE_ATTRIBUTE_BS_RT,
343 MAX_UINTN
344 },
346 },
347 {
349 {
350 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
351 0,
352 VARIABLE_ATTRIBUTE_NV_BS_RT,
353 sizeof (UINT16),
354 MAX_UINTN
355 },
357 },
358 {
360 {
361 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
362 0,
363 VARIABLE_ATTRIBUTE_NV_BS_RT,
364 sizeof (UINT16),
365 sizeof (UINT16)
366 },
367 NULL
368 },
369 {
371 {
372 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
373 0,
374 VARIABLE_ATTRIBUTE_BS_RT,
375 sizeof (UINT16),
376 sizeof (UINT16)
377 },
378 NULL
379 },
380 {
382 {
383 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
384 0,
385 VARIABLE_ATTRIBUTE_BS_RT,
386 sizeof (UINT32),
387 sizeof (UINT32)
388 },
389 NULL
390 },
391 {
393 {
394 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
395 0,
396 VARIABLE_ATTRIBUTE_NV_BS_RT,
397 sizeof (UINT16),
398 MAX_UINTN
399 },
401 },
402 {
404 {
405 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
406 0,
407 VARIABLE_ATTRIBUTE_NV_BS_RT,
408 sizeof (UINT16),
409 MAX_UINTN
410 },
412 },
413 {
415 {
416 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
417 0,
418 VARIABLE_ATTRIBUTE_NV_BS_RT,
419 sizeof (UINT16),
420 sizeof (UINT16)
421 },
422 NULL
423 },
424 {
426 {
427 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
428 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
429 VARIABLE_ATTRIBUTE_BS_RT,
430 sizeof (UINT8),
431 sizeof (UINT8)
432 },
433 NULL
434 },
435 {
437 {
438 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
439 0,
440 VARIABLE_ATTRIBUTE_NV_BS_RT_AT,
441 1,
442 MAX_UINTN
443 },
444 NULL
445 },
446 {
448 {
449 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
450 0,
451 VARIABLE_ATTRIBUTE_NV_BS_RT_AT,
452 1,
453 MAX_UINTN
454 },
455 NULL
456 },
457 {
459 {
460 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
461 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
462 VARIABLE_ATTRIBUTE_BS_RT,
463 sizeof (EFI_GUID),
464 MAX_UINTN
465 },
467 },
468 {
470 {
471 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
472 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
473 VARIABLE_ATTRIBUTE_BS_RT,
474 sizeof (UINT8),
475 sizeof (UINT8)
476 },
477 NULL
478 },
479 {
481 {
482 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
483 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
484 VARIABLE_ATTRIBUTE_BS_RT,
485 1,
486 MAX_UINTN
487 },
488 NULL
489 },
490 {
492 {
493 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
494 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
495 VARIABLE_ATTRIBUTE_BS_RT,
496 1,
497 MAX_UINTN
498 },
499 NULL
500 },
501 {
503 {
504 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
505 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
506 VARIABLE_ATTRIBUTE_BS_RT,
507 1,
508 MAX_UINTN
509 },
510 NULL
511 },
512 {
514 {
515 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
516 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
517 VARIABLE_ATTRIBUTE_BS_RT,
518 1,
519 MAX_UINTN
520 },
521 NULL
522 },
523 {
525 {
526 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
527 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
528 VARIABLE_ATTRIBUTE_BS_RT,
529 1,
530 MAX_UINTN
531 },
532 NULL
533 },
534 {
536 {
537 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
538 0,
539 VARIABLE_ATTRIBUTE_BS_RT,
540 sizeof (UINT64),
541 sizeof (UINT64)
542 },
543 NULL
544 },
545 {
547 {
548 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
549 0,
550 VARIABLE_ATTRIBUTE_NV_BS_RT,
551 sizeof (UINT64),
552 sizeof (UINT64)
553 },
554 NULL
555 },
556 {
558 {
559 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
560 VAR_CHECK_VARIABLE_PROPERTY_READ_ONLY,
561 VARIABLE_ATTRIBUTE_BS_RT,
562 sizeof (UINT8),
563 sizeof (UINT8)
564 },
565 NULL
566 },
567};
568
569UEFI_DEFINED_VARIABLE_ENTRY mGlobalVariableList2[] = {
570 {
571 L"Boot####",
572 {
573 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
574 0,
575 VARIABLE_ATTRIBUTE_NV_BS_RT,
576 sizeof (UINT32) + sizeof (UINT16),
577 MAX_UINTN
578 },
580 },
581 {
582 L"Driver####",
583 {
584 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
585 0,
586 VARIABLE_ATTRIBUTE_NV_BS_RT,
587 sizeof (UINT32) + sizeof (UINT16),
588 MAX_UINTN
589 },
591 },
592 {
593 L"SysPrep####",
594 {
595 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
596 0,
597 VARIABLE_ATTRIBUTE_NV_BS_RT,
598 sizeof (UINT32) + sizeof (UINT16),
599 MAX_UINTN
600 },
602 },
603 {
604 L"Key####",
605 {
606 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
607 0,
608 VARIABLE_ATTRIBUTE_NV_BS_RT,
609 sizeof (EFI_KEY_OPTION),
610 sizeof (EFI_KEY_OPTION) + 3 * sizeof (EFI_INPUT_KEY)
611 },
613 },
614 {
615 L"PlatformRecovery####",
616 {
617 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
618 0,
619 VARIABLE_ATTRIBUTE_BS_RT,
620 sizeof (UINT32) + sizeof (UINT16),
621 MAX_UINTN
622 },
624 },
625};
626
627//
628// EFI_IMAGE_SECURITY_DATABASE_GUID
629//
630UEFI_DEFINED_VARIABLE_ENTRY mImageSecurityVariableList[] = {
631 {
633 {
634 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
635 0,
636 VARIABLE_ATTRIBUTE_NV_BS_RT_AT,
637 1,
638 MAX_UINTN
639 },
640 NULL
641 },
642 {
644 {
645 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
646 0,
647 VARIABLE_ATTRIBUTE_NV_BS_RT_AT,
648 1,
649 MAX_UINTN
650 },
651 NULL
652 },
653 {
655 {
656 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
657 0,
658 VARIABLE_ATTRIBUTE_NV_BS_RT_AT,
659 1,
660 MAX_UINTN
661 },
662 NULL
663 },
664};
665
666//
667// EFI_HARDWARE_ERROR_VARIABLE
668//
669UEFI_DEFINED_VARIABLE_ENTRY mHwErrRecVariable = {
670 L"HwErrRec####",
671 {
672 VAR_CHECK_VARIABLE_PROPERTY_REVISION,
673 0,
674 VARIABLE_ATTRIBUTE_NV_BS_RT_HR,
675 1,
676 MAX_UINTN
677 },
678 NULL
679};
680
681EFI_GUID *mUefiDefinedGuid[] = {
682 &gEfiGlobalVariableGuid,
683 &gEfiImageSecurityDatabaseGuid,
684 &gEfiHardwareErrorVariableGuid
685};
686
701BOOLEAN
702EFIAPI
704 IN CHAR16 Char
705 )
706{
707 return (BOOLEAN)((Char >= L'0' && Char <= L'9') || (Char >= L'A' && Char <= L'F'));
708}
709
724BOOLEAN
725EFIAPI
727 IN CHAR16 *VariableName,
728 IN EFI_GUID *VendorGuid
729 )
730{
731 if (!CompareGuid (VendorGuid, &gEfiHardwareErrorVariableGuid) ||
732 (StrLen (VariableName) != StrLen (L"HwErrRec####")) ||
733 (StrnCmp (VariableName, L"HwErrRec", StrLen (L"HwErrRec")) != 0) ||
734 !VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[0x8]) ||
735 !VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[0x9]) ||
736 !VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[0xA]) ||
737 !VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[0xB]))
738 {
739 return FALSE;
740 }
741
742 return TRUE;
743}
744
755INTERNAL_VAR_CHECK_FUNCTION
757 IN CHAR16 *VariableName,
758 IN EFI_GUID *VendorGuid,
759 OUT VAR_CHECK_VARIABLE_PROPERTY **VariableProperty
760 )
761{
762 UINTN Index;
763 UINTN NameLength;
764
765 if (CompareGuid (VendorGuid, &gEfiGlobalVariableGuid)) {
766 //
767 // Try list 1, exactly match.
768 //
769 for (Index = 0; Index < sizeof (mGlobalVariableList)/sizeof (mGlobalVariableList[0]); Index++) {
770 if (StrCmp (mGlobalVariableList[Index].Name, VariableName) == 0) {
771 *VariableProperty = &(mGlobalVariableList[Index].VariableProperty);
772 return mGlobalVariableList[Index].CheckFunction;
773 }
774 }
775
776 //
777 // Try list 2.
778 //
779 NameLength = StrLen (VariableName) - 4;
780 for (Index = 0; Index < sizeof (mGlobalVariableList2)/sizeof (mGlobalVariableList2[0]); Index++) {
781 if ((StrLen (VariableName) == StrLen (mGlobalVariableList2[Index].Name)) &&
782 (StrnCmp (VariableName, mGlobalVariableList2[Index].Name, NameLength) == 0) &&
783 VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[NameLength]) &&
784 VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[NameLength + 1]) &&
785 VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[NameLength + 2]) &&
786 VarCheckUefiIsHexaDecimalDigitCharacter (VariableName[NameLength + 3]))
787 {
788 *VariableProperty = &(mGlobalVariableList2[Index].VariableProperty);
789 return mGlobalVariableList2[Index].CheckFunction;
790 }
791 }
792 }
793
794 return NULL;
795}
796
813EFIAPI
815 IN CHAR16 *VariableName,
816 IN EFI_GUID *VendorGuid,
817 IN UINT32 Attributes,
818 IN UINTN DataSize,
819 IN VOID *Data
820 )
821{
822 EFI_STATUS Status;
823 UINTN Index;
825 VAR_CHECK_VARIABLE_PROPERTY *VarCheckProperty;
826 INTERNAL_VAR_CHECK_FUNCTION VarCheckFunction;
827
828 if ((((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) && (DataSize == 0)) || (Attributes == 0)) {
829 //
830 // Do not check delete variable.
831 //
832 return EFI_SUCCESS;
833 }
834
836 if (!IsHwErrRecVariable (VariableName, VendorGuid)) {
837 return EFI_INVALID_PARAMETER;
838 }
839 }
840
841 for (Index = 0; Index < sizeof (mUefiDefinedGuid)/sizeof (mUefiDefinedGuid[0]); Index++) {
842 if (CompareGuid (VendorGuid, mUefiDefinedGuid[Index])) {
843 if (VarCheckLibVariablePropertyGet (VariableName, VendorGuid, &Property) == EFI_NOT_FOUND) {
844 //
845 // To prevent name collisions with possible future globally defined variables,
846 // other internal firmware data variables that are not defined here must be
847 // saved with a unique VendorGuid other than EFI_GLOBAL_VARIABLE or
848 // any other GUID defined by the UEFI Specification. Implementations must
849 // only permit the creation of variables with a UEFI Specification-defined
850 // VendorGuid when these variables are documented in the UEFI Specification.
851 //
852 DEBUG ((DEBUG_INFO, "UEFI Variable Check fail %r - %s not in %g namespace\n", EFI_INVALID_PARAMETER, VariableName, VendorGuid));
853 return EFI_INVALID_PARAMETER;
854 }
855 }
856 }
857
858 if (DataSize == 0) {
859 return EFI_SUCCESS;
860 }
861
862 VarCheckProperty = NULL;
863 VarCheckFunction = GetUefiDefinedVarCheckFunction (VariableName, VendorGuid, &VarCheckProperty);
864 if (VarCheckFunction != NULL) {
865 Status = VarCheckFunction (
866 VarCheckProperty,
867 DataSize,
868 Data
869 );
870 if (EFI_ERROR (Status)) {
871 DEBUG ((DEBUG_INFO, "UEFI Variable Check function fail %r - %g:%s\n", Status, VendorGuid, VariableName));
872 return Status;
873 }
874 }
875
876 return EFI_SUCCESS;
877}
878
883VOID
885 VOID
886 )
887{
888 UINTN Index;
889
890 //
891 // EFI_GLOBAL_VARIABLE
892 //
893 for (Index = 0; Index < sizeof (mGlobalVariableList)/sizeof (mGlobalVariableList[0]); Index++) {
895 mGlobalVariableList[Index].Name,
896 &gEfiGlobalVariableGuid,
897 &mGlobalVariableList[Index].VariableProperty
898 );
899 }
900
901 for (Index = 0; Index < sizeof (mGlobalVariableList2)/sizeof (mGlobalVariableList2[0]); Index++) {
903 mGlobalVariableList2[Index].Name,
904 &gEfiGlobalVariableGuid,
905 &mGlobalVariableList2[Index].VariableProperty
906 );
907 }
908
909 //
910 // EFI_IMAGE_SECURITY_DATABASE_GUID
911 //
912 for (Index = 0; Index < sizeof (mImageSecurityVariableList)/sizeof (mImageSecurityVariableList[0]); Index++) {
914 mImageSecurityVariableList[Index].Name,
915 &gEfiImageSecurityDatabaseGuid,
916 &mImageSecurityVariableList[Index].VariableProperty
917 );
918 }
919
920 //
921 // EFI_HARDWARE_ERROR_VARIABLE
922 //
924 mHwErrRecVariable.Name,
925 &gEfiHardwareErrorVariableGuid,
926 &mHwErrRecVariable.VariableProperty
927 );
928}
929
937RETURN_STATUS
938EFIAPI
940 VOID
941 )
942{
945
946 return RETURN_SUCCESS;
947}
UINT64 UINTN
#define MAX_ADDRESS
INTN EFIAPI StrCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString)
Definition: String.c:109
INTN EFIAPI StrnCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString, IN UINTN Length)
Definition: String.c:162
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
Definition: String.c:30
BOOLEAN EFIAPI CompareGuid(IN CONST GUID *Guid1, IN CONST GUID *Guid2)
Definition: MemLibGuid.c:73
BOOLEAN EFIAPI IsDevicePathValid(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN UINTN MaxSize)
#define EFI_BOOT_ORDER_VARIABLE_NAME
#define EFI_OS_INDICATIONS_VARIABLE_NAME
#define EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME
#define EFI_SYS_PREP_ORDER_VARIABLE_NAME
#define EFI_CON_IN_DEV_VARIABLE_NAME
#define EFI_DBX_DEFAULT_VARIABLE_NAME
#define EFI_SETUP_MODE_NAME
#define EFI_BOOT_OPTION_SUPPORT_VARIABLE_NAME
#define EFI_DBT_DEFAULT_VARIABLE_NAME
#define EFI_KEY_EXCHANGE_KEY_NAME
#define EFI_LANG_VARIABLE_NAME
#define EFI_PLATFORM_LANG_CODES_VARIABLE_NAME
#define EFI_CON_IN_VARIABLE_NAME
#define EFI_KEK_DEFAULT_VARIABLE_NAME
#define EFI_PK_DEFAULT_VARIABLE_NAME
#define EFI_DB_DEFAULT_VARIABLE_NAME
#define EFI_BOOT_CURRENT_VARIABLE_NAME
#define EFI_LANG_CODES_VARIABLE_NAME
#define EFI_BOOT_NEXT_VARIABLE_NAME
#define EFI_TIME_OUT_VARIABLE_NAME
#define EFI_PLATFORM_LANG_VARIABLE_NAME
#define EFI_SIGNATURE_SUPPORT_NAME
#define EFI_PLATFORM_KEY_NAME
#define EFI_HW_ERR_REC_SUPPORT_VARIABLE_NAME
#define EFI_VENDOR_KEYS_VARIABLE_NAME
#define EFI_DRIVER_ORDER_VARIABLE_NAME
#define EFI_SECURE_BOOT_MODE_NAME
#define EFI_IMAGE_SECURITY_DATABASE2
#define EFI_IMAGE_SECURITY_DATABASE1
#define EFI_IMAGE_SECURITY_DATABASE
#define NULL
Definition: Base.h:319
#define RETURN_SUCCESS
Definition: Base.h:1066
#define TRUE
Definition: Base.h:301
#define FALSE
Definition: Base.h:307
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
#define DEBUG(Expression)
Definition: DebugLib.h:434
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
GUID EFI_GUID
Definition: UefiBaseType.h:25
#define EFI_SUCCESS
Definition: UefiBaseType.h:112
#define EFI_VARIABLE_HARDWARE_ERROR_RECORD
EFI_STATUS EFIAPI VarCheckLibRegisterSetVariableCheckHandler(IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler)
Definition: VarCheckLib.c:440
EFI_STATUS EFIAPI VarCheckLibVariablePropertySet(IN CHAR16 *Name, IN EFI_GUID *Guid, IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty)
Definition: VarCheckLib.c:483
EFI_STATUS EFIAPI VarCheckLibVariablePropertyGet(IN CHAR16 *Name, IN EFI_GUID *Guid, OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty)
Definition: VarCheckLib.c:558
EFI_STATUS EFIAPI InternalVarCheckSizeArray(IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery, IN UINTN DataSize, IN VOID *Data)
BOOLEAN EFIAPI IsHwErrRecVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS EFIAPI SetVariableCheckHandlerUefiDefined(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
BOOLEAN EFIAPI VarCheckUefiIsHexaDecimalDigitCharacter(IN CHAR16 Char)
EFI_STATUS EFIAPI InternalVarCheckLoadOption(IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery, IN UINTN DataSize, IN VOID *Data)
RETURN_STATUS EFIAPI VarCheckUefiLibNullClassConstructor(VOID)
EFI_STATUS EFIAPI InternalVarCheckKeyOption(IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery, IN UINTN DataSize, IN VOID *Data)
INTERNAL_VAR_CHECK_FUNCTION GetUefiDefinedVarCheckFunction(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT VAR_CHECK_VARIABLE_PROPERTY **VariableProperty)
EFI_STATUS EFIAPI InternalVarCheckDevicePath(IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery, IN UINTN DataSize, IN VOID *Data)
EFI_STATUS EFIAPI InternalVarCheckAsciiString(IN VAR_CHECK_VARIABLE_PROPERTY *VariablePropery, IN UINTN DataSize, IN VOID *Data)
VOID VariablePropertySetUefiDefined(VOID)
Definition: Base.h:213