summaryrefslogtreecommitdiffhomepage
path: root/Kernel/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-13 00:20:21 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-13 00:20:21 +0200
commitbc7870aea4c437e1a80b779eb7a968d55733d24c (patch)
tree7998fe2f1ef8d3bdf8d37a0b2b2600143bc285ed /Kernel/HALKit
parent710ce66beaba3bee7289047406ef794c258143e6 (diff)
[IMP] Kernel properties (such as \KernelVersion)
[REFACTOR] Rename KernelHeap to just Heap. [FIX] Scheduler's way of checking boundaries was not correct. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Kernel/HALKit')
-rw-r--r--Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx2
-rw-r--r--Kernel/HALKit/AMD64/HalInterruptAPI.asm8
-rw-r--r--Kernel/HALKit/AMD64/HalKernelMain.cxx15
-rw-r--r--Kernel/HALKit/ARM64/HalKernelMain.cxx2
4 files changed, 16 insertions, 11 deletions
diff --git a/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx b/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx
index d9bb4baa..d9918570 100644
--- a/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx
+++ b/Kernel/HALKit/AMD64/HalACPIFactoryInterface.cxx
@@ -8,7 +8,7 @@
#include <HALKit/AMD64/Processor.hxx>
#include <NewKit/String.hpp>
#include <ArchKit/ArchKit.hpp>
-#include <KernelKit/KernelHeap.hpp>
+#include <KernelKit/Heap.hxx>
namespace Kernel
{
diff --git a/Kernel/HALKit/AMD64/HalInterruptAPI.asm b/Kernel/HALKit/AMD64/HalInterruptAPI.asm
index 5eaf60b4..c09d5a06 100644
--- a/Kernel/HALKit/AMD64/HalInterruptAPI.asm
+++ b/Kernel/HALKit/AMD64/HalInterruptAPI.asm
@@ -121,19 +121,11 @@ IntNormal 31
[extern hal_apic_acknowledge]
-%define cAPICAddress 0xFEE00000
-
__NEW_INT_34:
-;; make this active, SMP works again.
push rax
call hal_apic_acknowledge
pop rax
- mov rax, 0
-
- ;; tell there local apic that we're done.
- mov qword [cAPICAddress + 0xB0], rax ; send end of interrupt.
-
iretq
IntNormal 32
diff --git a/Kernel/HALKit/AMD64/HalKernelMain.cxx b/Kernel/HALKit/AMD64/HalKernelMain.cxx
index 869e4ae4..fcd12247 100644
--- a/Kernel/HALKit/AMD64/HalKernelMain.cxx
+++ b/Kernel/HALKit/AMD64/HalKernelMain.cxx
@@ -9,7 +9,7 @@
#include <FirmwareKit/Handover.hxx>
#include <KernelKit/FileManager.hpp>
#include <KernelKit/Framebuffer.hpp>
-#include <KernelKit/KernelHeap.hpp>
+#include <KernelKit/Heap.hxx>
#include <KernelKit/PEFCodeManager.hxx>
#include <KernelKit/ProcessScheduler.hxx>
#include <KernelKit/ProcessHeap.hxx>
@@ -18,11 +18,16 @@
#include <KernelKit/CodeManager.hpp>
#include <Modules/ACPI/ACPIFactoryInterface.hxx>
#include <NetworkKit/IPCEP.hxx>
+#include <CFKit/Property.hpp>
#define mInitKernel(X) \
X; \
Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP);
+
+
+Kernel::Property cKernelVersion;
+
/// @brief This symbol is the kernel main symbol.
EXTERN_C void KeMain();
@@ -210,6 +215,14 @@ EXTERN_C void hal_init_platform(
kSyscalls[cRebootInterrupt].Leak().Leak()->fHooked = true;
kSyscalls[cLPCSanitizeMsg].Leak().Leak()->fHooked = true;
+ // newoskrnl version 1.00
+ //
+ Kernel::StringView strVer(cMaxPropLen);
+ strVer += "\\Properties\\KernelVersion";
+
+ cKernelVersion.GetKey() = strVer;
+ cKernelVersion.GetValue() = 1100;
+
Kernel::HAL::hal_system_get_cores(kHandoverHeader->f_HardwareTables.f_RsdPtr);
mInitKernel(KeMain());
diff --git a/Kernel/HALKit/ARM64/HalKernelMain.cxx b/Kernel/HALKit/ARM64/HalKernelMain.cxx
index 54a75365..5e66a3d8 100644
--- a/Kernel/HALKit/ARM64/HalKernelMain.cxx
+++ b/Kernel/HALKit/ARM64/HalKernelMain.cxx
@@ -9,7 +9,7 @@
#include <FirmwareKit/Handover.hxx>
#include <KernelKit/FileManager.hpp>
#include <KernelKit/Framebuffer.hpp>
-#include <KernelKit/KernelHeap.hpp>
+#include <KernelKit/Heap.hxx>
#include <KernelKit/PEFCodeManager.hxx>
#include <KernelKit/ProcessScheduler.hxx>
#include <KernelKit/ProcessHeap.hxx>