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