summaryrefslogtreecommitdiff
path: root/malloc/block_allocator/allocator.h
blob: 98dd63e2386bab412d81c6ebe3fd11fc69b04362 (plain)
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
#ifndef ALLOCATOR_H
#define ALLOCATOR_H

#include <stddef.h>

struct blk_meta
{
    struct blk_meta *next;
    size_t size;
    char data[];
};

struct blk_allocator
{
    struct blk_meta *meta;
};

struct blk_allocator *blka_new(void);
void blka_delete(struct blk_allocator *blka);

struct blk_meta *blka_alloc(struct blk_allocator *blka, size_t size);
void blka_free(struct blk_meta *blk);
void blka_pop(struct blk_allocator *blka);

#endif /* !ALLOCATOR_H */