From 4555cac63974914c52f711acd2f64ac02e0e9df8 Mon Sep 17 00:00:00 2001 From: Liav A Date: Fri, 2 Sep 2022 09:45:30 +0300 Subject: Kernel: Move QEMU shutdown code to the x86 subdirectory QEMU VM shutdown code is really x86 specific, so let's ensure we only use it when compiling a Kernel for x86 machines. --- Kernel/Panic.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'Kernel/Panic.cpp') diff --git a/Kernel/Panic.cpp b/Kernel/Panic.cpp index f2f20accc6..ca36075151 100644 --- a/Kernel/Panic.cpp +++ b/Kernel/Panic.cpp @@ -6,7 +6,9 @@ #include #include -#include +#if ARCH(I386) || ARCH(X86_64) +# include +#endif #include #include #include @@ -16,11 +18,11 @@ namespace Kernel { [[noreturn]] static void __shutdown() { - // Note: This will invoke QEMU Shutdown, but for other platforms (or emulators), - // this has no effect on the system, so we still need to halt afterwards. - // We also try the Bochs/Old QEMU shutdown method, if the first didn't work. - IO::out16(0x604, 0x2000); - IO::out16(0xb004, 0x2000); +#if ARCH(I386) || ARCH(X86_64) + qemu_shutdown(); +#endif + // Note: If we failed to invoke platform shutdown, we need to halt afterwards + // to ensure no further execution on any CPU still happens. Processor::halt(); } -- cgit v1.2.3