Commit Graph
65 Commits
Author SHA1 Message Date
harraiken 59f851f22c Minor style fixes 2026-03-25 15:03:33 +01:00
harraiken 58ed35b0e4 Deduplicate PFN descriptor processing logic across architectures 2026-03-25 15:03:33 +01:00
harraiken dc2c24e83e Fix stale comment 2026-03-25 15:03:33 +01:00
harraiken 932e951d4b Ensure paging hierarchy exists before processing memory descriptors 2026-03-25 15:03:33 +01:00
harraiken b7f85909cb Introduce page directory initialization helper 2026-03-25 15:03:33 +01:00
harraiken e08af6bfd3 Map and zero entire PFN database upfront 2026-03-25 15:03:33 +01:00
harraiken 3b397aca92 Refactor PFN initialization to ensure proper page table setup 2026-03-25 15:03:33 +01:00
harraiken aa7d9bb417 Centralize memory layout dumping 2026-03-25 15:03:33 +01:00
harraiken 9da11d827e Overhaul kernel memory layout initialization and pool sizing 2026-03-25 15:03:33 +01:00
harraiken d8792cc9db Fix PFN database size calculation call sites 2026-03-25 15:03:33 +01:00
harraiken a2335900ad Move PFN database size tracking to memory layout 2026-03-25 15:03:33 +01:00
harraiken 94320928bc Refactor memory layout structure 2026-03-25 15:03:33 +01:00
harraiken 8d05099d7b Add skeleton for memory pool allocator 2026-03-25 15:03:33 +01:00
harraiken bc85eb3c12 Add missing annotations 2026-03-25 15:03:33 +01:00
harraiken 52c119885c Standardize ValidPte setup across architectures 2026-03-25 15:03:33 +01:00
harraiken efe7f28675 Correctly initialize PFN entries for pre-mapped KSEG0 based memory 2026-03-25 15:03:33 +01:00
harraiken 0ee46924a7 Prevent adding referenced pages to the free list 2026-03-25 15:03:33 +01:00
harraiken 3b8359042b Ensure every page in a bad memory region is marked as bad 2026-03-25 15:03:33 +01:00
harraiken c8fa998e38 Make memory descriptor processing architecture-dependent 2026-03-25 15:03:33 +01:00
harraiken 0ca04a7dfe Clean up paging code 2026-03-25 15:03:33 +01:00
harraiken 3270f920dd Remove dead code from paging and PTE management 2026-03-25 15:03:33 +01:00
harraiken 4f6e8bc07a Initialize system PTEs with arch-specific list terminator 2026-03-25 15:03:33 +01:00
harraiken 4aa841650a Abstract PTE list terminator into paging layer 2026-03-25 15:03:33 +01:00
harraiken c5ea9e4489 Add support for transitioning PTE to invalid state 2026-03-25 15:03:33 +01:00
harraiken 466b0c8eab Introduce helper functions for querying the software prototype and transition bits of PTE 2026-03-25 15:03:33 +01:00
harraiken 4963ff5367 Initialize PTE template dynamically to resolve build warnings 2026-03-25 15:03:33 +01:00
harraiken d88fa93df9 Introduce page fault handling infrastructure 2026-03-25 15:03:33 +01:00
harraiken 2854f77159 Refactor memory clearing calls and cleanup code style 2026-03-25 15:03:33 +01:00
harraiken 75dfcec5a6 Implement PFN database initialization and memory descriptor processing 2026-03-25 15:03:33 +01:00
harraiken 446d9af325 Initialize system page tables and configure kernel mappings 2026-03-25 15:03:33 +01:00
harraiken eb621e0264 Extend PTE helpers with raw read and write support 2026-03-25 15:03:33 +01:00
harraiken ed769e023f Respect architecture-specific PTE layouts and write PTEs via PML-aware helpers 2026-03-25 15:03:33 +01:00
harraiken 08b095d47c Make PPE mapping architecture-specific 2026-03-25 15:03:33 +01:00
harraiken 244af13500 Clarify page table entry offset semantics 2026-03-25 15:03:33 +01:00
harraiken be6ad1658f Update SelfMapAddress 2026-03-25 15:03:33 +01:00
harraiken 3c5bb52152 Add virtual address validation and system PTE helpers 2026-03-25 15:03:33 +01:00
harraiken 3a311a0497 Move memory layout initialization to architecture-specific code 2026-03-25 15:03:33 +01:00
harraiken d8b2af8f1e Split PTE implementation per architecture 2026-03-25 15:03:33 +01:00
harraiken 24e20f3d8f Extract PFN management into separate module 2026-03-25 15:03:33 +01:00
harraiken 9492ba09a6 Fix GetP5eAddress return type 2026-03-25 15:03:33 +01:00
harraiken 9d27778e4c Add architecture-specific GetPteDistance 2026-03-25 15:03:33 +01:00
harraiken 2f4d26b432 Fix incorrect pointer types 2026-03-25 15:03:33 +01:00
harraiken 1996024e96 Split paging interface into arch-specific code 2026-03-25 15:03:33 +01:00
harraiken f210c9e334 Refactor PageMap to enable architecture-specific VA translation 2026-03-25 15:03:33 +01:00
harraiken f247726ee9 Add GetPageFrameNumber() to PTE interfaces 2026-03-25 15:03:33 +01:00
harraiken 34586d8fa1 Replace writable flag with AttributesMask in PTE setup 2026-03-25 15:03:33 +01:00
harraiken d752de20f6 Unify PTE pointer types across MM subsystem 2026-03-25 15:03:33 +01:00
harraiken 8e48153852 Add input qualifiers to page map interface definitions 2026-03-25 15:03:33 +01:00
harraiken c2d3f2e6f4 Add PTE management routines 2026-03-25 15:03:33 +01:00
harraiken 4cf2c0c9e8 Implement unified PTE accessors and management helpers 2026-03-25 15:03:33 +01:00