diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-25 16:43:00 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-25 16:43:00 +0100 |
| commit | be29b406526c931a606d4d4de545f71e62bc893a (patch) | |
| tree | 99a37a287dda888803653df9e13cb1336150cb85 /Private/HALKit | |
| parent | f5e0bc85b06c84e0c6bc1da471630d02ff2ed7a3 (diff) | |
Kernel: A lot of preliminary changes before AHCI and SMP support.
Diffstat (limited to 'Private/HALKit')
| -rw-r--r-- | Private/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp | 3 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp | 6 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalKernelMain.cxx | 3 | ||||
| -rw-r--r-- | Private/HALKit/AMD64/HalKernelMouse.cxx | 31 |
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 |
