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