Luna/kernel/src/memory/MemoryManager.h

26 lines
582 B
C
Raw Normal View History

2022-11-13 13:29:15 +00:00
#pragma once
#include <Result.h>
#include <Types.h>
namespace MemoryManager
{
void init();
Result<void> protect_kernel_sections();
2022-11-13 13:29:15 +00:00
Result<u64> alloc_physical_page();
Result<void> free_physical_page(u64 page);
void lock_page(u64 page);
void lock_pages(u64 pages, u64 count);
Result<void> remap(u64 address, usize count, int flags);
Result<void> remap_unaligned(u64 address, usize count, int flags);
bool validate_readable_page(u64 address);
bool validate_writable_page(u64 address);
u64 free();
u64 used();
u64 reserved();
2022-11-13 13:29:15 +00:00
}