• 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* (*MallocAlignedAllocType)(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 typedef bool (*SendHookMiscData)(uint64_t, const char*, size_t, uint32_t);
37 typedef void* (*GetHookConfig)();
38 
39 struct MallocDispatchType {
40 	MallocMmapType mmap;
41 	MallocMunmapType munmap;
42 	MallocMallocType malloc;
43 	MallocCallocType calloc;
44 	MallocReallocType realloc;
45 	MallocVallocType valloc;
46 	MallocFreeType free;
47 	MallocAlignedAllocType aligned_alloc;
48 	MallocMallocUsableSizeType malloc_usable_size;
49 	MallinfoType mallinfo;
50 	Mallinfo2Type mallinfo2;
51 	MallocIterateType malloc_iterate;
52 	MallocDisableType malloc_disable;
53 	MallocEnableType malloc_enable;
54 	MallocInfoType malloc_info;
55 	MallocStatsPrintType malloc_stats_print;
56 	MalloptType mallopt;
57 	MallocBacktraceType malloc_backtrace;
58 	GetHookFlagType get_hook_flag;
59 	SetHookFlagType set_hook_flag;
60 	MemTrace memtrace;
61 	MallocPrctlType prctl;
62 };
63 #ifdef __cplusplus
64 }
65 #endif
66 
67 #endif
68