1 #ifndef _MALLOC_H 2 #define _MALLOC_H 3 4 #include <stdio.h> 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 9 #define __NEED_size_t 10 #define __NEED_ssize_t 11 #define __NEED_uintptr_t 12 13 #include <bits/alltypes.h> 14 15 void *malloc (size_t); 16 void *calloc (size_t, size_t); 17 void *realloc (void *, size_t); 18 void free (void *); 19 void *valloc (size_t); 20 void *memalign(size_t, size_t); 21 22 size_t malloc_usable_size(void *); 23 24 #define __MALLINFO_BODY \ 25 size_t arena; \ 26 size_t ordblks; \ 27 size_t smblks; \ 28 size_t hblks; \ 29 size_t hblkhd; \ 30 size_t usmblks; \ 31 size_t fsmblks; \ 32 size_t uordblks; \ 33 size_t fordblks; \ 34 size_t keepcost; 35 36 struct mallinfo { __MALLINFO_BODY }; 37 38 struct mallinfo mallinfo(void); 39 40 struct mallinfo2 { __MALLINFO_BODY }; 41 42 struct mallinfo2 mallinfo2(void); 43 44 int malloc_iterate(void* base, size_t size, void (*callback)(void* base, size_t size, void* arg), void* arg); 45 void malloc_disable(void); 46 void malloc_enable(void); 47 48 int malloc_info(int options, FILE* fp); 49 void malloc_stats_print(void (*write_cb) (void *, const char *), void *cbopaque, const char *opts); 50 51 52 #define M_SET_THREAD_CACHE -1001 53 #define M_THREAD_CACHE_ENABLE 1 54 #define M_THREAD_CACHE_DISABLE 0 55 56 #define M_FLUSH_THREAD_CACHE -1002 57 58 #define M_DELAYED_FREE -1003 59 #define M_DELAYED_FREE_ENABLE 1 60 #define M_DELAYED_FREE_DISABLE 0 61 62 #define M_OHOS_CONFIG -1004 63 #define M_DISABLE_OPT_TCACHE 100 64 #define M_ENABLE_OPT_TCACHE 101 65 #define M_TCACHE_PERFORMANCE_MODE 102 66 #define M_TCACHE_NORMAL_MODE 103 67 68 #define M_SET_SECURITY_LEVEL (-1005) 69 #define M_SECURITY_LEVEL_LOW 10 70 #define M_SECURITY_LEVEL_MID 11 71 #define M_SECURITY_LEVEL_HIGH 12 72 73 #define M_ENABLE_CHECK_DOUBLE_FREE_DEFAULT (-1006) 74 #define M_CHECK_DOUBLE_FREE_DEFAULT_ENABLE 1 75 #define M_CHECK_DOUBLE_FREE_DEFAULT_DISABLE 0 76 77 #define M_ENABLE_CHECK_DOUBLE_FREE_REDZONE (-1007) 78 #define M_CHECK_DOUBLE_FREE_REDZONE_ENABLE 1 79 #define M_CHECK_DOUBLE_FREE_REDZONE_DISABLE 0 80 81 #define M_ENABLE_RANDOM_ALLOCATION (-1008) 82 #define M_RANDOM_ALLOCATION_ENABLE 1 83 #define M_RANDOM_ALLOCATION_DISABLE 0 84 85 #define M_ENABLE_CHECK_USE_AFTER_FREE (-1009) 86 #define M_CHECK_USE_AFTER_FREE_ENABLE 1 87 #define M_CHECK_USE_AFTER_FREE_DISABLE 0 88 89 #define M_ENABLE_CHECK_OVERFLOW_SLAB (-1010) 90 #define M_CHECK_OVERFLOW_SLAB_ENABLE 1 91 #define M_CHECK_OVERFLOW_SLAB_DISABLE 0 92 93 #define M_ENABLE_CHECK_OVERFLOW_LARGE (-1011) 94 #define M_CHECK_OVERFLOW_LARGE_ENABLE 1 95 #define M_CHECK_OVERFLOW_LARGE_DISABLE 0 96 97 #define M_ENABLE_QUARANTINE_DEFAULT (-1012) 98 #define M_QUARANTINE_ENABLE 1 99 #define M_QUARANTINE_DISABLE 0 100 101 #define M_SET_QUARANTINE_SIZE (-1013) 102 103 #define M_SET_QUARANTINE_MAX_BLOCK_SIZE (-1014) 104 105 int mallopt(int param, int value); 106 ssize_t malloc_backtrace(void* pointer, uintptr_t* frames, size_t frame_count); 107 #ifdef __cplusplus 108 } 109 #endif 110 111 #endif 112