Files
Oram, Isaac W 2cd3be4d6b MinPlatformPkg/Variable*Lib: Build VariableRead and VariableWrite libs
Add the VariableReadLib and VariableWriteLib instances to Components to
ensure build when building MinPlatformPkg.dsc.
Add a NULL library instance that provides the non-functional library
instance for VariableReadLib designed for all phase use.

Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2021-09-16 14:04:46 -07:00

76 lines
3.1 KiB
C

/** @file
NULL implementation of Variable Read Lib
This library provides phase agnostic access to the UEFI Variable Services.
This is done by implementing a wrapper on top of the phase specific mechanism
for reading from UEFI variables. For example, the PEI implementation of this
library uses EFI_PEI_READ_ONLY_VARIABLE2_PPI. The DXE implementation accesses
the UEFI Runtime Services Table, and the SMM implementation uses
EFI_SMM_VARIABLE_PROTOCOL.
Using this library allows code to be written in a generic manner that can be
used in PEI, DXE, or SMM without modification.
@copyright
Copyright 2021 Intel Corporation. <BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Uefi/UefiBaseType.h>
/**
Returns the value of a variable.
@param[in] VariableName A Null-terminated string that is the name of the vendor's
variable.
@param[in] VendorGuid A unique identifier for the vendor.
@param[out] Attributes If not NULL, a pointer to the memory location to return the
attributes bitmask for the variable.
@param[in, out] DataSize On input, the size in bytes of the return Data buffer.
On output the size of data returned in Data.
@param[out] Data The buffer to return the contents of the variable. May be NULL
with a zero DataSize in order to determine the size buffer needed.
@retval EFI_UNSUPPORTED This function is not implemented by this instance of the LibraryClass
**/
EFI_STATUS
EFIAPI
VarLibGetVariable (
IN CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
OUT UINT32 *Attributes, OPTIONAL
IN OUT UINTN *DataSize,
OUT VOID *Data OPTIONAL
)
{
return EFI_UNSUPPORTED;
}
/**
Enumerates the current variable names.
@param[in, out] VariableNameSize The size of the VariableName buffer. The size must be large
enough to fit input string supplied in VariableName buffer.
@param[in, out] VariableName On input, supplies the last VariableName that was returned
by GetNextVariableName(). On output, returns the Nullterminated
string of the current variable.
@param[in, out] VendorGuid On input, supplies the last VendorGuid that was returned by
GetNextVariableName(). On output, returns the
VendorGuid of the current variable.
@retval EFI_UNSUPPORTED This function is not implemented by this instance of the LibraryClass
**/
EFI_STATUS
EFIAPI
VarLibGetNextVariableName (
IN OUT UINTN *VariableNameSize,
IN OUT CHAR16 *VariableName,
IN OUT EFI_GUID *VendorGuid
)
{
return EFI_UNSUPPORTED;
}