From 0ead895f52d24dad009f738037a7795d4e3d840a Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 25 Mar 2025 15:35:28 +0100 Subject: kernel: Refactor AHCI I/O path, enhance memory allocators, and cleanup obsolete script - Removed unused `build_gcc.sh` script. - Namespaced CPU feature flags under `NeOS` and transitioned from enum to unnamed enum for scoping. - Renamed `drv_std_input_output` to `drv_std_input_output_ahci` for clarity. - Improved AHCI driver documentation and added zeroing for read buffers. - Added optional `pad` parameter to memory allocators: `mm_alloc_bitmap`, `mm_new_heap`, `PageMgr::Request`, etc. - Updated bitmap allocator to correctly handle and align with padded sizes. - Added `fPad` field to memory header block. - Fixed `ATA-DMA` mode comment, corrected PRD usage and logic. - Improved code documentation and formatting in `UserProcessScheduler`, `PageMgr`, and related components. - Enhanced safety in process memory cleanup (e.g., `StackReserve` cleanup). Signed-off-by: Amlal El Mahrouss --- dev/kernel/NewKit/Macros.h | 5 +++++ dev/kernel/NewKit/PageMgr.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'dev/kernel/NewKit') diff --git a/dev/kernel/NewKit/Macros.h b/dev/kernel/NewKit/Macros.h index 637a2a30..1d270929 100644 --- a/dev/kernel/NewKit/Macros.h +++ b/dev/kernel/NewKit/Macros.h @@ -6,6 +6,11 @@ #pragma once +/***********************************************************************************/ +/// @file NewKit/Macros.h +/// @brief Core Types and Macros. +/***********************************************************************************/ + #ifndef KIB #define KIB(X) (NeOS::UInt64)((X) / 1024) #endif diff --git a/dev/kernel/NewKit/PageMgr.h b/dev/kernel/NewKit/PageMgr.h index 3d8e1f9a..00638f8a 100644 --- a/dev/kernel/NewKit/PageMgr.h +++ b/dev/kernel/NewKit/PageMgr.h @@ -68,7 +68,7 @@ namespace NeOS PageMgr(const PageMgr&) = default; public: - PTEWrapper Request(Boolean Rw, Boolean User, Boolean ExecDisable, SizeT Sz); + PTEWrapper Request(Boolean Rw, Boolean User, Boolean ExecDisable, SizeT Sz, SizeT Pad); bool Free(Ref& wrapper); private: -- cgit v1.2.3