5 #include <exec/types.h>
8 #ifndef EXEC_MEMHEADEREXT_H
9 #include <exec/memheaderext.h>
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
);
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
);