summaryrefslogtreecommitdiff
path: root/Kernel/Arch/x86
diff options
context:
space:
mode:
authorTom <tomut@yahoo.com>2021-09-03 21:25:55 -0600
committerAndreas Kling <kling@serenityos.org>2021-09-04 22:22:58 +0200
commit123087e23587af7584930a330cbf66278f8bdf42 (patch)
tree47a11438529fddacedbe7b41b3598663d0357008 /Kernel/Arch/x86
parentd14d68c46283c5890b7d56e89ea0833f22ed6a49 (diff)
downloadserenity-123087e23587af7584930a330cbf66278f8bdf42.zip
Kernel: Allow specifying ecx with CPUID
Some CPUID functions (e.g. 0xb) require input values in ecx.
Diffstat (limited to 'Kernel/Arch/x86')
-rw-r--r--Kernel/Arch/x86/CPUID.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/Kernel/Arch/x86/CPUID.h b/Kernel/Arch/x86/CPUID.h
index af05ee4c58..324d204469 100644
--- a/Kernel/Arch/x86/CPUID.h
+++ b/Kernel/Arch/x86/CPUID.h
@@ -12,9 +12,9 @@ namespace Kernel {
class CPUID {
public:
- explicit CPUID(u32 function) { asm volatile("cpuid"
- : "=a"(m_eax), "=b"(m_ebx), "=c"(m_ecx), "=d"(m_edx)
- : "a"(function), "c"(0)); }
+ explicit CPUID(u32 function, u32 ecx = 0) { asm volatile("cpuid"
+ : "=a"(m_eax), "=b"(m_ebx), "=c"(m_ecx), "=d"(m_edx)
+ : "a"(function), "c"(ecx)); }
u32 eax() const { return m_eax; }
u32 ebx() const { return m_ebx; }
u32 ecx() const { return m_ecx; }