From 1311cdcfaa7fad132196a615899fd38393f54daf Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 18 Mar 2025 05:20:57 +0100 Subject: feat(AHCI, HAL): Improve AHCI error handling & optimize HAL initialization - Refactored `sk_acquire_ahci_device(Int32 drv_index)` to return `ErrorOr` for proper error handling instead of returning a raw object. - Moved `sk_init_ahci_device(BOOL atapi)` into the `NeOS` namespace for better encapsulation. - Reduced `HbaMem::Ports` array size from `Ports[32]` to `Ports[1]` to optimize memory usage for single-port AHCI controllers. - Removed manual constructor initialization (`__CTOR_LIST__`, `__DTOR_LIST__`) from HAL, simplifying kernel startup. - Updated `hal_real_init()` to initialize AHCI storage (`sk_init_ahci_device(NO)`) before userland execution. - Refactored `hal_get_phys_address(void* virtual_address)` to use `VoidPtr` for type safety. - Fixed incorrect buffer size (`kSzIdent`) in AHCI driver initialization from `kib_cast(1)` to `512`, ensuring correct sector identification. - Removed redundant drive model string parsing logic. - Refactored AHCI PRD iteration loop to use `prd_i` instead of `i`, improving readability. - Optimized `drv_std_input_output` by simplifying wait loop logic. Overall, this commit improves AHCI error handling, reduces redundant initialization, optimizes memory usage, and cleans up HAL and storage code. Signed-off-by: Amlal El Mahrouss --- dev/Kernel/HALKit/AMD64/Processor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dev/Kernel/HALKit/AMD64/Processor.h') diff --git a/dev/Kernel/HALKit/AMD64/Processor.h b/dev/Kernel/HALKit/AMD64/Processor.h index 1395f03b..d223c320 100644 --- a/dev/Kernel/HALKit/AMD64/Processor.h +++ b/dev/Kernel/HALKit/AMD64/Processor.h @@ -206,7 +206,7 @@ namespace NeOS::HAL return edx & (1 << 5); } - UIntPtr hal_get_phys_address(void* virtual_address); + UIntPtr hal_get_phys_address(VoidPtr virtual_address); /***********************************************************************************/ /// @brief Get Model specific register inside core. -- cgit v1.2.3