summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/StorageKit/AHCI.h
AgeCommit message (Collapse)Author
2025-03-23meta(kernel): Reworked repository's filesystem structure.Amlal El Mahrouss
Removing useless parts of the project too. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
2025-03-19refactor(kernel): Standardize DMA and AHCI interfaces and enhance GIC handlingAmlal El Mahrouss
- Replace ambiguous WordLength templates with DataKind in `ke_dma_read/write`. - Streamline AHCI driver initialization by directly assigning port implementations. - Rename AHCI methods for clarity (`SetPi` → `SetPortsImplemented`). - Standardize MMIO access by replacing `hal_mmio_read/write` with unified `ke_dma_read/write`. - Improve GIC interrupt handler on ARM64 by explicitly handling scheduler interrupts and ensuring interrupts are ended correctly. - Add debug breakpoint in infinite loop within AP setup for improved debugging. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
2025-03-18feat(AHCI, HAL): Improve AHCI error handling & optimize HAL initializationAmlal El Mahrouss
- Refactored `sk_acquire_ahci_device(Int32 drv_index)` to return `ErrorOr<AHCIDeviceInterface>` 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 <amlal.elmahrouss@icloud.com>
2025-03-03ADD: Format source code and define __wm_msg struct (public version)Amlal El Mahrouss
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
2025-03-03ADD: AHCI: New AHCI Driver API, and refactor AHCIDeviceInterface classAmlal El Mahrouss
from SK. NEXT: System Call Table for Kernel to User interaction. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
2025-02-22ADD: More improvements now on DeviceMgr.Amlal
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
2025-02-22New DeviceMgr, other APIs have been reworked as a result.Amlal
AHCI becomes the first module to be available in StorageKit. Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
2025-02-20NeOS: Namespace change from 'Kernel' to 'NeOS'Amlal
ADD: Start defining the Workstation's HPFS (High-Performance File System) Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
2025-02-03META: Update copyright year.Amlal El Mahrouss
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
2025-01-31Match the changes in OpenNE, (without reusing it)Amlal El Mahrouss
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
2025-01-24ADD: Open version, with important changes kept out.Amlal
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>