From 64c57ea3d04afb1469d190cee97619fbc479c050 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 10 Jan 2023 21:28:59 +0200 Subject: [PATCH] Kernel: Remove obsole CPUID::IsAvailable This is now a harware requirement that is verified already in boot.S --- kernel/arch/i386/APIC.cpp | 6 ------ kernel/arch/i386/CPUID.cpp | 21 --------------------- kernel/include/kernel/CPUID.h | 1 - kernel/kernel/Shell.cpp | 10 ---------- kernel/kernel/kernel.cpp | 1 + 5 files changed, 1 insertion(+), 38 deletions(-) diff --git a/kernel/arch/i386/APIC.cpp b/kernel/arch/i386/APIC.cpp index 4dca75a4..4c59f4a8 100644 --- a/kernel/arch/i386/APIC.cpp +++ b/kernel/arch/i386/APIC.cpp @@ -341,12 +341,6 @@ namespace APIC static bool InitializeAPIC() { - if (!CPUID::IsAvailable()) - { - kprintln("CPUID not available"); - return false; - } - uint32_t ecx, edx; CPUID::GetFeatures(ecx, edx); if (!(edx & CPUID::Features::EDX_APIC)) diff --git a/kernel/arch/i386/CPUID.cpp b/kernel/arch/i386/CPUID.cpp index 02075eff..dadde7e8 100644 --- a/kernel/arch/i386/CPUID.cpp +++ b/kernel/arch/i386/CPUID.cpp @@ -12,24 +12,6 @@ namespace CPUID asm volatile ("cpuid": "=a"(out[0]), "=b"(out[0]), "=d"(out[1]), "=c"(out[2]) : "a"(code)); } - bool IsAvailable() - { - uint32_t res; - asm volatile( - "pushfl;" - "pushfl;" - "popl %0;" - "xorl %1, %0;" - "pushl %0;" - "popfl;" - "pushfl;" - "popl %0;" - "popfl;" - : "=r"(res) - : "i" (0x00200000)); - return res != 0; - } - const char* GetVendor() { static char vendor[13] {}; @@ -48,9 +30,6 @@ namespace CPUID bool Is64Bit() { - if (!IsAvailable()) - return false; - uint32_t buffer[4] {}; get_cpuid(0x80000000, buffer); if (buffer[0] < 0x80000001) diff --git a/kernel/include/kernel/CPUID.h b/kernel/include/kernel/CPUID.h index 6f9cf776..0e9445ac 100644 --- a/kernel/include/kernel/CPUID.h +++ b/kernel/include/kernel/CPUID.h @@ -148,7 +148,6 @@ namespace CPUID } } - bool IsAvailable(); const char* GetVendor(); void GetFeatures(uint32_t& ecx, uint32_t& edx); bool Is64Bit(); diff --git a/kernel/kernel/Shell.cpp b/kernel/kernel/Shell.cpp index 839d5558..28418f27 100644 --- a/kernel/kernel/Shell.cpp +++ b/kernel/kernel/Shell.cpp @@ -125,11 +125,6 @@ namespace Kernel TTY_PRINTLN("'cpuinfo' does not support command line arguments"); return; } - if (!CPUID::IsAvailable()) - { - TTY_PRINTLN("'cpuid' instruction not available"); - return; - } uint32_t ecx, edx; auto vendor = CPUID::GetVendor(); @@ -154,11 +149,6 @@ namespace Kernel TTY_PRINTLN("'random' does not support command line arguments"); return; } - if (!CPUID::IsAvailable()) - { - TTY_PRINTLN("'cpuid' instruction not available"); - return; - } uint32_t ecx, edx; CPUID::GetFeatures(ecx, edx); if (!(ecx & CPUID::Features::ECX_RDRND)) diff --git a/kernel/kernel/kernel.cpp b/kernel/kernel/kernel.cpp index 6ef10737..ddc479f2 100644 --- a/kernel/kernel/kernel.cpp +++ b/kernel/kernel/kernel.cpp @@ -1,3 +1,4 @@ +#include #include #include #include