diff options
| author | Amlal <amlal@el-mahrouss-logic.com> | 2024-09-30 07:42:46 +0200 |
|---|---|---|
| committer | Amlal <amlal@el-mahrouss-logic.com> | 2024-09-30 07:42:46 +0200 |
| commit | 5e43fe1160ac03bd0b968e539c6751ba995da8c2 (patch) | |
| tree | 615a2da3d7c715449db706bfe2c59892e9dfc4f1 /dev | |
| parent | c592549da64db4560ffb9c26219d98ffcd3cb5bb (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>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/zka/HALKit/AMD64/CPUID.hxx | 124 | ||||
| -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.cxx | 6 | ||||
| -rw-r--r-- | dev/zka/HALKit/AMD64/Processor.hxx | 14 |
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; |
