#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, u64 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(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); u64 free(); u64 used(); u64 reserved(); }