• 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 typedef int (*MallocPrctlType)(int, ...);
22 
23 typedef struct mallinfo (*MallinfoType)(void);
24 typedef struct mallinfo2 (*Mallinfo2Type)(void);
25 typedef int (*MallocIterateType)(void*, size_t, void (*callback)(void*, size_t, void*), void*);
26 typedef void (*MallocDisableType)(void);
27 typedef void (*MallocEnableType)(void);
28 typedef int (*MallocInfoType)(int, FILE*);
29 typedef void (*MallocStatsPrintType)(void (*) (void *, const char *), void *, const char *);
30 typedef int (*MalloptType)(int, int);
31 typedef ssize_t (*MallocBacktraceType)(void*, uintptr_t*, size_t);
32 typedef void (*MemTrace)(void*, size_t, const char*, bool);
33 
34 typedef bool (*GetHookFlagType)();
35 typedef bool (*SetHookFlagType)(bool);
36 
37 struct MallocDispatchType {
38 	MallocMmapType mmap;
39 	MallocMunmapType munmap;
40 	MallocMallocType malloc;
41 	MallocCallocType calloc;
42 	MallocReallocType realloc;
43 	MallocVallocType valloc;
44 	MallocFreeType free;
45 	MallocMemalignType memalign;
46 	MallocMallocUsableSizeType malloc_usable_size;
47 	MallinfoType mallinfo;
48 	Mallinfo2Type mallinfo2;
49 	MallocIterateType malloc_iterate;
50 	MallocDisableType malloc_disable;
51 	MallocEnableType malloc_enable;
52 	MallocInfoType malloc_info;
53 	MallocStatsPrintType malloc_stats_print;
54 	MalloptType mallopt;
55 	MallocBacktraceType malloc_backtrace;
56 	GetHookFlagType get_hook_flag;
57 	SetHookFlagType set_hook_flag;
58 	MemTrace memtrace;
59 	MallocPrctlType prctl;
60 };
61 #ifdef __cplusplus
62 }
63 #endif
64 
65 #endif
66