diff options
Diffstat (limited to 'EfiGuardDxe/util.h')
-rw-r--r-- | EfiGuardDxe/util.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/EfiGuardDxe/util.h b/EfiGuardDxe/util.h index 00294df..bbdf4d1 100644 --- a/EfiGuardDxe/util.h +++ b/EfiGuardDxe/util.h @@ -8,6 +8,7 @@ #define CR0_WP ((UINTN)0x00010000) // CR0.WP #define CR0_PG ((UINTN)0x80000000) // CR0.PG +#define CR4_CET ((UINTN)0x00800000) // CR4.CET #define CR4_LA57 ((UINTN)0x00001000) // CR4.LA57 #define MSR_EFER ((UINTN)0xC0000080) // Extended Function Enable Register #define EFER_LMA ((UINTN)0x00000400) // Long Mode Active @@ -66,6 +67,45 @@ PrintKernelPatchInfo( ); // +// Disables CET. +// +VOID +EFIAPI +AsmDisableCet( + VOID + ); + +// +// Enables CET. +// +VOID +EFIAPI +AsmEnableCet( + VOID + ); + +// +// Disables write protection if it is currently enabled. +// Returns the current CET and WP states for use when calling EnableWriteProtect(). +// +VOID +EFIAPI +DisableWriteProtect( + OUT BOOLEAN *WpEnabled, + OUT BOOLEAN *CetEnabled + ); + +// +// Enables write protection if it was previously enabled. +// +VOID +EFIAPI +EnableWriteProtect( + IN BOOLEAN WpEnabled, + IN BOOLEAN CetEnabled + ); + +// // Wrapper for CopyMem() that disables write protection prior to copying if needed. // VOID* @@ -108,6 +148,16 @@ StrniCmp( ); // +// Case-insensitive string search. +// +CONST CHAR16* +EFIAPI +StriStr( + IN CONST CHAR16 *String1, + IN CONST CHAR16 *String2 + ); + +// // Waits for a key to be pressed before continuing execution. // Returns FALSE if ESC was pressed to abort, TRUE otherwise. // |