blob: 39ba37e64e276bc863a85910a766b74efdccfbae (
plain) (
blame)
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
|
#ifndef DEF_HEAP_H
#define DEF_HEAP_H
#include "types.h"
struct heap_header {
uint32_t magic;
uint32_t is_hole;
size_t size;
};
struct heap_footer {
uint32_t magic;
struct heap_header *header;
};
struct heap {
struct heap_header **idx;
uint32_t idxused;
size_t start_addr, end_addr, max_end;
};
void heap_create(struct heap *heap, size_t start, size_t idxsize, size_t datasize, size_t maxdatasize);
void* heap_alloc(struct heap *heap, size_t sz);
void heap_free(struct heap *heap, void* ptr);
#endif
|