aboutsummaryrefslogtreecommitdiff
path: root/src/std/memory.h
blob: d202e97314a36dad12718df557e69054a752d195 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

#pragma once
#include <stddef.h>

#include "types.h"

typedef struct {
    size cap;
    byte *beg;
    byte *end;
} Arena;

Arena Arena_new(size cap);
#define new(a, T, n) (T *)alloc(a, n, sizeof(T), _Alignof(T))
void *alloc(Arena *a, size count, size tsize, size align);
size Arena_get_used(Arena a);
void Arena_reset(Arena *a);