diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-01 09:46:51 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-01 09:46:51 +0200 |
| commit | cb4d1fbb3a8f31641147f43375c7d66f693ef3ea (patch) | |
| tree | 6228c33f570070fd4790909578bb547f8d8da3b5 /dev/kernel/HALKit | |
| parent | 6965e19b184358431dd9832187e541da3af3968f (diff) | |
fix/paging: Fix page manager API probe and tlb invalidator logic.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit')
| -rw-r--r-- | dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc b/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc index ac80f48e..5819f1d9 100644 --- a/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc +++ b/dev/kernel/HALKit/AMD64/HalPagingMgrAMD64.cc @@ -91,7 +91,7 @@ namespace Kernel::HAL // Lastly, grab the pte entry. NE_PDE* pde_struct = reinterpret_cast<NE_PDE*>(pt_base); - return pde_struct->fEntries[pt_entry]->PhysicalAddress; + return pde_struct->fEntries[pt_index]->PhysicalAddress; } /***********************************************************************************/ @@ -106,7 +106,7 @@ namespace Kernel::HAL kout << (pte->User ? "User" : "Not User") << kendl; } - STATIC Int32 mmi_map_page_table_entry(UInt32 physical_address, UInt32 flags, NE_PTE* pt_entry, NE_PDE* pd_entry); + STATIC Int32 mmi_map_page_table_entry(UIntPtr virtual_address, UInt32 physical_address, UInt32 flags, NE_PTE* pt_entry, NE_PDE* pd_entry); /***********************************************************************************/ /// @brief Maps or allocates a page from virtual_address. @@ -154,14 +154,14 @@ namespace Kernel::HAL // Lastly, grab the pte entry. NE_PDE* pde_struct = reinterpret_cast<NE_PDE*>(pt_base); - return mmi_map_page_table_entry((UInt32)(UInt64)physical_address, flags, pde_struct->fEntries[pt_entry], pde_struct); + return mmi_map_page_table_entry(reinterpret_cast<UIntPtr>(virtual_address), (UInt32)(UInt64)physical_address, flags, pde_struct->fEntries[pt_entry], pde_struct); } /***********************************************************************************/ /// @brief Maps flags for a specific pte. /// @internal Internal function. /***********************************************************************************/ - STATIC Int32 mmi_map_page_table_entry(UInt32 physical_address, UInt32 flags, NE_PTE* pt_entry, NE_PDE* pd_entry) + STATIC Int32 mmi_map_page_table_entry(UIntPtr virtual_address, UInt32 physical_address, UInt32 flags, NE_PTE* pt_entry, NE_PDE* pd_entry) { if (!pt_entry) return 1; @@ -185,7 +185,7 @@ namespace Kernel::HAL pt_entry->PhysicalAddress = physical_address; - hal_invl_tlb(reinterpret_cast<VoidPtr>(pt_entry)); + hal_invl_tlb(reinterpret_cast<VoidPtr>(virtual_address)); mmi_page_status(pt_entry); |
