8#ifndef OC_VARIABLE_LIB_H
9#define OC_VARIABLE_LIB_H
16#define OPEN_CORE_NVRAM_ROOT_PATH L"NVRAM"
18#define OPEN_CORE_NVRAM_FILENAME L"nvram.plist"
20#define OPEN_CORE_NVRAM_FALLBACK_FILENAME L"nvram.fallback"
22#define OPEN_CORE_NVRAM_USED_FILENAME L"nvram.used"
24#define OPEN_CORE_NVRAM_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)
26#define OPEN_CORE_NVRAM_NV_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE)
28#define OPEN_CORE_INT_NVRAM_ATTR EFI_VARIABLE_BOOTSERVICE_ACCESS
39 IN BOOLEAN ForceOcWriteFlash
80 IN CHAR16 *VariableName,
84 IN EFI_GUID *VendorGuid OPTIONAL
99 IN CONST CHAR8 *AsciiVariableGuid,
100 OUT GUID *VariableGuid,
101 IN OC_NVRAM_LEGACY_MAP *Schema OPTIONAL,
102 OUT OC_NVRAM_LEGACY_ENTRY **SchemaEntry OPTIONAL
115 IN OC_NVRAM_LEGACY_ENTRY *SchemaEntry,
116 IN EFI_GUID *VariableGuid OPTIONAL,
117 IN CONST VOID *VariableName,
134 IN CONST CHAR8 *AsciiVariableName,
135 IN EFI_GUID *VariableGuid,
136 IN UINT32 Attributes,
137 IN UINT32 VariableSize,
138 IN VOID *VariableData,
139 IN OC_NVRAM_LEGACY_ENTRY *SchemaEntry OPTIONAL,
154 OUT UINTN *OptionSize,
155 IN UINT16 BootOption,
156 IN CONST EFI_GUID *BootGuid
168 IN BOOLEAN PreserveBoot
203 IN BOOLEAN PreserveBoot
230 IN VOID *Context OPTIONAL
258 OUT UINT32 *CsrActiveConfig,
259 OUT UINT32 *Attributes OPTIONAL
272 IN UINT32 *CsrActiveConfig,
287 IN EFI_STATUS GetStatus,
288 IN UINT32 CsrActiveConfig
300 IN UINT32 CsrActiveConfig
314 IN OC_NVRAM_LEGACY_MAP *LegacyMap,
315 IN BOOLEAN LegacyOverwrite,
316 IN BOOLEAN RequestBootVarRouting
enum _OC_STRING_FORMAT OC_STRING_FORMAT
enum _OC_PROCESS_VARIABLE_RESULT OC_PROCESS_VARIABLE_RESULT
EFI_STATUS OcSetSystemVariable(IN CHAR16 *VariableName, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data, IN EFI_GUID *VendorGuid OPTIONAL)
BOOLEAN OcVariableIsAllowedBySchemaEntry(IN OC_NVRAM_LEGACY_ENTRY *SchemaEntry, IN EFI_GUID *VariableGuid OPTIONAL, IN CONST VOID *VariableName, IN OC_STRING_FORMAT StringFormat)
EFI_STATUS OcGetSip(OUT UINT32 *CsrActiveConfig, OUT UINT32 *Attributes OPTIONAL)
OC_PROCESS_VARIABLE_RESULT(EFIAPI * OC_PROCESS_VARIABLE)(IN EFI_GUID *Guid, IN CHAR16 *Name, IN VOID *Context OPTIONAL)
VOID OcScanVariables(IN OC_PROCESS_VARIABLE ProcessVariable, IN VOID *Context)
BOOLEAN OcIsSipEnabled(IN EFI_STATUS GetStatus, IN UINT32 CsrActiveConfig)
VOID OcSetNvramVariable(IN CONST CHAR8 *AsciiVariableName, IN EFI_GUID *VariableGuid, IN UINT32 Attributes, IN UINT32 VariableSize, IN VOID *VariableData, IN OC_NVRAM_LEGACY_ENTRY *SchemaEntry OPTIONAL, IN BOOLEAN Overwrite)
VOID EFIAPI OcSaveLegacyNvram(VOID)
VOID EFIAPI OcSwitchToFallbackLegacyNvram(VOID)
EFI_STATUS OcProcessVariableGuid(IN CONST CHAR8 *AsciiVariableGuid, OUT GUID *VariableGuid, IN OC_NVRAM_LEGACY_MAP *Schema OPTIONAL, OUT OC_NVRAM_LEGACY_ENTRY **SchemaEntry OPTIONAL)
VOID EFIAPI OcResetLegacyNvram(VOID)
OC_FIRMWARE_RUNTIME_PROTOCOL * OcDisableNvramProtection(VOID)
EFI_STATUS OcShimRetainProtocol(IN BOOLEAN Required)
VOID OcRestoreNvramProtection(IN OC_FIRMWARE_RUNTIME_PROTOCOL *FwRuntime)
_OC_PROCESS_VARIABLE_RESULT
@ OcProcessVariableContinue
@ OcProcessVariableRestart
VOID OcDeleteVariables(IN BOOLEAN PreserveBoot)
EFI_STATUS OcResetNvram(IN BOOLEAN PreserveBoot)
VOID OcVariableInit(IN BOOLEAN ForceOcWriteFlash)
EFI_LOAD_OPTION * OcGetBootOptionData(OUT UINTN *OptionSize, IN UINT16 BootOption, IN CONST EFI_GUID *BootGuid)
EFI_STATUS OcToggleSip(IN UINT32 CsrActiveConfig)
EFI_STATUS OcSetSip(IN UINT32 *CsrActiveConfig, IN UINT32 Attributes)
VOID OcLoadLegacyNvram(IN OC_STORAGE_CONTEXT *Storage, IN OC_NVRAM_LEGACY_MAP *LegacyMap, IN BOOLEAN LegacyOverwrite, IN BOOLEAN RequestBootVarRouting)