From c7fe1ab6e2f97a7f0bfc6aaf97374f841fb63c0d Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 3 Mar 2026 15:44:28 +0100 Subject: feat: syschk, hal{x64}: ATA PIO patches, reworked I/O system. Signed-off-by: Amlal El Mahrouss --- src/kernel/HALKit/AMD64/HalDebugOutput.cpp | 10 ++++++---- src/kernel/HALKit/AMD64/Paging.h | 4 +--- src/kernel/HALKit/ARM64/Paging.h | 16 +++++++++------- 3 files changed, 16 insertions(+), 14 deletions(-) (limited to 'src/kernel/HALKit') diff --git a/src/kernel/HALKit/AMD64/HalDebugOutput.cpp b/src/kernel/HALKit/AMD64/HalDebugOutput.cpp index 37e8b10b..a93d458e 100644 --- a/src/kernel/HALKit/AMD64/HalDebugOutput.cpp +++ b/src/kernel/HALKit/AMD64/HalDebugOutput.cpp @@ -27,6 +27,7 @@ namespace Detail { bool hal_serial_init() { if (kState == kStateReady || kState == kStateTransmit) return true; +#ifdef __DEBUG__ HAL::rt_out8(PORT + 1, 0x00); // Disable all interrupts HAL::rt_out8(PORT + 3, 0x80); // Enable DLAB (set baud rate divisor) HAL::rt_out8(PORT + 0, 0x03); // Set divisor to 3 (lo byte) 38400 baud @@ -43,11 +44,12 @@ namespace Detail { return false; } - kState = kStateReady; - // If serial is not faulty set it in normal operation mode // (not-loopback with IRQs enabled and OUT#1 and OUT#2 bits enabled) HAL::rt_out8(PORT + 4, 0x0F); +#endif + + kState = kStateReady; return true; } @@ -88,7 +90,7 @@ EXTERN_C void ke_utf_io_write(IDevice* obj, const Utf8Char* byt tmp_str[0] = (bytes[index] > 127) ? '?' : bytes[index]; tmp_str[1] = 0; - cg_render_string(tmp_str, kY, kX, RGB(0xff, 0xff, 0xff)); + cg_render_string(tmp_str, kY, kX, RGB(0x00, 0x00, 0x00)); if (bytes[index] == '\r') { kY += kFontSizeY; @@ -144,7 +146,7 @@ EXTERN_C void ke_io_write(IDevice* obj, const Char* bytes) { tmp_str[0] = bytes[index]; tmp_str[1] = 0; - cg_render_string(tmp_str, kY, kX, RGB(0xff, 0xff, 0xff)); + cg_render_string(tmp_str, kY, kX, RGB(0x00, 0x00, 0x00)); if (bytes[index] == '\r') { kY += kFontSizeY; diff --git a/src/kernel/HALKit/AMD64/Paging.h b/src/kernel/HALKit/AMD64/Paging.h index 89d48e8a..1fbde52c 100644 --- a/src/kernel/HALKit/AMD64/Paging.h +++ b/src/kernel/HALKit/AMD64/Paging.h @@ -56,9 +56,7 @@ namespace Detail { kPageEnable = 31, }; - inline UInt8 control_register_cast(ControlRegisterBits reg) { - return static_cast(reg); - } + inline UInt8 control_register_cast(ControlRegisterBits reg) { return static_cast(reg); } } // namespace Detail auto mm_alloc_bitmap(Boolean wr, Boolean user, SizeT size, Bool is_page, SizeT pad = 0) -> VoidPtr; diff --git a/src/kernel/HALKit/ARM64/Paging.h b/src/kernel/HALKit/ARM64/Paging.h index 1984a9f2..bf062e3a 100644 --- a/src/kernel/HALKit/ARM64/Paging.h +++ b/src/kernel/HALKit/ARM64/Paging.h @@ -40,10 +40,14 @@ /// Long format address range -#define cPageMAll {0b000, 0b000} -#define cPageMToMax(M) {M, 0b000} -#define cPageMaxToM(M) {0b000, M} -#define cPageMToN(M, N) {M, N} +#define cPageMAll \ + { 0b000, 0b000 } +#define cPageMToMax(M) \ + { M, 0b000 } +#define cPageMaxToM(M) \ + { 0b000, M } +#define cPageMToN(M, N) \ + { M, N } namespace Kernel::HAL { struct PACKED PTE_4KB final { @@ -81,9 +85,7 @@ namespace Detail { PageEnable = 31, }; - inline UInt8 control_register_cast(ControlRegisterBits reg) { - return static_cast(reg); - } + inline UInt8 control_register_cast(ControlRegisterBits reg) { return static_cast(reg); } } // namespace Detail struct PDE_4KB final { -- cgit v1.2.3