CloverBootloader/rEFIt_UEFI/Platform/Nvram.h

121 lines
2.2 KiB
C
Raw Normal View History

/*
* Nvram.h
*
* Created on: 16 Apr 2020
* Author: jief
*/
#ifndef PLATFORM_NVRAM_H_
#define PLATFORM_NVRAM_H_
2020-04-16 11:09:22 +02:00
#define NON_APPLE_SMC_SIGNATURE SIGNATURE_64('S','M','C','H','E','L','P','E')
2020-04-27 11:50:49 +02:00
#include "../cpp_foundation/XString.h"
2020-04-16 11:09:22 +02:00
extern EFI_GUID *gEfiBootDeviceGuid;
extern EFI_DEVICE_PATH_PROTOCOL *gEfiBootDeviceData;
INTN
FindStartupDiskVolume (
REFIT_MENU_SCREEN *MainMenu
);
VOID
*GetNvramVariable(
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
OUT UINT32 *Attributes OPTIONAL,
OUT UINTN *DataSize OPTIONAL
);
XString8 GetNvramVariableAsXString8(
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
OUT UINT32 *Attributes OPTIONAL,
OUT UINTN *DataSize OPTIONAL
);
EFI_STATUS
AddNvramVariable (
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
IN UINT32 Attributes,
IN UINTN DataSize,
IN VOID *Data
);
EFI_STATUS
AddNvramXString8 (
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
IN UINT32 Attributes,
const XString8& s
);
EFI_STATUS
SetNvramVariable (
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
IN UINT32 Attributes,
IN UINTN DataSize,
IN CONST VOID *Data
);
EFI_STATUS
SetNvramXString8 (
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid,
IN UINT32 Attributes,
const XString8& s
);
EFI_STATUS
DeleteNvramVariable (
IN CONST CHAR16 *VariableName,
IN EFI_GUID *VendorGuid
);
VOID
ResetNvram (VOID);
BOOLEAN
IsDeletableVariable (
IN CHAR16 *Name,
IN EFI_GUID *Guid
);
EFI_STATUS
ResetNativeNvram (VOID);
;
EFI_STATUS
GetEfiBootDeviceFromNvram (VOID);
EFI_GUID
*FindGPTPartitionGuidInDevicePath (
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
);
VOID
PutNvramPlistToRtVars (VOID);
VOID
GetSmcKeys(BOOLEAN WriteToSMC);
#if CHECK_SMC
VOID DumpSmcKeys();
#endif
EFI_STATUS
SetStartupDiskVolume (
IN REFIT_VOLUME *Volume,
2020-04-27 11:50:49 +02:00
IN CONST XStringW& LoaderPath
);
VOID
RemoveStartupDiskVolume (VOID);
UINT64
GetEfiTimeInMs (IN EFI_TIME *T);
#endif /* PLATFORM_NVRAM_H_ */