diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-04 14:27:22 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-08-04 14:27:22 +0100 |
| commit | c02e7972bd2a308d9c9ac3aec78d0530d5498b0a (patch) | |
| tree | de7ae350346f75ecca94eddd0d4eeedd212bb8b9 /dev/kernel/src/PEFCodeMgr.cc | |
| parent | f8d0d1d8f2745e9fad759638c74d0047fda36fee (diff) | |
feat: `mm_map_page` should iterate over `pages_count`, not `VMSize` directly.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/src/PEFCodeMgr.cc')
| -rw-r--r-- | dev/kernel/src/PEFCodeMgr.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/dev/kernel/src/PEFCodeMgr.cc b/dev/kernel/src/PEFCodeMgr.cc index da69202e..357c279b 100644 --- a/dev/kernel/src/PEFCodeMgr.cc +++ b/dev/kernel/src/PEFCodeMgr.cc @@ -16,6 +16,7 @@ #include <NeKit/KernelPanic.h> #include <NeKit/OwnPtr.h> #include <NeKit/Utils.h> +#include "HALKit/AMD64/Paging.h" /// @author Amlal El Mahrouss (amlal@nekernel.org) /// @brief PEF backend for the Code Manager. @@ -173,7 +174,10 @@ ErrorOr<VoidPtr> PEFLoader::FindSymbol(const Char* name, Int32 kind) { kout << "PEFLoader: info: Loaded stub: " << container_header[index].Name << "!\r"; auto ret = false; - for (SizeT i_vm{}; i_vm < container_header[index].VMSize; ++i_vm) { + + auto pages_count = (container_header[index].VMSize + kPageSize - 1) / kPageSize; + + for (SizeT i_vm{}; i_vm < pages_count; ++i_vm) { ret = HAL::mm_map_page((VoidPtr) (container_header[index].VMAddress + i_vm), (VoidPtr) HAL::mm_get_page_addr(container_blob_value), HAL::kMMFlagsPresent | HAL::kMMFlagsUser); |
