summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-09-30 07:42:46 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-09-30 07:42:46 +0200
commit5e43fe1160ac03bd0b968e539c6751ba995da8c2 (patch)
tree615a2da3d7c715449db706bfe2c59892e9dfc4f1
parentc592549da64db4560ffb9c26219d98ffcd3cb5bb (diff)
IMP: Refactored AMD64 HAL's CPUID.hxx, APICController.cxx and BMPMgr.cxx
- Processor.hxx: Moved macros at end of file to begin of file. Signed-off-by: Amlal <amlal@el-mahrouss-logic.com>
-rw-r--r--dev/zka/HALKit/AMD64/CPUID.hxx124
-rw-r--r--dev/zka/HALKit/AMD64/HalAPICController.cxx (renamed from dev/zka/HALKit/AMD64/HalAPICMgr.cxx)15
-rw-r--r--dev/zka/HALKit/AMD64/HalBMPMgr.cxx6
-rw-r--r--dev/zka/HALKit/AMD64/Processor.hxx14
4 files changed, 83 insertions, 76 deletions
diff --git a/dev/zka/HALKit/AMD64/CPUID.hxx b/dev/zka/HALKit/AMD64/CPUID.hxx
index ae6e42c5..966996fd 100644
--- a/dev/zka/HALKit/AMD64/CPUID.hxx
+++ b/dev/zka/HALKit/AMD64/CPUID.hxx
@@ -15,67 +15,67 @@
enum
{
- eCPU_FEATURE_ECX_SSE3 = 1 << 0,
- eCPU_FEATURE_ECX_PCLMUL = 1 << 1,
- eCPU_FEATURE_ECX_DTES64 = 1 << 2,
- eCPU_FEATURE_ECX_MONITOR = 1 << 3,
- eCPU_FEATURE_ECX_DS_CPL = 1 << 4,
- eCPU_FEATURE_ECX_VMX = 1 << 5,
- eCPU_FEATURE_ECX_SMX = 1 << 6,
- eCPU_FEATURE_ECX_EST = 1 << 7,
- eCPU_FEATURE_ECX_TM2 = 1 << 8,
- eCPU_FEATURE_ECX_SSSE3 = 1 << 9,
- eCPU_FEATURE_ECX_CID = 1 << 10,
- eCPU_FEATURE_ECX_SDBG = 1 << 11,
- eCPU_FEATURE_ECX_FMA = 1 << 12,
- eCPU_FEATURE_ECX_CX16 = 1 << 13,
- eCPU_FEATURE_ECX_XTPR = 1 << 14,
- eCPU_FEATURE_ECX_PDCM = 1 << 15,
- eCPU_FEATURE_ECX_PCID = 1 << 17,
- eCPU_FEATURE_ECX_DCA = 1 << 18,
- eCPU_FEATURE_ECX_SSE4_1 = 1 << 19,
- eCPU_FEATURE_ECX_SSE4_2 = 1 << 20,
- eCPU_FEATURE_ECX_X2APIC = 1 << 21,
- eCPU_FEATURE_ECX_MOVBE = 1 << 22,
- eCPU_FEATURE_ECX_POP3C = 1 << 23,
- eCPU_FEATURE_ECX_TSC = 1 << 24,
- eCPU_FEATURE_ECX_AES = 1 << 25,
- eCPU_FEATURE_ECX_XSAVE = 1 << 26,
- eCPU_FEATURE_ECX_OSXSAVE = 1 << 27,
- eCPU_FEATURE_ECX_AVX = 1 << 28,
- eCPU_FEATURE_ECX_F16C = 1 << 29,
- eCPU_FEATURE_ECX_RDRAND = 1 << 30,
- eCPU_FEATURE_ECX_HYPERVISOR = 1 << 31,
- eCPU_FEATURE_EDX_FPU = 1 << 0,
- eCPU_FEATURE_EDX_VME = 1 << 1,
- eCPU_FEATURE_EDX_DE = 1 << 2,
- eCPU_FEATURE_EDX_PSE = 1 << 3,
- eCPU_FEATURE_EDX_TSC = 1 << 4,
- eCPU_FEATURE_EDX_MSR = 1 << 5,
- eCPU_FEATURE_EDX_PAE = 1 << 6,
- eCPU_FEATURE_EDX_MCE = 1 << 7,
- eCPU_FEATURE_EDX_CX8 = 1 << 8,
- eCPU_FEATURE_EDX_APIC = 1 << 9,
- eCPU_FEATURE_EDX_SEP = 1 << 11,
- eCPU_FEATURE_EDX_MTRR = 1 << 12,
- eCPU_FEATURE_EDX_PGE = 1 << 13,
- eCPU_FEATURE_EDX_MCA = 1 << 14,
- eCPU_FEATURE_EDX_CMOV = 1 << 15,
- eCPU_FEATURE_EDX_PAT = 1 << 16,
- eCPU_FEATURE_EDX_PSE36 = 1 << 17,
- eCPU_FEATURE_EDX_PSN = 1 << 18,
- eCPU_FEATURE_EDX_CLFLUSH = 1 << 19,
- eCPU_FEATURE_EDX_DS = 1 << 21,
- eCPU_FEATURE_EDX_ACPI = 1 << 22,
- eCPU_FEATURE_EDX_MMX = 1 << 23,
- eCPU_FEATURE_EDX_FXSR = 1 << 24,
- eCPU_FEATURE_EDX_SSE = 1 << 25,
- eCPU_FEATURE_EDX_SSE2 = 1 << 26,
- eCPU_FEATURE_EDX_SS = 1 << 27,
- eCPU_FEATURE_EDX_HTT = 1 << 28,
- eCPU_FEATURE_EDX_TM = 1 << 29,
- eCPU_FEATURE_EDX_IA64 = 1 << 30,
- eCPU_FEATURE_EDX_PBE = 1 << 31
+ eCPUFeatureSSE3 = 1 << 0,
+ eCPUFeaturePCLMUL = 1 << 1,
+ eCPUFeatureDTES64 = 1 << 2,
+ eCPUFeatureMONITOR = 1 << 3,
+ eCPUFeatureDS_CPL = 1 << 4,
+ eCPUFeatureVMX = 1 << 5,
+ eCPUFeatureSMX = 1 << 6,
+ eCPUFeatureEST = 1 << 7,
+ eCPUFeatureTM2 = 1 << 8,
+ eCPUFeatureSSSE3 = 1 << 9,
+ eCPUFeatureCID = 1 << 10,
+ eCPUFeatureSDBG = 1 << 11,
+ eCPUFeatureFMA = 1 << 12,
+ eCPUFeatureCX16 = 1 << 13,
+ eCPUFeatureXTPR = 1 << 14,
+ eCPUFeaturePDCM = 1 << 15,
+ eCPUFeaturePCID = 1 << 17,
+ eCPUFeatureDCA = 1 << 18,
+ eCPUFeatureSSE4_1 = 1 << 19,
+ eCPUFeatureSSE4_2 = 1 << 20,
+ eCPUFeatureX2APIC = 1 << 21,
+ eCPUFeatureMOVBE = 1 << 22,
+ eCPUFeaturePOP3C = 1 << 23,
+ eCPUFeatureECXTSC = 1 << 24,
+ eCPUFeatureAES = 1 << 25,
+ eCPUFeatureXSAVE = 1 << 26,
+ eCPUFeatureOSXSAVE = 1 << 27,
+ eCPUFeatureAVX = 1 << 28,
+ eCPUFeatureF16C = 1 << 29,
+ eCPUFeatureRDRAND = 1 << 30,
+ eCPUFeatureHYPERVISOR = 1 << 31,
+ eCPUFeatureFPU = 1 << 0,
+ eCPUFeatureVME = 1 << 1,
+ eCPUFeatureDE = 1 << 2,
+ eCPUFeaturePSE = 1 << 3,
+ eCPUFeatureEDXTSC = 1 << 4,
+ eCPUFeatureMSR = 1 << 5,
+ eCPUFeaturePAE = 1 << 6,
+ eCPUFeatureMCE = 1 << 7,
+ eCPUFeatureCX8 = 1 << 8,
+ eCPUFeatureAPIC = 1 << 9,
+ eCPUFeatureSEP = 1 << 11,
+ eCPUFeatureMTRR = 1 << 12,
+ eCPUFeaturePGE = 1 << 13,
+ eCPUFeatureMCA = 1 << 14,
+ eCPUFeatureCMOV = 1 << 15,
+ eCPUFeaturePAT = 1 << 16,
+ eCPUFeaturePSE36 = 1 << 17,
+ eCPUFeaturePSN = 1 << 18,
+ eCPUFeatureCLFLUSH = 1 << 19,
+ eCPUFeatureDS = 1 << 21,
+ eCPUFeatureACPI = 1 << 22,
+ eCPUFeatureMMX = 1 << 23,
+ eCPUFeatureFXSR = 1 << 24,
+ eCPUFeatureSSE = 1 << 25,
+ eCPUFeatureSSE2 = 1 << 26,
+ eCPUFeatureSS = 1 << 27,
+ eCPUFeatureHTT = 1 << 28,
+ eCPUFeatureTM = 1 << 29,
+ eCPUFeatureIA64 = 1 << 30,
+ eCPUFeaturePBE = 1 << 31
};
-typedef long long int hal_cpu_feature_type; \ No newline at end of file
+typedef __INT64_TYPE__ hal_cpu_feature_type;
diff --git a/dev/zka/HALKit/AMD64/HalAPICMgr.cxx b/dev/zka/HALKit/AMD64/HalAPICController.cxx
index caa2ce0b..5964c432 100644
--- a/dev/zka/HALKit/AMD64/HalAPICMgr.cxx
+++ b/dev/zka/HALKit/AMD64/HalAPICController.cxx
@@ -7,6 +7,9 @@
#include <Modules/ACPI/ACPIFactoryInterface.hxx>
#include <HALKit/AMD64/Processor.hxx>
+#define cIOAPICRegVal (4)
+#define cIOAPICRegReg (0)
+
namespace Kernel::HAL
{
/// @brief Read from APIC controller.
@@ -15,10 +18,10 @@ namespace Kernel::HAL
{
MUST_PASS(this->fApic);
- UInt32 volatile* ioapic = (UInt32 volatile*)this->fApic;
- ioapic[0] = (reg & 0xff);
+ UInt32 volatile* io_apic = (UInt32 volatile*)this->fApic;
+ io_apic[cIOAPICRegReg] = (reg & 0xFF);
- return ioapic[4];
+ return io_apic[cIOAPICRegVal];
}
/// @brief Write to APIC controller.
@@ -28,9 +31,9 @@ namespace Kernel::HAL
{
MUST_PASS(this->fApic);
- UInt32 volatile* ioapic = (UInt32 volatile*)this->fApic;
+ UInt32 volatile* io_apic = (UInt32 volatile*)this->fApic;
- ioapic[0] = (reg & 0xFF);
- ioapic[4] = value;
+ io_apic[cIOAPICRegReg] = (reg & 0xFF);
+ io_apic[cIOAPICRegVal] = value;
}
} // namespace Kernel::HAL
diff --git a/dev/zka/HALKit/AMD64/HalBMPMgr.cxx b/dev/zka/HALKit/AMD64/HalBMPMgr.cxx
index b22e96ec..e577bd7e 100644
--- a/dev/zka/HALKit/AMD64/HalBMPMgr.cxx
+++ b/dev/zka/HALKit/AMD64/HalBMPMgr.cxx
@@ -17,9 +17,9 @@
#include <NewKit/Defines.hxx>
#include <NewKit/Stop.hxx>
-#define cBitMapMagIdx 0
-#define cBitMapSizeIdx 1
-#define cBitMapUsedIdx 2
+#define cBitMapMagIdx (0)
+#define cBitMapSizeIdx (1)
+#define cBitMapUsedIdx (2)
namespace Kernel
{
diff --git a/dev/zka/HALKit/AMD64/Processor.hxx b/dev/zka/HALKit/AMD64/Processor.hxx
index e35e1073..25ea105d 100644
--- a/dev/zka/HALKit/AMD64/Processor.hxx
+++ b/dev/zka/HALKit/AMD64/Processor.hxx
@@ -21,9 +21,17 @@
EXTERN_C
{
-#include <cpuid.h>
+# include <cpuid.h>
}
+#include <HALKit/AMD64/CPUID.hxx>
+
+/// @brief Maximum entries of the interrupt descriptor table.
+#define kKernelIdtSize (0x100)
+
+/// @brief interrupt for system call.
+#define kKernelInterruptId (0x32)
+
#define IsActiveLow(FLG) (FLG & 2)
#define IsLevelTriggered(FLG) (FLG & 8)
@@ -291,9 +299,5 @@ EXTERN_C Kernel::Void idt_handle_pf(Kernel::UIntPtr rsp);
EXTERN_C Kernel::Void hal_load_idt(Kernel::HAL::Register64 ptr);
EXTERN_C Kernel::Void hal_load_gdt(Kernel::HAL::RegisterGDT ptr);
-/// @brief Maximum size of the IDT.
-#define kKernelIdtSize (0x100)
-#define kKernelInterruptId 0x32
-
inline Kernel::VoidPtr kKernelBitMpStart = nullptr;
inline Kernel::UIntPtr kKernelBitMpSize = 0UL;