diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-05-11 06:43:54 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-05-11 06:43:54 +0000 |
| commit | ca675beb41dba8d7d16c5793b55d1672f38be3b4 (patch) | |
| tree | c995ada42729ac2059a0ed87a4539d1a7e10b14a /Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | |
| parent | 2b4a4792abf51487ab4a16106f9376f43acf381a (diff) | |
| parent | bc57a29a24b98b00ba17710ba84ec2188ab73504 (diff) | |
Merged in MHR-23 (pull request #12)
MHR-23: Merge work.
Diffstat (limited to 'Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp')
| -rw-r--r-- | Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp deleted file mode 100644 index 917af45d..00000000 --- a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp +++ /dev/null @@ -1,110 +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 - -/////////////////////////////////////////////////////////////////////////////////////// |
