Cancel redefinition of DOSBase for the 'cdrom' test utility. Now the
[AROS.git] / rom / kernel / tlsf.h
blobd9fc50e201931c16760606f91145b1262a9d8222
1 #ifndef _TLSF_H
2 #define _TLSF_H
4 #ifndef EXEC_TYPES_H
5 #include <exec/types.h>
6 #endif
8 #ifndef EXEC_MEMHEADEREXT_H
9 #include <exec/memheaderext.h>
10 #endif
12 typedef APTR (*autogrow_get)(APTR, IPTR *);
13 typedef VOID (*autogrow_release)(APTR, APTR, IPTR);
15 /* Initialization and memory management */
16 APTR tlsf_init(struct MemHeaderExt * mhe);
17 APTR tlsf_init_autogrow(struct MemHeaderExt * mhe, IPTR puddle_size, autogrow_get grow_function, autogrow_release release_function, APTR autogrow_data);
18 VOID tlsf_destroy(struct MemHeaderExt * mhe);
19 VOID tlsf_add_memory(struct MemHeaderExt * mhe, APTR memory, IPTR size);
20 VOID tlsf_add_memory_and_merge(struct MemHeaderExt * mhe, APTR memory, IPTR size);
22 /* Allocation functions */
23 APTR tlsf_malloc(struct MemHeaderExt * mhe, IPTR size, ULONG * flags);
24 VOID tlsf_freemem(struct MemHeaderExt * mhe, APTR ptr, IPTR size);
25 VOID tlsf_freevec(struct MemHeaderExt * mhe, APTR ptr);
26 APTR tlsf_realloc(struct MemHeaderExt * mhe, APTR ptr, IPTR new_size);
27 APTR tlsf_allocabs(struct MemHeaderExt * mhe, IPTR size, APTR ptr);
29 /* Query functions */
30 IPTR tlsf_avail(struct MemHeaderExt * mhe, ULONG requirements);
31 BOOL tlsf_in_bounds(struct MemHeaderExt * mhe, APTR begin, APTR end);
33 /* Initialization of MemHeader */
34 void krnCreateTLSFMemHeader(CONST_STRPTR name, BYTE pri, APTR start, IPTR size, ULONG flags);
35 struct MemHeader * krnConvertMemHeaderToTLSF(struct MemHeader * source);
37 #endif /* _TLSF_H */