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