diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-05-08 12:32:41 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-05-08 12:32:41 +0200 |
| commit | 09dd11ddf800898c00ecb04a65fb5cd10fb481fa (patch) | |
| tree | eda0b4e23d6a71da7de3a78f0bb76ec3201dd2f9 /Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | |
| parent | ca83108fd138cc0398f900e6a6c0a53ad51aee31 (diff) | |
MHR-23: :boom: changes, reworked project tree.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp')
| -rw-r--r-- | Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp deleted file mode 100644 index 13fcb03c..00000000 --- a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - -------------------------------------------- */ - -#include <Builtins/ACPI/ACPIFactoryInterface.hxx> -#include <HALKit/AMD64/Processor.hpp> -#include <NewKit/KernelCheck.hpp> - -/////////////////////////////////////////////////////////////////////////////////////// - -//! NOTE: fGSI stands 'Field Global System Interrupt' - -/////////////////////////////////////////////////////////////////////////////////////// - -namespace NewOS::HAL -{ - constexpr Int32 kThreadAPIC = 0; - constexpr Int32 kThreadLAPIC = 1; - constexpr Int32 kThreadIOAPIC = 2; - constexpr Int32 kThreadAPIC64 = 3; - constexpr Int32 kThreadBoot = 4; - - /* - * - * this is used to store info about the current running thread - * we use this struct to determine if we can use it, or mark it as used or on - * sleep. - * - */ - - struct ProcessorInfoAMD64 final - { - Int32 ThreadType; - UIntPtr JumpAddress; - - struct - { - UInt32 Code; - UInt32 Data; - UInt32 BSS; - } Selector; - }; - - STATIC voidPtr kApicMadt = nullptr; - STATIC const char* kApicSignature = "APIC"; - - /// @brief Multiple APIC descriptor table. - struct MadtType final : public SDT - { - struct MadtAddress final - { - UInt32 fFlags; // 1 = Dual Legacy PICs installed - UInt32 fPhysicalAddress; - - Char fType; - Char fRecLen; // record length - } Madt[]; - }; - - struct MadtProcessorLocalApic final - { - Char fProcessorId; - Char fApicId; - UInt32 fFlags; - }; - - struct MadtIOApic final - { - Char fApicId; - Char fReserved; - UInt32 fAddress; - UInt32 fSystemInterruptBase; - }; - - struct MadtInterruptSource final - { - Char fBusSource; - Char fIrqSource; - UInt32 fGSI; - UInt16 fFlags; - }; - - struct MadtInterruptNmi final - { - Char fNmiSource; - Char fReserved; - UInt16 fFlags; - UInt32 fGSI; - }; - - struct MadtLocalApicAddressOverride final - { - UInt16 fResvered; - UIntPtr fAddress; - }; - - /////////////////////////////////////////////////////////////////////////////////////// - - STATIC MadtType* kApicInfoBlock = nullptr; - - /////////////////////////////////////////////////////////////////////////////////////// - - void hal_system_get_cores(voidPtr rsdPtr) - { - kcout << "New OS: Constructing ACPIFactoryInterface...\r"; - - auto acpi = ACPIFactoryInterface(rsdPtr); - kApicMadt = acpi.Find(kApicSignature).Leak().Leak(); - - if (kApicMadt) - { - kcout << "New OS: Successfuly fetched the MADT!\r"; - kApicInfoBlock = (MadtType*)kApicMadt; - } - else - { - MUST_PASS(false); - } - } -} // namespace NewOS::HAL - -/////////////////////////////////////////////////////////////////////////////////////// |
