From d7a68eec071117a8a459f487f06eb6be4b89757e Mon Sep 17 00:00:00 2001 From: Justin Miller Date: Wed, 11 Oct 2023 08:00:13 -0700 Subject: [PATCH] [CODEREVIEW] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hermès BÉLUSCA - MAÏTO --- boot/freeldr/freeldr/arch/uefi/amd64/uefiasm.S | 17 ++++++----------- boot/freeldr/freeldr/arch/uefi/i386/uefiasm.S | 7 +++++++ boot/freeldr/freeldr/arch/uefi/uefildr.c | 2 +- boot/freeldr/freeldr/arch/uefi/uefimem.c | 2 -- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/boot/freeldr/freeldr/arch/uefi/amd64/uefiasm.S b/boot/freeldr/freeldr/arch/uefi/amd64/uefiasm.S index 9db8106e2b945..c4cd78d1e0b3c 100644 --- a/boot/freeldr/freeldr/arch/uefi/amd64/uefiasm.S +++ b/boot/freeldr/freeldr/arch/uefi/amd64/uefiasm.S @@ -25,7 +25,6 @@ _exituefi: push rdi push rbx - /* Save the old stack */ mov rbx, rsp @@ -46,6 +45,12 @@ _exituefi: pop rsi pop rbp +#ifdef _USE_ML + lgdt fword ptr [_gdtptr] +#else + lgdt cs:[_gdtptr][rip] /* GAS isn't my friend - avoid letting it generate absolute addressing */ +#endif + /* All done */ ret @@ -58,16 +63,6 @@ _changestack: call ExecuteLoaderCleanly[rip] ret -// void _changegdt(VOID) -PUBLIC _changegdt -_changegdt: -#ifdef _USE_ML - lgdt fword ptr [_gdtptr] -#else - lgdt cs:[_gdtptr][rip] /* GAS isn't my friend - avoid letting it generate absolute addressing */ -#endif - ret - .align 8 gdt: .word HEX(0000), HEX(0000), HEX(0000), HEX(0000) /* 00: NULL descriptor */ diff --git a/boot/freeldr/freeldr/arch/uefi/i386/uefiasm.S b/boot/freeldr/freeldr/arch/uefi/i386/uefiasm.S index 37f16fc0c7270..0e368e19536d9 100644 --- a/boot/freeldr/freeldr/arch/uefi/i386/uefiasm.S +++ b/boot/freeldr/freeldr/arch/uefi/i386/uefiasm.S @@ -47,6 +47,13 @@ __exituefi: pop esi pop ebp +#ifdef _USE_ML + lidt fword ptr ds:[_i386idtptr] + lgdt fword ptr [_gdtptr] +#else + lgdt cs:[_gdtptr] + lidt _i386idtptr +#endif /* All done */ ret diff --git a/boot/freeldr/freeldr/arch/uefi/uefildr.c b/boot/freeldr/freeldr/arch/uefi/uefildr.c index 06905c980bc0b..fa989a19541ac 100644 --- a/boot/freeldr/freeldr/arch/uefi/uefildr.c +++ b/boot/freeldr/freeldr/arch/uefi/uefildr.c @@ -81,7 +81,7 @@ VOID __cdecl Reboot(VOID) WARN("Stopping freeloader something has gone wrong - Freezing"); for(;;) { - + NOTHING; } } #endif diff --git a/boot/freeldr/freeldr/arch/uefi/uefimem.c b/boot/freeldr/freeldr/arch/uefi/uefimem.c index e5f06c0a6d639..df379c97c1a4e 100644 --- a/boot/freeldr/freeldr/arch/uefi/uefimem.c +++ b/boot/freeldr/freeldr/arch/uefi/uefimem.c @@ -40,7 +40,6 @@ EFI_HANDLE PublicBootHandle; PVOID ExitStack; PVOID EndofExitStack; -void _changegdt(VOID); void _exituefi(VOID); /* FUNCTIONS *****************************************************************/ @@ -327,5 +326,4 @@ VOID UefiPrepareForReactOS(VOID) { _exituefi(); - _changegdt(); }