-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalloc.h
34 lines (24 loc) · 833 Bytes
/
alloc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef ALLOC_H
#define ALLOC_H
// ------------------------------------ //
static void* alloc_virtual_page(u64 size);
static void free_virtual_page(void* page, u64 size);
// ------------------------------------ //
typedef struct Stack {
byte* head;
byte* tail;
} Stack;
static Stack make_stack(u64 size);
static void* stack_alloc(u64 size);
// ------------------------------------ //
//
// General purpose allocators usually used for arrays.
// ... try to avoid these.
static void* alloc(u64 size);
static void free(void* p, u64 size);
static void* realloc(void* p, u64 oldsize, u64 newsize);
static void* copyalloc(void* p, u64 size);
static void* copyalloc_expand(void* p, u64 old_size, u64 new_size);
#define real_stack_alloc(size) __builtin_alloca(size)
// ------------------------------------ //
#endif // ALLOC_H