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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| typedef struct extent_hooks_s extent_hooks_t;
|
| /*
| * void *
| * extent_alloc(extent_hooks_t *extent_hooks, void *new_addr, size_t size,
| * size_t alignment, bool *zero, bool *commit, unsigned arena_ind);
| */
| typedef void *(extent_alloc_t)(extent_hooks_t *, void *, size_t, size_t, bool *,
| bool *, unsigned);
|
| /*
| * bool
| * extent_dalloc(extent_hooks_t *extent_hooks, void *addr, size_t size,
| * bool committed, unsigned arena_ind);
| */
| typedef bool (extent_dalloc_t)(extent_hooks_t *, void *, size_t, bool,
| unsigned);
|
| /*
| * void
| * extent_destroy(extent_hooks_t *extent_hooks, void *addr, size_t size,
| * bool committed, unsigned arena_ind);
| */
| typedef void (extent_destroy_t)(extent_hooks_t *, void *, size_t, bool,
| unsigned);
|
| /*
| * bool
| * extent_commit(extent_hooks_t *extent_hooks, void *addr, size_t size,
| * size_t offset, size_t length, unsigned arena_ind);
| */
| typedef bool (extent_commit_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
| unsigned);
|
| /*
| * bool
| * extent_decommit(extent_hooks_t *extent_hooks, void *addr, size_t size,
| * size_t offset, size_t length, unsigned arena_ind);
| */
| typedef bool (extent_decommit_t)(extent_hooks_t *, void *, size_t, size_t,
| size_t, unsigned);
|
| /*
| * bool
| * extent_purge(extent_hooks_t *extent_hooks, void *addr, size_t size,
| * size_t offset, size_t length, unsigned arena_ind);
| */
| typedef bool (extent_purge_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
| unsigned);
|
| /*
| * bool
| * extent_split(extent_hooks_t *extent_hooks, void *addr, size_t size,
| * size_t size_a, size_t size_b, bool committed, unsigned arena_ind);
| */
| typedef bool (extent_split_t)(extent_hooks_t *, void *, size_t, size_t, size_t,
| bool, unsigned);
|
| /*
| * bool
| * extent_merge(extent_hooks_t *extent_hooks, void *addr_a, size_t size_a,
| * void *addr_b, size_t size_b, bool committed, unsigned arena_ind);
| */
| typedef bool (extent_merge_t)(extent_hooks_t *, void *, size_t, void *, size_t,
| bool, unsigned);
|
| struct extent_hooks_s {
| extent_alloc_t *alloc;
| extent_dalloc_t *dalloc;
| extent_destroy_t *destroy;
| extent_commit_t *commit;
| extent_decommit_t *decommit;
| extent_purge_t *purge_lazy;
| extent_purge_t *purge_forced;
| extent_split_t *split;
| extent_merge_t *merge;
| };
|
|