• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _MUSL_MALLOC_DISPATCH_H
2 #define _MUSL_MALLOC_DISPATCH_H
3 
4 #include <stddef.h>
5 #include <stdint.h>
6 #include <stdio.h>
7 #include <stdbool.h>
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 typedef void* (*MallocMmapType) (void*, size_t, int, int, int, off_t);
13 typedef int (*MallocMunmapType) (void*, size_t);
14 typedef void* (*MallocMallocType)(size_t);
15 typedef void* (*MallocReallocType)(void*, size_t);
16 typedef void* (*MallocCallocType)(size_t, size_t);
17 typedef void* (*MallocVallocType)(size_t);
18 typedef void (*MallocFreeType)(void*);
19 typedef void* (*MallocMemalignType)(size_t, size_t);
20 typedef size_t (*MallocMallocUsableSizeType)(void*);
21 
22 typedef struct mallinfo (*MallinfoType)(void);
23 typedef struct mallinfo2 (*Mallinfo2Type)(void);
24 typedef int (*MallocIterateType)(void*, size_t, void (*callback)(void*, size_t, void*), void*);
25 typedef void (*MallocDisableType)(void);
26 typedef void (*MallocEnableType)(void);
27 typedef int (*MallocInfoType)(int, FILE*);
28 typedef void (*MallocStatsPrintType)(void (*) (void *, const char *), void *, const char *);
29 typedef int (*MalloptType)(int, int);
30 typedef ssize_t (*MallocBacktraceType)(void*, uintptr_t*, size_t);
31 
32 typedef bool (*GetHookFlagType)();
33 typedef bool (*SetHookFlagType)(bool);
34 
35 struct MallocDispatchType {
36 	MallocMmapType mmap;
37 	MallocMunmapType munmap;
38 	MallocMallocType malloc;
39 	MallocCallocType calloc;
40 	MallocReallocType realloc;
41 	MallocVallocType valloc;
42 	MallocFreeType free;
43 	MallocMemalignType memalign;
44 	MallocMallocUsableSizeType malloc_usable_size;
45 	MallinfoType mallinfo;
46 	Mallinfo2Type mallinfo2;
47 	MallocIterateType malloc_iterate;
48 	MallocDisableType malloc_disable;
49 	MallocEnableType malloc_enable;
50 	MallocInfoType malloc_info;
51 	MallocStatsPrintType malloc_stats_print;
52 	MalloptType mallopt;
53 	MallocBacktraceType malloc_backtrace;
54 	GetHookFlagType get_hook_flag;
55 	SetHookFlagType set_hook_flag;
56 };
57 #ifdef __cplusplus
58 }
59 #endif
60 
61 #endif
62