diff options
Diffstat (limited to 'dev/kernel/HALKit/AMD64/HalAPICController.cc')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalAPICController.cc | 62 |
1 files changed, 28 insertions, 34 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalAPICController.cc b/dev/kernel/HALKit/AMD64/HalAPICController.cc index 5a020014..758e2f52 100644 --- a/dev/kernel/HALKit/AMD64/HalAPICController.cc +++ b/dev/kernel/HALKit/AMD64/HalAPICController.cc @@ -1,44 +1,38 @@ /* ------------------------------------------- - Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. + Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved. ------------------------------------------- */ -#include <modules/ACPI/ACPIFactoryInterface.h> #include <HALKit/AMD64/Processor.h> +#include <modules/ACPI/ACPIFactoryInterface.h> #define cIOAPICRegVal (4) #define cIOAPICRegReg (0) -namespace Kernel::HAL -{ - APICController::APICController(VoidPtr base) - : fApic(base) - { - } - - /// @brief Read from APIC controller. - /// @param reg register. - UInt32 APICController::Read(UInt32 reg) noexcept - { - MUST_PASS(this->fApic); - - UInt32 volatile* io_apic = (UInt32 volatile*)this->fApic; - io_apic[cIOAPICRegReg] = (reg & 0xFF); - - return io_apic[cIOAPICRegVal]; - } - - /// @brief Write to APIC controller. - /// @param reg register. - /// @param value value. - Void APICController::Write(UInt32 reg, UInt32 value) noexcept - { - MUST_PASS(this->fApic); - - UInt32 volatile* io_apic = (UInt32 volatile*)this->fApic; - - io_apic[cIOAPICRegReg] = (reg & 0xFF); - io_apic[cIOAPICRegVal] = value; - } -} // namespace Kernel::HAL +namespace Kernel::HAL { +APICController::APICController(VoidPtr base) : fApic(base) {} + +/// @brief Read from APIC controller. +/// @param reg register. +UInt32 APICController::Read(UInt32 reg) noexcept { + MUST_PASS(this->fApic); + + UInt32 volatile* io_apic = (UInt32 volatile*) this->fApic; + io_apic[cIOAPICRegReg] = (reg & 0xFF); + + return io_apic[cIOAPICRegVal]; +} + +/// @brief Write to APIC controller. +/// @param reg register. +/// @param value value. +Void APICController::Write(UInt32 reg, UInt32 value) noexcept { + MUST_PASS(this->fApic); + + UInt32 volatile* io_apic = (UInt32 volatile*) this->fApic; + + io_apic[cIOAPICRegReg] = (reg & 0xFF); + io_apic[cIOAPICRegVal] = value; +} +} // namespace Kernel::HAL |
