diff --git a/include/cpu/x86/hypervisor.hpp b/include/cpu/x86/hypervisor.hpp
new file mode 100644
index 0000000..83db73f
--- /dev/null
+++ b/include/cpu/x86/hypervisor.hpp
@@ -0,0 +1,80 @@
+/*
+ This file is part of Fennix Kernel.
+
+ Fennix Kernel is free software: you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of
+ the License, or (at your option) any later version.
+
+ Fennix Kernel is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Fennix Kernel. If not, see .
+*/
+
+#ifndef __FENNIX_KERNEL_CPU_x86_CPUID_HYPERVISOR_H__
+#define __FENNIX_KERNEL_CPU_x86_CPUID_HYPERVISOR_H__
+
+#include
+
+namespace CPU
+{
+ namespace x86
+ {
+ /** @brief EXPERIMENTAL IMPLEMENTATION */
+ namespace Hypervisor
+ {
+ /** @brief Get CPU hypervisor information */
+ struct CPUID0x40000000
+ {
+ union
+ {
+ struct
+ {
+ /**
+ * @brief Maximum input value for hypervisor CPUID information.
+ * @note Can be from 0x40000001 to 0x400000FF
+ */
+ uint64_t MaximumInputValue : 32;
+ };
+ uint64_t raw;
+ } EAX;
+
+ union
+ {
+ struct
+ {
+ /** @brief Hypervisor vendor signature */
+ char Hypervisor[4];
+ };
+ uint64_t raw;
+ } EBX;
+
+ union
+ {
+ struct
+ {
+ /** @brief Hypervisor vendor signature */
+ char Hypervisor[4];
+ };
+ uint64_t raw;
+ } ECX;
+
+ union
+ {
+ struct
+ {
+ /** @brief Hypervisor vendor signature */
+ char Hypervisor[4];
+ };
+ uint64_t raw;
+ } EDX;
+ };
+ }
+ }
+}
+
+#endif // !__FENNIX_KERNEL_CPU_x86_CPUID_HYPERVISOR_H__
diff --git a/include/cpu/x86/x64/cpuid_intel.hpp b/include/cpu/x86/x64/cpuid_intel.hpp
index d31eebd..0486264 100644
--- a/include/cpu/x86/x64/cpuid_intel.hpp
+++ b/include/cpu/x86/x64/cpuid_intel.hpp
@@ -879,53 +879,6 @@ namespace CPU
} EDX;
};
- /** @brief Get CPU hypervisor information */
- struct CPUID0x40000000
- {
- union
- {
- struct
- {
- /**
- * @brief Maximum input value for hypervisor CPUID information.
- * @note Can be from 0x40000001 to 0x400000FF
- */
- uint64_t MaximumInputValue : 32;
- };
- uint64_t raw;
- } EAX;
-
- union
- {
- struct
- {
- /** @brief Hypervisor vendor signature */
- char Hypervisor[4];
- };
- uint64_t raw;
- } EBX;
-
- union
- {
- struct
- {
- /** @brief Hypervisor vendor signature */
- char Hypervisor[4];
- };
- uint64_t raw;
- } ECX;
-
- union
- {
- struct
- {
- /** @brief Hypervisor vendor signature */
- char Hypervisor[4];
- };
- uint64_t raw;
- } EDX;
- };
-
/** @brief Extended CPU information */
struct CPUID0x80000000
{