summaryrefslogtreecommitdiffstats
path: root/mem/buddymap.h
blob: 2f4f5dc15134117558cfdddba406aa9d01ec58ec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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