Commit Graph
88 Commits
Author SHA1 Message Date
harraiken f18c9ca5b4 Add expansion table and overflow handling for pool tag tracking 2026-03-25 15:03:33 +01:00
harraiken 6577876285 Unify naming convention for pool tracking structures 2026-03-25 15:03:33 +01:00
harraiken caf0287135 Implement pool allocations and frees tracking 2026-03-25 15:03:33 +01:00
harraiken 579ac1d90e Remove temporary hack and allocate processor structures from non-paged pool 2026-03-25 15:03:33 +01:00
harraiken 4015b4b2f3 Implement core pool allocation and deallocation logic 2026-03-25 15:03:33 +01:00
harraiken 77e487495b Implement RAII guard for memory pool synchronization 2026-03-25 15:03:33 +01:00
harraiken 7b3f4bb35a Decouple pool initialization and validation from allocation logic 2026-03-25 15:03:33 +01:00
harraiken 427c7ae810 Track valid physical memory pages using a PFN bitmap 2026-03-25 15:03:33 +01:00
harraiken d8a430ee42 Add runlevel verification to memory pool allocations 2026-03-25 15:03:33 +01:00
harraiken 2e5c259a5a Introduce pool allocation and free routines 2026-03-25 15:03:33 +01:00
harraiken e1b9664ec0 Unify PTE type definitions across architectures 2026-03-25 15:03:33 +01:00
harraiken 3d2be65545 Make MM::Pte::InitializeSystemPtePool public 2026-03-25 15:03:33 +01:00
harraiken 58bc1839f5 Implement memory deallocation and coalescing for non-paged pool 2026-03-25 15:03:33 +01:00
harraiken a1899fd1fa Implement canonical address validation routine 2026-03-25 15:03:33 +01:00
harraiken 5cca5970b1 Implement basic non-paged pool allocator 2026-03-25 15:03:33 +01:00
harraiken cd60cd7b1a Implement page allocation interface 2026-03-25 15:03:33 +01:00
harraiken 398de5cb5b Expose the number of available physical pages 2026-03-25 15:03:33 +01:00
harraiken 37d70c449c Refactor PFN linking logic 2026-03-25 15:03:33 +01:00
harraiken 1f8d2a0370 Add interface to retrieve page map level (PML) 2026-03-25 15:03:33 +01:00
harraiken b7f85909cb Introduce page directory initialization helper 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 a2335900ad Move PFN database size tracking to memory layout 2026-03-25 15:03:33 +01:00
harraiken 17e096f18c Add private helper declaration 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 488736512f Fix incorrect header guard comment 2026-03-25 15:03:33 +01:00
harraiken 8577d23e47 Add routine to retrieve installed memory size 2026-03-25 15:03:33 +01:00
harraiken bc85eb3c12 Add missing annotations 2026-03-25 15:03:33 +01:00
harraiken c29afe477c Annotate input parameters 2026-03-25 15:03:33 +01:00
harraiken 807b0a736f Add logic to insert pages at the head of standby list 2026-03-25 15:03:33 +01:00
harraiken 41eed4c7ad Allow PFN insertion at the beginning of standby list 2026-03-25 15:03:33 +01:00
harraiken 6accbfd2ae Replace ULONG with PFN_COUNT in system PTE variables 2026-03-25 15:03:33 +01:00
harraiken f8cdcc3f75 Implement kernel stack deallocation and physical page freeing logic 2026-03-25 15:03:33 +01:00
harraiken 602e837e11 Add mechanism to free system PTEs and merge adjacent clusters 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 e0bcac3722 Implement generic PFN list linking function 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 374f404324 Introduce per-page-color modified page lists 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 0c9ea2ed20 Implement kernel stack allocation logic 2026-03-25 15:03:33 +01:00
harraiken 43d0e8932d Implement logic to link physical pages to PTEs 2026-03-25 15:03:33 +01:00
harraiken d88fa93df9 Introduce page fault handling infrastructure 2026-03-25 15:03:33 +01:00
harraiken b6c5bae289 Minor style fixes in MM includes 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 f33fa0fdaf Expose PFN database lookup via GetPfnEntry 2026-03-25 15:03:33 +01:00
harraiken cdad8ffe2c Implement tracking of available physical pages 2026-03-25 15:03:33 +01:00
harraiken 425780de69 Initialize system PTE pools and implement reservation routines 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