95 lines
4.4 KiB
C
95 lines
4.4 KiB
C
//***********************************************************************
|
|
//* *
|
|
//* Copyright (c) 1985-2019, American Megatrends International LLC. *
|
|
//* *
|
|
//* All rights reserved. Subject to AMI licensing agreement. *
|
|
//* *
|
|
//***********************************************************************
|
|
|
|
/** @file
|
|
AmiNvramPeiPlatformHooks.h is generated by AMISDL from AmiNvramPeiPlatformHooksTemplate.h
|
|
This header file defines NVRAM PEI platform hooks.
|
|
AMISDL replaces @@elink commands below with the content of the corresponding eLink.
|
|
|
|
Do not include this header in your source file. It is a private header of the NvramPei module.
|
|
**/
|
|
|
|
/* ************************************************************************************* */
|
|
// DXE variable API hooks
|
|
/* ************************************************************************************* */
|
|
@elink(GetVariableHook,
|
|
"EFI_STATUS @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN))(HOOK_GET_VARIABLE_PARAMS);", "%n" ,"")
|
|
@elink(SetVariableHook,
|
|
"EFI_STATUS @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN))(HOOK_SET_VARIABLE_PARAMS);", "%n" ,"")
|
|
@elink(GetNextVariableNameHook,
|
|
"EFI_STATUS @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN))(HOOK_GET_NEXT_VARIABLE_NAME_PARAMS);", "%n" ,"")
|
|
|
|
@elink(AfterSetVariableHook,
|
|
"EFI_STATUS @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN))(HOOK_AFTER_SET_VARIABLE_PARAMS);", "%n" ,"")
|
|
|
|
HOOK_GET_VARIABLE *GetVariableHookList[] = {
|
|
@elink(GetVariableHook,
|
|
" @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN)),", "%n" ,"%n NULL")
|
|
};
|
|
HOOK_SET_VARIABLE *SetVariableHookList[] = {
|
|
@elink(SetVariableHook,
|
|
" @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN)),", "%n" ,"%n NULL")
|
|
};
|
|
HOOK_GET_NEXT_VARIABLE_NAME *GetNextVarNameHookList[] = {
|
|
@elink(GetNextVariableNameHook,
|
|
" @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN)),", "%n" ,"%n NULL")
|
|
};
|
|
|
|
HOOK_AFTER_SET_VARIABLE *AfterSetVariableHookList[] = {
|
|
@elink(AfterSetVariableHook,
|
|
" @replace(@child,@token(NVRAM_SDL_TEMPLATE_COMMA),@token(NON_EXISTENT_TOKEN)),", "%n" ,"%n NULL")
|
|
};
|
|
|
|
/* ************************************************************************************* */
|
|
// Variables to be preserved.
|
|
/* ************************************************************************************* */
|
|
//These variables are preserved across firmware updates.
|
|
#define NVRAM_PERSISTENT_VARIABLES_LIST @elink(NvramPersistentVariables, "@Child"," " ,"" )
|
|
//When NVRAM runs out of space, NVRAM driver performs NVRAM cleanup procedure.
|
|
//It deletes all the variables except those listed under NvramPreservedVariables and NvramPersistentVariables eLinks.
|
|
#define NVRAM_PRESERVE_VARIABLES_LIST @elink(NvramPreservedVariables, "@Child"," " ,"" )
|
|
|
|
/* ************************************************************************************* */
|
|
// NVRAM Update Hooks
|
|
/* ************************************************************************************* */
|
|
typedef BOOLEAN (NVRAM_STORE_UPDATE_FILTER)(
|
|
CHAR16* VarName, EFI_GUID* VarGuid
|
|
);
|
|
typedef EFI_STATUS (NVRAM_COPY_VARIABLE)(
|
|
CHAR16* VarName, EFI_GUID* VarGuid
|
|
);
|
|
typedef EFI_STATUS (NVRAM_STORE_UPDATE_HANDLER)(
|
|
EFI_GET_VARIABLE GetVariable, NVRAM_COPY_VARIABLE CopyVariable
|
|
);
|
|
@elink(NvramCleanupFilters,
|
|
"BOOLEAN @child(CHAR16* VarName, EFI_GUID* VarGuid);", "%n" ,"")
|
|
@elink(NvramUpdateFilters,
|
|
"BOOLEAN @child(CHAR16* VarName, EFI_GUID* VarGuid);", "%n" ,"")
|
|
@elink(NvramCleanupHandlers,
|
|
"EFI_STATUS @child(EFI_GET_VARIABLE GetVariable, NVRAM_COPY_VARIABLE CopyVariable);", "%n" ,"")
|
|
@elink(NvramUpdateHandlers,
|
|
"EFI_STATUS @child(EFI_GET_VARIABLE GetVariable, NVRAM_COPY_VARIABLE CopyVariable);", "%n" ,"")
|
|
|
|
NVRAM_STORE_UPDATE_FILTER *NvramCleanupFilterFunctions[] = {
|
|
@elink(NvramCleanupFilters,
|
|
" @child,", "%n" ,"%n NULL")
|
|
};
|
|
NVRAM_STORE_UPDATE_FILTER *NvramUpdateFilterFunctions[] = {
|
|
@elink(NvramUpdateFilters,
|
|
" @child,", "%n" ,"%n NULL")
|
|
};
|
|
NVRAM_STORE_UPDATE_HANDLER *NvramCleanupHandlerFunctions[] = {
|
|
@elink(NvramCleanupHandlers,
|
|
" @child,", "%n" ,"%n NULL")
|
|
};
|
|
NVRAM_STORE_UPDATE_HANDLER *NvramUpdateHandlerFunctions[] = {
|
|
@elink(NvramUpdateHandlers,
|
|
" @child,", "%n" ,"%n NULL")
|
|
};
|
|
|