diff options
Diffstat (limited to 'mem/buddymap.h')
-rw-r--r-- | mem/buddymap.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mem/buddymap.h b/mem/buddymap.h new file mode 100644 index 0000000..2f4f5dc --- /dev/null +++ b/mem/buddymap.h @@ -0,0 +1,21 @@ +#ifndef JOVE_MEMORY_BUDDYMAP_H +#define JOVE_MEMORY_BUDDYMAP_H 1 + +#include "memory.h" +#include <stdint.h> +#include <stddef.h> + +#define MEMMAP_BUDDY_LIMIT (4 * GiB) + +void mem_buddy_set_range(uintptr_t base, size_t length); +void mem_buddy_free_range(uintptr_t base, size_t length); +uintptr_t mem_buddy_takefree(size_t layer); + +#define mem_buddy_takefree_4k() mem_buddy_takefree(0) +#define mem_buddy_takefree_8k() mem_buddy_takefree(1) +#define mem_buddy_takefree_16k() mem_buddy_takefree(2) +#define mem_buddy_takefree_32k() mem_buddy_takefree(3) + +void mem_buddy_setup(void); + +#endif |