11#include <Library/BaseLib.h>
14#include <Library/UefiBootServicesTableLib.h>
15#include <Library/UefiRuntimeServicesTableLib.h>
19#define OC_MENU_RESET_NVRAM_ID "reset_nvram"
20#define OC_MENU_RESET_NVRAM_ENTRY "Reset NVRAM"
34 if (Context->OcAudio != NULL) {
35 Context->OcAudio->StopPlayback (Context->OcAudio, TRUE);
64 EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
71 return EFI_DEVICE_ERROR;
96 IN CONST EFI_HANDLE Device OPTIONAL,
104 if (Device != NULL) {
105 return EFI_NOT_FOUND;
136 if (HasOption && HasCommand && HasKeyP && HasKeyR) {
137 DEBUG ((DEBUG_INFO,
"BEP: CMD+OPT+P+R causes NVRAM reset\n"));
156 IN EFI_HANDLE ImageHandle,
157 IN EFI_SYSTEM_TABLE *SystemTable
161 EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
164 Status =
gBS->HandleProtocol (
167 (VOID **)&LoadedImage
169 if (EFI_ERROR (Status)) {
174 if (!EFI_ERROR (Status)) {
180 ASSERT (ParsedLoadOptions == NULL);
182 if (Status != EFI_NOT_FOUND) {
188 DEBUG ((DEBUG_WARN,
"BEP: ResetNvram %s is ignored due to %s!\n", L
"--preserve-boot", L
"--apple"));
191 Status =
gBS->InstallMultipleProtocolInterfaces (
#define APPLE_MODIFIER_RIGHT_OPTION
APPLE_HID_USAGE APPLE_KEY_CODE
UINT16 APPLE_MODIFIER_MAP
#define APPLE_MODIFIER_LEFT_COMMAND
#define APPLE_MODIFIER_RIGHT_COMMAND
#define APPLE_MODIFIER_LEFT_OPTION
#define ARRAY_SIZE(Array)
EFI_GUID gAppleBootVariableGuid
#define APPLE_RESET_NVRAM_VARIABLE_NAME
BOOLEAN OcKeyMapHasKey(IN CONST APPLE_KEY_CODE *Keys, IN UINTN NumKeys, IN CONST APPLE_KEY_CODE KeyCode)
#define OC_VOICE_OVER_AUDIO_FILE_RESET_NVRAM
#define OC_VOICE_OVER_AUDIO_BASE_TYPE_OPEN_CORE
EFI_GUID gOcBootEntryProtocolGuid
#define OC_BOOT_ENTRY_PROTOCOL_REVISION
EFI_STATUS OcParseLoadOptions(IN CONST EFI_LOADED_IMAGE_PROTOCOL *LoadedImage, OUT OC_FLEX_ARRAY **ParsedVars)
BOOLEAN OcHasParsedVar(IN CONST OC_FLEX_ARRAY *ParsedVars, IN CONST VOID *Name, IN CONST OC_STRING_FORMAT StringFormat)
#define OC_FLAVOUR_RESET_NVRAM
VOID DirectResetCold(VOID)
VOID OcFlexArrayFree(IN OUT OC_FLEX_ARRAY **FlexArray)
VOID EFIAPI OcResetLegacyNvram(VOID)
EFI_STATUS OcResetNvram(IN BOOLEAN PreserveBoot)
#define OC_MENU_RESET_NVRAM_ID
EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
STATIC VOID WaitForChime(IN OUT OC_PICKER_CONTEXT *Context)
STATIC OC_PICKER_ENTRY mResetNvramBootEntries[1]
STATIC CHAR8 *EFIAPI ResetNvramCheckHotKeys(IN OUT OC_PICKER_CONTEXT *Context, IN UINTN NumKeys, IN APPLE_MODIFIER_MAP Modifiers, IN APPLE_KEY_CODE *Keys)
STATIC BOOLEAN mPreserveBoot
STATIC OC_BOOT_ENTRY_PROTOCOL mResetNvramBootEntryProtocol
STATIC EFI_STATUS SystemActionResetNvram(IN OUT OC_PICKER_CONTEXT *PickerContext)
#define OC_MENU_RESET_NVRAM_ENTRY
STATIC EFI_STATUS EFIAPI ResetNvramGetBootEntries(IN OUT OC_PICKER_CONTEXT *PickerContext, IN CONST EFI_HANDLE Device OPTIONAL, OUT OC_PICKER_ENTRY **Entries, OUT UINTN *NumEntries)
EFI_RUNTIME_SERVICES * gRT
EFI_GUID gEfiLoadedImageProtocolGuid