Commit Graph

182 Commits

Author SHA1 Message Date
4192e93157 Introduce page coloring support to memory manager 2026-03-25 15:03:33 +01:00
b32c66110b Add storage for PFN database size 2026-03-25 15:03:33 +01:00
a4b36827e4 Bring up i686 page table initialization 2026-03-25 15:03:33 +01:00
e8512e9f45 Fix physical page count overflow by using 64-bit type 2026-03-25 15:03:33 +01:00
0448217c06 Fix PTE free list sentinel handling 2026-03-25 15:03:33 +01:00
eb621e0264 Extend PTE helpers with raw read and write support 2026-03-25 15:03:33 +01:00
ed769e023f Respect architecture-specific PTE layouts and write PTEs via PML-aware helpers 2026-03-25 15:03:33 +01:00
08b095d47c Make PPE mapping architecture-specific 2026-03-25 15:03:33 +01:00
244af13500 Clarify page table entry offset semantics 2026-03-25 15:03:33 +01:00
e6d2574bf9 Fix paging abstraction for PDE/PTE virtual address calculation 2026-03-25 15:03:33 +01:00
6f9e537e86 Implement initial virtual memory layout setup 2026-03-25 15:03:33 +01:00
be6ad1658f Update SelfMapAddress 2026-03-25 15:03:33 +01:00
a45cd95b6f Call page table initialization 2026-03-25 15:03:33 +01:00
3c5bb52152 Add virtual address validation and system PTE helpers 2026-03-25 15:03:33 +01:00
3a311a0497 Move memory layout initialization to architecture-specific code 2026-03-25 15:03:33 +01:00
140b25ff76 Architecture-specific system PTE limits 2026-03-25 15:03:33 +01:00
c760016ee5 Extend memory layout 2026-03-25 15:03:33 +01:00
d8b2af8f1e Split PTE implementation per architecture 2026-03-25 15:03:33 +01:00
28fc0ab435 Compute PTE count per page from entry size 2026-03-25 15:03:33 +01:00
329c22ae82 Implement early page table mapping routines 2026-03-25 15:03:33 +01:00
d27954091a Add bootstrap physical page allocator 2026-03-25 15:03:33 +01:00
df9028d425 Introduce kernel virtual memory layout 2026-03-25 15:03:33 +01:00
540c4df13e Compute PFN database size during MM initialization 2026-03-25 15:03:33 +01:00
0a2fb7ae38 Tidy up memory type verification helpers 2026-03-25 15:03:33 +01:00
6f824c55bb Harden PFN initialization and expose page count 2026-03-25 15:03:33 +01:00
f371b305ad Make memory type verification helpers accessible to PFN 2026-03-25 15:03:33 +01:00
24e20f3d8f Extract PFN management into separate module 2026-03-25 15:03:33 +01:00
c7bfc028b6 Refactor memory manager initialization into MM::Manager 2026-03-25 15:03:33 +01:00
9492ba09a6 Fix GetP5eAddress return type 2026-03-25 15:03:33 +01:00
9d27778e4c Add architecture-specific GetPteDistance 2026-03-25 15:03:33 +01:00
0796164cf8 Refactor XPA detection API 2026-03-25 15:03:33 +01:00
2f4d26b432 Fix incorrect pointer types 2026-03-25 15:03:33 +01:00
1996024e96 Split paging interface into arch-specific code 2026-03-25 15:03:33 +01:00
42a96ae5c3 Implement virtual address resolvers for all page map levels and add XPA status accessor 2026-03-25 15:03:33 +01:00
f9a057db2d Add MM::PageMap::GetXpaStatus() for querying PML level 2026-03-25 15:03:33 +01:00
f210c9e334 Refactor PageMap to enable architecture-specific VA translation 2026-03-25 15:03:33 +01:00
e831902363 Fix class name 2026-03-25 15:03:33 +01:00
f247726ee9 Add GetPageFrameNumber() to PTE interfaces 2026-03-25 15:03:33 +01:00
34586d8fa1 Replace writable flag with AttributesMask in PTE setup 2026-03-25 15:03:33 +01:00
d752de20f6 Unify PTE pointer types across MM subsystem 2026-03-25 15:03:33 +01:00
8e48153852 Add input qualifiers to page map interface definitions 2026-03-25 15:03:33 +01:00
bf98860ff2 Add input qualifiers to paging interface definitions 2026-03-25 15:03:33 +01:00
c2d3f2e6f4 Add PTE management routines 2026-03-25 15:03:33 +01:00
4cf2c0c9e8 Implement unified PTE accessors and management helpers 2026-03-25 15:03:33 +01:00
72b92f853e Use PTE base from PageMapInfo
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 31s
Builds / ExectOS (amd64, debug) (push) Successful in 33s
Builds / ExectOS (i686, debug) (push) Successful in 32s
Builds / ExectOS (i686, release) (push) Successful in 30s
2025-10-23 08:54:57 +02:00
6e10089280 Drop unnecessary boolean casts after type refactor
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 30s
Builds / ExectOS (amd64, release) (push) Successful in 28s
Builds / ExectOS (i686, debug) (push) Successful in 28s
Builds / ExectOS (i686, release) (push) Successful in 26s
2025-09-23 19:17:33 +02:00
fabf3a3a5e Replace all occurrences of NULL with NULLPTR for unified C and C++ null pointer handling
Some checks failed
Builds / ExectOS (amd64, release) (push) Failing after 24s
Builds / ExectOS (amd64, debug) (push) Successful in 27s
Builds / ExectOS (i686, debug) (push) Successful in 27s
Builds / ExectOS (i686, release) (push) Failing after 25s
2025-09-16 15:59:56 +02:00
f4561c1f4f Remove leftover old headers and fix missed spots
Some checks failed
Builds / ExectOS (amd64, release) (push) Failing after 20s
Builds / ExectOS (amd64, debug) (push) Failing after 21s
Builds / ExectOS (i686, debug) (push) Failing after 21s
Builds / ExectOS (i686, release) (push) Failing after 19s
2025-09-16 08:46:53 +02:00
0a0fdffc46 Clean up kernel headers
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in 30s
Builds / ExectOS (amd64, release) (push) Successful in 28s
Builds / ExectOS (i686, debug) (push) Failing after 21s
Builds / ExectOS (i686, release) (push) Failing after 20s
2025-09-15 22:46:57 +02:00
404595801d Migrate MM subsystem to C++
Some checks failed
Builds / ExectOS (amd64, debug) (push) Failing after 24s
Builds / ExectOS (amd64, release) (push) Failing after 23s
Builds / ExectOS (i686, debug) (push) Failing after 22s
Builds / ExectOS (i686, release) (push) Failing after 21s
2025-09-15 22:15:07 +02:00