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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| /*
| * void *
| * chunk_alloc(void *new_addr, size_t size, size_t alignment, bool *zero,
| * bool *commit, unsigned arena_ind);
| */
| typedef void *(chunk_alloc_t)(void *, size_t, size_t, bool *, bool *, unsigned);
|
| /*
| * bool
| * chunk_dalloc(void *chunk, size_t size, bool committed, unsigned arena_ind);
| */
| typedef bool (chunk_dalloc_t)(void *, size_t, bool, unsigned);
|
| /*
| * bool
| * chunk_commit(void *chunk, size_t size, size_t offset, size_t length,
| * unsigned arena_ind);
| */
| typedef bool (chunk_commit_t)(void *, size_t, size_t, size_t, unsigned);
|
| /*
| * bool
| * chunk_decommit(void *chunk, size_t size, size_t offset, size_t length,
| * unsigned arena_ind);
| */
| typedef bool (chunk_decommit_t)(void *, size_t, size_t, size_t, unsigned);
|
| /*
| * bool
| * chunk_purge(void *chunk, size_t size, size_t offset, size_t length,
| * unsigned arena_ind);
| */
| typedef bool (chunk_purge_t)(void *, size_t, size_t, size_t, unsigned);
|
| /*
| * bool
| * chunk_split(void *chunk, size_t size, size_t size_a, size_t size_b,
| * bool committed, unsigned arena_ind);
| */
| typedef bool (chunk_split_t)(void *, size_t, size_t, size_t, bool, unsigned);
|
| /*
| * bool
| * chunk_merge(void *chunk_a, size_t size_a, void *chunk_b, size_t size_b,
| * bool committed, unsigned arena_ind);
| */
| typedef bool (chunk_merge_t)(void *, size_t, void *, size_t, bool, unsigned);
|
| typedef struct {
| chunk_alloc_t *alloc;
| chunk_dalloc_t *dalloc;
| chunk_commit_t *commit;
| chunk_decommit_t *decommit;
| chunk_purge_t *purge;
| chunk_split_t *split;
| chunk_merge_t *merge;
| } chunk_hooks_t;
|
|