summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-25 16:43:00 +0100
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-03-25 16:43:00 +0100
commitbe29b406526c931a606d4d4de545f71e62bc893a (patch)
tree99a37a287dda888803653df9e13cb1336150cb85 /Private/HALKit
parentf5e0bc85b06c84e0c6bc1da471630d02ff2ed7a3 (diff)
Kernel: A lot of preliminary changes before AHCI and SMP support.
Diffstat (limited to 'Private/HALKit')
-rw-r--r--Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp3
-rw-r--r--Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp6
-rw-r--r--Private/HALKit/AMD64/HalKernelMain.cxx3
-rw-r--r--Private/HALKit/AMD64/HalKernelMouse.cxx31
4 files changed, 20 insertions, 23 deletions
diff --git a/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp b/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
index 78b69bff..8039ce8a 100644
--- a/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
+++ b/Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
@@ -11,7 +11,8 @@
EXTERN_C void idt_handle_gpf(HCore::UIntPtr rsp) {
MUST_PASS(HCore::ProcessManager::Shared().Leak().GetCurrent());
- HCore::kcout << "NewKernel.exe: Stack Pointer: " << HCore::StringBuilder::FromInt("rsp{%}", rsp);
+ HCore::kcout << "NewKernel.exe: Stack Pointer: "
+ << HCore::StringBuilder::FromInt("rsp{%}", rsp);
HCore::kcout
<< "NewKernel.exe: General Protection Fault, caused by "
diff --git a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
index d9161d17..fe38189e 100644
--- a/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
+++ b/Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
@@ -93,7 +93,7 @@ struct MadtLocalApicAddressOverride final {
STATIC MadtType kApicMadtList[256];
-MadtType* system_find_core(MadtType* madt) {
+MadtType* _hal_system_find_core(MadtType* madt) {
madt = madt + sizeof(MadtType);
if (rt_string_cmp(madt->fMag, kApicSignature,
@@ -112,12 +112,12 @@ void hal_system_get_cores(voidPtr rsdPtr) {
MUST_PASS(kApicMadt); // MADT must exist.
SizeT counter = 0UL;
- MadtType* offset = system_find_core((MadtType*)kApicMadt);
+ MadtType* offset = _hal_system_find_core((MadtType*)kApicMadt);
//! now find core addresses.
while (offset != nullptr) {
// calls rt_copy_memory in NewC++
kApicMadtList[counter] = *offset;
- offset = system_find_core(offset);
+ offset = _hal_system_find_core(offset);
++counter;
}
diff --git a/Private/HALKit/AMD64/HalKernelMain.cxx b/Private/HALKit/AMD64/HalKernelMain.cxx
index ca7ab158..266ef18a 100644
--- a/Private/HALKit/AMD64/HalKernelMain.cxx
+++ b/Private/HALKit/AMD64/HalKernelMain.cxx
@@ -5,6 +5,7 @@
------------------------------------------- */
#include <ArchKit/ArchKit.hpp>
+#include <Builtins/Toolbox/Rsrc/Splash.rsrc>
#include <Builtins/Toolbox/Toolbox.hxx>
#include <FirmwareKit/Handover.hxx>
#include <KernelKit/FileManager.hpp>
@@ -12,8 +13,6 @@
#include <KernelKit/KernelHeap.hpp>
#include <KernelKit/PEFCodeManager.hxx>
#include <KernelKit/ProcessScheduler.hpp>
-#include <KernelKit/Rsrc/Splash.rsrc>
-#include <KernelKit/Rsrc/Util.hxx>
#include <KernelKit/UserHeap.hpp>
#include <NewKit/Json.hpp>
diff --git a/Private/HALKit/AMD64/HalKernelMouse.cxx b/Private/HALKit/AMD64/HalKernelMouse.cxx
index 61e79845..0cbf47dc 100644
--- a/Private/HALKit/AMD64/HalKernelMouse.cxx
+++ b/Private/HALKit/AMD64/HalKernelMouse.cxx
@@ -5,9 +5,8 @@
------------------------------------------- */
#include <Builtins/PS2/PS2MouseInterface.hxx>
+#include <Builtins/Toolbox/Toolbox.hxx>
#include <KernelKit/Framebuffer.hpp>
-#include <KernelKit/Rsrc/Cursor.rsrc>
-#include <KernelKit/Rsrc/Util.hxx>
#include <NewKit/Defines.hpp>
// forward decl.
@@ -65,9 +64,15 @@ Void hal_handle_mouse() {
/// @brief Interrupt handler for the mouse.
EXTERN_C Void _hal_handle_mouse() { hal_handle_mouse(); }
-EXTERN_C Boolean _hal_left_button_pressed() { return kMousePacket[0] & kPS2Leftbutton; }
-EXTERN_C Boolean _hal_right_button_pressed() { return kMousePacket[0] & kPS2Rightbutton; }
-EXTERN_C Boolean _hal_middle_button_pressed() { return kMousePacket[0] & kPS2Middlebutton; }
+EXTERN_C Boolean _hal_left_button_pressed() {
+ return kMousePacket[0] & kPS2Leftbutton;
+}
+EXTERN_C Boolean _hal_right_button_pressed() {
+ return kMousePacket[0] & kPS2Rightbutton;
+}
+EXTERN_C Boolean _hal_middle_button_pressed() {
+ return kMousePacket[0] & kPS2Middlebutton;
+}
/// @brief Draws the kernel's mouse.
EXTERN_C Boolean _hal_draw_mouse() {
@@ -129,15 +134,7 @@ EXTERN_C Boolean _hal_draw_mouse() {
if (kY > kHandoverHeader->f_GOP.f_Height - 16)
kY = kHandoverHeader->f_GOP.f_Height - 16;
- ToolboxInitRsrc();
- ToolboxClearZone(POINTER_HEIGHT, POINTER_WIDTH, kPrevX, kPrevY);
- ToolboxDrawRsrc(Pointer, POINTER_HEIGHT, POINTER_WIDTH, kX, kY);
- ToolboxClearRsrc();
-
- HCore::kcout << number(kX);
- HCore::kcout << "\r\n";
- HCore::kcout << number(kY);
- HCore::kcout << "\r\n";
+ /// Draw mouse here.
kPrevX = kX;
kPrevY = kY;
@@ -147,9 +144,9 @@ EXTERN_C Boolean _hal_draw_mouse() {
}
/// @brief Init kernel mouse.
-EXTERN_C Void _hal_init_mouse() {
- kMousePS2.Init();
-
+EXTERN_C Void _hal_init_mouse() {
+ kMousePS2.Init();
+
HAL::Out8(0x21, 0b11111001);
HAL::Out8(0xA1, 0b11101111);
} \ No newline at end of file