OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcVariableLib.h
Go to the documentation of this file.
1
8#ifndef OC_VARIABLE_LIB_H
9#define OC_VARIABLE_LIB_H
10
11#include <Uefi.h>
15
16#define OPEN_CORE_NVRAM_ROOT_PATH L"NVRAM"
17
18#define OPEN_CORE_NVRAM_FILENAME L"nvram.plist"
19
20#define OPEN_CORE_NVRAM_FALLBACK_FILENAME L"nvram.fallback"
21
22#define OPEN_CORE_NVRAM_USED_FILENAME L"nvram.used"
23
24#define OPEN_CORE_NVRAM_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)
25
26#define OPEN_CORE_NVRAM_NV_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE)
27
28#define OPEN_CORE_INT_NVRAM_ATTR EFI_VARIABLE_BOOTSERVICE_ACCESS
29
37VOID
39 IN BOOLEAN ForceOcWriteFlash
40 );
41
78EFI_STATUS
80 IN CHAR16 *VariableName,
81 IN UINT32 Attributes,
82 IN UINTN DataSize,
83 IN VOID *Data,
84 IN EFI_GUID *VendorGuid OPTIONAL
85 );
86
97EFI_STATUS
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
103 );
104
113BOOLEAN
115 IN OC_NVRAM_LEGACY_ENTRY *SchemaEntry,
116 IN EFI_GUID *VariableGuid OPTIONAL,
117 IN CONST VOID *VariableName,
118 IN OC_STRING_FORMAT StringFormat
119 );
120
132VOID
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,
140 IN BOOLEAN Overwrite
141 );
142
152EFI_LOAD_OPTION *
154 OUT UINTN *OptionSize,
155 IN UINT16 BootOption,
156 IN CONST EFI_GUID *BootGuid
157 );
158
166EFI_STATUS
168 IN BOOLEAN PreserveBoot
169 );
170
182 VOID
183 );
184
193VOID
195 IN OC_FIRMWARE_RUNTIME_PROTOCOL *FwRuntime
196 );
197
201VOID
203 IN BOOLEAN PreserveBoot
204 );
205
214
225typedef
227(EFIAPI *OC_PROCESS_VARIABLE)(
228 IN EFI_GUID *Guid,
229 IN CHAR16 *Name,
230 IN VOID *Context OPTIONAL
231 );
232
239VOID
241 IN OC_PROCESS_VARIABLE ProcessVariable,
242 IN VOID *Context
243 );
244
256EFI_STATUS
257OcGetSip (
258 OUT UINT32 *CsrActiveConfig,
259 OUT UINT32 *Attributes OPTIONAL
260 );
261
270EFI_STATUS
271OcSetSip (
272 IN UINT32 *CsrActiveConfig,
273 IN UINT32 Attributes
274 );
275
285BOOLEAN
287 IN EFI_STATUS GetStatus,
288 IN UINT32 CsrActiveConfig
289 );
290
298EFI_STATUS
300 IN UINT32 CsrActiveConfig
301 );
302
311VOID
313 IN OC_STORAGE_CONTEXT *Storage,
314 IN OC_NVRAM_LEGACY_MAP *LegacyMap,
315 IN BOOLEAN LegacyOverwrite,
316 IN BOOLEAN RequestBootVarRouting
317 );
318
322VOID
323EFIAPI
325 VOID
326 );
327
332VOID
333EFIAPI
335 VOID
336 );
337
341VOID
342EFIAPI
344 VOID
345 );
346
352EFI_STATUS
354 IN BOOLEAN Required
355 );
356
357#endif // OC_VARIABLE_LIB_H
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)
Definition Sip.c:15
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)
Definition Sip.c:58
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)
Definition Shim.c:13
VOID OcRestoreNvramProtection(IN OC_FIRMWARE_RUNTIME_PROTOCOL *FwRuntime)
_OC_PROCESS_VARIABLE_RESULT
@ OcProcessVariableContinue
@ OcProcessVariableRestart
@ OcProcessVariableAbort
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)
Definition Sip.c:73
EFI_STATUS OcSetSip(IN UINT32 *CsrActiveConfig, IN UINT32 Attributes)
Definition Sip.c:39
VOID OcLoadLegacyNvram(IN OC_STORAGE_CONTEXT *Storage, IN OC_NVRAM_LEGACY_MAP *LegacyMap, IN BOOLEAN LegacyOverwrite, IN BOOLEAN RequestBootVarRouting)