26 lines
480 B
C
26 lines
480 B
C
#ifndef MM_H
|
|
#define MM_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
#define PAGE_SIZE 4096u
|
|
|
|
static inline size_t mm_page_floor(size_t bytes)
|
|
{
|
|
return bytes & ~(PAGE_SIZE - 1u);
|
|
}
|
|
|
|
static inline size_t mm_page_ceil(size_t bytes)
|
|
{
|
|
return (bytes + PAGE_SIZE - 1u) & ~(PAGE_SIZE - 1u);
|
|
}
|
|
|
|
void mm_init(void);
|
|
void mm_register_ram_region(uint64_t base, size_t size);
|
|
size_t mm_get_total_ram(void);
|
|
size_t mm_get_kernel_address(void);
|
|
size_t mm_get_kernel_size(void);
|
|
|
|
#endif
|