Ryzen/AmiModulePkg/NVRAM/AmiNvramDxePlatformHooksTemplate.h
2022-12-23 15:14:44 +08:00

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")
};