#pragma once #include #include namespace MemoryManager { void init(); Result protect_kernel_sections(); Result alloc_frame(); Result free_frame(u64 frame); void lock_frame(u64 frame); void lock_frames(u64 frames, usize count); Result remap(u64 address, usize count, int flags); Result remap_unaligned(u64 address, usize count, int flags); bool validate_readable_page(u64 address); bool validate_writable_page(u64 address); Result map_frames_at(u64 virt, u64 phys, usize count, int flags); Result alloc_at(u64 virt, usize count, int flags); Result unmap_owned(u64 virt, usize count); Result unmap_weak(u64 virt, usize count); usize free(); usize used(); usize reserved(); usize total(); }