Commit Graph
640 Commits
Author SHA1 Message Date
harraiken 160222fd3b Implement TLB flushing for cache attribute changes during page removal 2026-03-25 15:03:33 +01:00
harraiken 7e4b425702 Fix check for PTE removal flag 2026-03-25 15:03:33 +01:00
harraiken bbdbdc7bcd Mark PFN as deleted instead of clearing PteAddress when freeing pages 2026-03-25 15:03:33 +01:00
harraiken 28dd16fb94 Revert 1e01c52c0c 2026-03-25 15:03:33 +01:00
harraiken 6ac0fd0a1c Clear the internal list links to prevent corruption 2026-03-25 15:03:33 +01:00
harraiken 202b98a3fd Rephrase comments for consistency 2026-03-25 15:03:33 +01:00
harraiken b323956f4b Add bounds checking and implement reclamation for large expansion pool allocations 2026-03-25 15:03:33 +01:00
harraiken 6e992f3005 Set PTE frame for non-paged pool allocations 2026-03-25 15:03:33 +01:00
harraiken f1b9d57bf7 Strip MM_POOL_PROTECTED flag to maintain NT compatibility and ensure correct pool tracking hash lookups 2026-03-25 15:03:33 +01:00
harraiken f18c9ca5b4 Add expansion table and overflow handling for pool tag tracking 2026-03-25 15:03:33 +01:00
harraiken 5fa948d57e Update pool tracking statistics when resizing big allocations table 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 95a3b5d7e2 Refactor big allocation tracker to use Tag 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 c575352f90 Update panic invocations with detailed error context 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 4f16957016 Ensure correct PTE value assignment via accessors 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 60d8844afe Refactor panic calls in memory manager 2026-03-25 15:03:33 +01:00
harraiken d39ddabd04 Calculate virtual address per page when initializing PFN entries 2026-03-25 15:03:33 +01:00
harraiken 6044dbaac9 Initialize system PTE pool for non-paged expansion pool 2026-03-25 15:03:33 +01:00
harraiken 3d2be65545 Make MM::Pte::InitializeSystemPtePool public 2026-03-25 15:03:33 +01:00
harraiken caff02383c Correct PTE mapping logic during multiple page allocation 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 72b3fe8209 Set up owner pointers for all pages during pool initialization 2026-03-25 15:03:33 +01:00
harraiken a1899fd1fa Implement canonical address validation routine 2026-03-25 15:03:33 +01:00
harraiken 5748e73853 Remove redundant static initialization of LowestPhysicalPage 2026-03-25 15:03:33 +01:00
harraiken 792157eab1 Improve type safety of physical page boundaries initialization 2026-03-25 15:03:33 +01:00
harraiken 14276179a7 Correct physical memory range detection 2026-03-25 15:03:33 +01:00
harraiken 71684314c7 Fix uninitialized PTE pages causing memory corruption 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 6c6b1f6a52 Initialize paged pool after PFN database setup 2026-03-25 15:03:33 +01:00
harraiken 706aca6e20 Initialize paged pool alongside non-paged pool 2026-03-25 15:03:33 +01:00
harraiken cd60cd7b1a Implement page allocation interface 2026-03-25 15:03:33 +01:00
harraiken a6b050ddf2 Correct comment phrasing 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 50654a28b5 Add definition for guarded PTE flag and remove hardcoded value 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 c303694384 Reorder initialization sequence and flush TLB 2026-03-25 15:03:33 +01:00
harraiken 4de76886ee Map PDE and PTE ranges for i686 non-paged pool 2026-03-25 15:03:33 +01:00
harraiken 420a66629b Fix boot image size alignment calculation 2026-03-25 15:03:33 +01:00
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