TianoCore EDK2 master
|
#include <Library/VarCheckLib.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Guid/GlobalVariable.h>
#include <Guid/HardwareErrorVariable.h>
Go to the source code of this file.
Data Structures | |
struct | VAR_CHECK_VARIABLE_ENTRY |
Macros | |
#define | VAR_CHECK_TABLE_SIZE 0x8 |
Variables | |
BOOLEAN | mVarCheckLibEndOfDxe = FALSE |
UINTN | mVarCheckLibEndOfDxeCallbackCount = 0 |
UINTN | mVarCheckLibEndOfDxeCallbackMaxCount = 0 |
VAR_CHECK_END_OF_DXE_CALLBACK * | mVarCheckLibEndOfDxeCallback = NULL |
UINTN | mVarCheckLibAddressPointerCount = 0 |
UINTN | mVarCheckLibAddressPointerMaxCount = 0 |
VOID *** | mVarCheckLibAddressPointer = NULL |
UINTN | mNumberOfVarCheckHandler = 0 |
UINTN | mMaxNumberOfVarCheckHandler = 0 |
VAR_CHECK_SET_VARIABLE_CHECK_HANDLER * | mVarCheckHandlerTable = NULL |
UINTN | mNumberOfVarCheckVariable = 0 |
UINTN | mMaxNumberOfVarCheckVariable = 0 |
VARIABLE_ENTRY_PROPERTY ** | mVarCheckVariableTable = NULL |
VARIABLE_ENTRY_PROPERTY | mVarCheckVariableWithWildcardName [] |
Implementation functions and structures for var check services.
Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file VarCheckLib.c.
#define VAR_CHECK_TABLE_SIZE 0x8 |
Definition at line 20 of file VarCheckLib.c.
EFI_STATUS VarCheckAddTableEntry | ( | IN OUT UINTN ** | Table, |
IN OUT UINTN * | MaxNumber, | ||
IN OUT UINTN * | CurrentNumber, | ||
IN UINTN | Entry | ||
) |
Var check add table entry.
[in,out] | Table | Pointer to table buffer. |
[in,out] | MaxNumber | Pointer to maximum number of entry in the table. |
[in,out] | CurrentNumber | Pointer to current number of entry in the table. |
[in] | Entry | Entry will be added to the table. |
EFI_SUCCESS | Reallocate memory successfully. |
EFI_OUT_OF_RESOURCES | No enough memory to allocate. |
Definition at line 204 of file VarCheckLib.c.
BOOLEAN EFIAPI VarCheckInternalIsHexaDecimalDigitCharacter | ( | IN CHAR16 | Char | ) |
Check if a Unicode character is an upper case hexadecimal character.
This function checks if a Unicode character is an upper case hexadecimal character. The valid upper case hexadecimal character is L'0' to L'9', or L'A' to L'F'.
[in] | Char | The character to check against. |
TRUE | If the Char is an upper case hexadecmial character. |
FALSE | If the Char is not an upper case hexadecmial character. |
Definition at line 108 of file VarCheckLib.c.
Var check initialize at END_OF_DXE.
This function needs to be called at END_OF_DXE. Address pointers may be returned, and caller needs to ConvertPointer() for the pointers.
[in,out] | AddressPointerCount | Output pointer to address pointer count. |
Definition at line 304 of file VarCheckLib.c.
EFI_STATUS EFIAPI VarCheckLibRegisterAddressPointer | ( | IN VOID ** | AddressPointer | ) |
Register address pointer. The AddressPointer may be returned by VarCheckLibInitializeAtEndOfDxe().
[in] | AddressPointer | Address pointer. |
EFI_SUCCESS | The address pointer was registered successfully. |
EFI_INVALID_PARAMETER | AddressPointer is NULL. |
EFI_ACCESS_DENIED | EFI_END_OF_DXE_EVENT_GROUP_GUID or EFI_EVENT_GROUP_READY_TO_BOOT has already been signaled. |
EFI_OUT_OF_RESOURCES | There is not enough resource for the address pointer register request. |
Definition at line 398 of file VarCheckLib.c.
EFI_STATUS EFIAPI VarCheckLibRegisterEndOfDxeCallback | ( | IN VAR_CHECK_END_OF_DXE_CALLBACK | Callback | ) |
Register END_OF_DXE callback. The callback will be invoked by VarCheckLibInitializeAtEndOfDxe().
[in] | Callback | END_OF_DXE callback. |
EFI_SUCCESS | The callback was registered successfully. |
EFI_INVALID_PARAMETER | Callback is NULL. |
EFI_ACCESS_DENIED | EFI_END_OF_DXE_EVENT_GROUP_GUID or EFI_EVENT_GROUP_READY_TO_BOOT has already been signaled. |
EFI_OUT_OF_RESOURCES | There is not enough resource for the callback register request. |
Definition at line 264 of file VarCheckLib.c.
EFI_STATUS EFIAPI VarCheckLibRegisterSetVariableCheckHandler | ( | IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER | Handler | ) |
Register SetVariable check handler.
[in] | Handler | Pointer to check handler. |
EFI_SUCCESS | The SetVariable check handler was registered successfully. |
EFI_INVALID_PARAMETER | Handler is NULL. |
EFI_ACCESS_DENIED | EFI_END_OF_DXE_EVENT_GROUP_GUID or EFI_EVENT_GROUP_READY_TO_BOOT has already been signaled. |
EFI_OUT_OF_RESOURCES | There is not enough resource for the SetVariable check handler register request. |
EFI_UNSUPPORTED | This interface is not implemented. For example, it is unsupported in VarCheck protocol if both VarCheck and SmmVarCheck protocols are present. |
Definition at line 440 of file VarCheckLib.c.
EFI_STATUS EFIAPI VarCheckLibSetVariableCheck | ( | IN CHAR16 * | VariableName, |
IN EFI_GUID * | VendorGuid, | ||
IN UINT32 | Attributes, | ||
IN UINTN | DataSize, | ||
IN VOID * | Data, | ||
IN VAR_CHECK_REQUEST_SOURCE | RequestSource | ||
) |
SetVariable check.
[in] | VariableName | Name of Variable to set. |
[in] | VendorGuid | Variable vendor GUID. |
[in] | Attributes | Attribute value of the variable. |
[in] | DataSize | Size of Data to set. |
[in] | Data | Data pointer. |
[in] | RequestSource | Request source. |
EFI_SUCCESS | The SetVariable check result was success. |
EFI_INVALID_PARAMETER | An invalid combination of attribute bits, name, GUID, DataSize and Data value was supplied. |
EFI_WRITE_PROTECTED | The variable in question is read-only. |
Others | The other return status from check handler. |
Definition at line 607 of file VarCheckLib.c.
EFI_STATUS EFIAPI VarCheckLibVariablePropertyGet | ( | IN CHAR16 * | Name, |
IN EFI_GUID * | Guid, | ||
OUT VAR_CHECK_VARIABLE_PROPERTY * | VariableProperty | ||
) |
Variable property get.
[in] | Name | Pointer to the variable name. |
[in] | Guid | Pointer to the vendor GUID. |
[out] | VariableProperty | Pointer to the output variable property. |
EFI_SUCCESS | The property of variable specified by the Name and Guid was got successfully. |
EFI_INVALID_PARAMETER | Name, Guid or VariableProperty is NULL, or Name is an empty string. |
EFI_NOT_FOUND | The property of variable specified by the Name and Guid was not found. |
Definition at line 558 of file VarCheckLib.c.
EFI_STATUS EFIAPI VarCheckLibVariablePropertySet | ( | IN CHAR16 * | Name, |
IN EFI_GUID * | Guid, | ||
IN VAR_CHECK_VARIABLE_PROPERTY * | VariableProperty | ||
) |
Variable property set.
[in] | Name | Pointer to the variable name. |
[in] | Guid | Pointer to the vendor GUID. |
[in] | VariableProperty | Pointer to the input variable property. |
EFI_SUCCESS | The property of variable specified by the Name and Guid was set successfully. |
EFI_INVALID_PARAMETER | Name, Guid or VariableProperty is NULL, or Name is an empty string, or the fields of VariableProperty are not valid. |
EFI_ACCESS_DENIED | EFI_END_OF_DXE_EVENT_GROUP_GUID or EFI_EVENT_GROUP_READY_TO_BOOT has already been signaled. |
EFI_OUT_OF_RESOURCES | There is not enough resource for the variable property set request. |
Definition at line 483 of file VarCheckLib.c.
VAR_CHECK_VARIABLE_PROPERTY * VariablePropertyGetFunction | ( | IN CHAR16 * | Name, |
IN EFI_GUID * | Guid, | ||
IN BOOLEAN | WildcardMatch | ||
) |
Variable property get function.
[in] | Name | Pointer to the variable name. |
[in] | Guid | Pointer to the vendor GUID. |
[in] | WildcardMatch | Try wildcard match or not. |
Definition at line 170 of file VarCheckLib.c.
VAR_CHECK_VARIABLE_PROPERTY * VariablePropertyGetWithWildcardName | ( | IN CHAR16 * | VariableName, |
IN EFI_GUID * | VendorGuid, | ||
IN BOOLEAN | WildcardMatch | ||
) |
Variable property get with wildcard name.
[in] | VariableName | Pointer to variable name. |
[in] | VendorGuid | Pointer to variable vendor GUID. |
[in] | WildcardMatch | Try wildcard match or not. |
Definition at line 126 of file VarCheckLib.c.
UINTN mMaxNumberOfVarCheckHandler = 0 |
Definition at line 31 of file VarCheckLib.c.
UINTN mMaxNumberOfVarCheckVariable = 0 |
Definition at line 41 of file VarCheckLib.c.
UINTN mNumberOfVarCheckHandler = 0 |
Definition at line 30 of file VarCheckLib.c.
UINTN mNumberOfVarCheckVariable = 0 |
Definition at line 40 of file VarCheckLib.c.
VAR_CHECK_SET_VARIABLE_CHECK_HANDLER* mVarCheckHandlerTable = NULL |
Definition at line 32 of file VarCheckLib.c.
VOID*** mVarCheckLibAddressPointer = NULL |
Definition at line 28 of file VarCheckLib.c.
UINTN mVarCheckLibAddressPointerCount = 0 |
Definition at line 26 of file VarCheckLib.c.
UINTN mVarCheckLibAddressPointerMaxCount = 0 |
Definition at line 27 of file VarCheckLib.c.
BOOLEAN mVarCheckLibEndOfDxe = FALSE |
Definition at line 18 of file VarCheckLib.c.
VAR_CHECK_END_OF_DXE_CALLBACK* mVarCheckLibEndOfDxeCallback = NULL |
Definition at line 24 of file VarCheckLib.c.
UINTN mVarCheckLibEndOfDxeCallbackCount = 0 |
Definition at line 22 of file VarCheckLib.c.
UINTN mVarCheckLibEndOfDxeCallbackMaxCount = 0 |
Definition at line 23 of file VarCheckLib.c.
VARIABLE_ENTRY_PROPERTY** mVarCheckVariableTable = NULL |
Definition at line 42 of file VarCheckLib.c.
VARIABLE_ENTRY_PROPERTY mVarCheckVariableWithWildcardName[] |
Definition at line 47 of file VarCheckLib.c.