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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/**
* Each slitter object class is uniquely identified by a non-zero
* 32-bit integer.
*
* Passing a zero-initialised `slitter_class` to `slitter_allocate`
* or `slitter_release` causes undefined behaviour.
*/
;
;
/**
* Registers a new allocation class, or dies trying.
*
* The config must be a valid pointer. On error, this function will abort.
*/
struct slitter_class ;
/**
* Updates the parent directory for the file-backed slabs' backing
* files. NULL resets to the default.
*
* The default directory is `TMPFILE`, or `/tmp/`, and will be used if
* this function is not called before the first file-backed slab
* allocation.
*
* It is safe to call this function at any time. However, the update
* will only take effect when Slitter maps a new 1 GB chunk of data.
*/
void ;
/**
* Returns a new allocation for the object class.
*
* On error, this function will abort.
*
* Behaviour is undefined if the `slitter_class` argument is
* zero-filled or was otherwise not returned by
* `slitter_class_register`.
*/
void *;
/**
* Passes ownership of `ptr` back to the object class.
*
* `ptr` must be NULL, or have been returned by a call to
* `slitter_alloc`.
*
* On error, this function will abort.
*
* Behaviour is undefined if the `slitter_class` argument is
* zero-filled or was otherwise not returned by
* `slitter_class_register`.
*/
void ;