summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp')
-rw-r--r--Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp124
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
-
-///////////////////////////////////////////////////////////////////////////////////////