1570af302Sopenharmony_ci#ifndef _MALLOC_H 2570af302Sopenharmony_ci#define _MALLOC_H 3570af302Sopenharmony_ci 4570af302Sopenharmony_ci#include <stdio.h> 5570af302Sopenharmony_ci#ifdef __cplusplus 6570af302Sopenharmony_ciextern "C" { 7570af302Sopenharmony_ci#endif 8570af302Sopenharmony_ci 9570af302Sopenharmony_ci#define __NEED_size_t 10570af302Sopenharmony_ci#define __NEED_ssize_t 11570af302Sopenharmony_ci#define __NEED_uintptr_t 12570af302Sopenharmony_ci 13570af302Sopenharmony_ci#include <bits/alltypes.h> 14570af302Sopenharmony_ci 15570af302Sopenharmony_civoid *malloc (size_t); 16570af302Sopenharmony_civoid *calloc (size_t, size_t); 17570af302Sopenharmony_civoid *realloc (void *, size_t); 18570af302Sopenharmony_civoid free (void *); 19570af302Sopenharmony_civoid *valloc (size_t); 20570af302Sopenharmony_civoid *memalign(size_t, size_t); 21570af302Sopenharmony_ci 22570af302Sopenharmony_cisize_t malloc_usable_size(void *); 23570af302Sopenharmony_ci 24570af302Sopenharmony_ci#define __MALLINFO_BODY \ 25570af302Sopenharmony_ci size_t arena; \ 26570af302Sopenharmony_ci size_t ordblks; \ 27570af302Sopenharmony_ci size_t smblks; \ 28570af302Sopenharmony_ci size_t hblks; \ 29570af302Sopenharmony_ci size_t hblkhd; \ 30570af302Sopenharmony_ci size_t usmblks; \ 31570af302Sopenharmony_ci size_t fsmblks; \ 32570af302Sopenharmony_ci size_t uordblks; \ 33570af302Sopenharmony_ci size_t fordblks; \ 34570af302Sopenharmony_ci size_t keepcost; 35570af302Sopenharmony_ci 36570af302Sopenharmony_cistruct mallinfo { __MALLINFO_BODY }; 37570af302Sopenharmony_ci 38570af302Sopenharmony_cistruct mallinfo mallinfo(void); 39570af302Sopenharmony_ci 40570af302Sopenharmony_cistruct mallinfo2 { __MALLINFO_BODY }; 41570af302Sopenharmony_ci 42570af302Sopenharmony_cistruct mallinfo2 mallinfo2(void); 43570af302Sopenharmony_ci 44570af302Sopenharmony_ciint malloc_iterate(void* base, size_t size, void (*callback)(void* base, size_t size, void* arg), void* arg); 45570af302Sopenharmony_civoid malloc_disable(void); 46570af302Sopenharmony_civoid malloc_enable(void); 47570af302Sopenharmony_ci 48570af302Sopenharmony_ciint malloc_info(int options, FILE* fp); 49570af302Sopenharmony_civoid malloc_stats_print(void (*write_cb) (void *, const char *), void *cbopaque, const char *opts); 50570af302Sopenharmony_ci 51570af302Sopenharmony_ci 52570af302Sopenharmony_ci#define M_SET_THREAD_CACHE -1001 53570af302Sopenharmony_ci#define M_THREAD_CACHE_ENABLE 1 54570af302Sopenharmony_ci#define M_THREAD_CACHE_DISABLE 0 55570af302Sopenharmony_ci 56570af302Sopenharmony_ci#define M_FLUSH_THREAD_CACHE -1002 57570af302Sopenharmony_ci 58570af302Sopenharmony_ci#define M_DELAYED_FREE -1003 59570af302Sopenharmony_ci#define M_DELAYED_FREE_ENABLE 1 60570af302Sopenharmony_ci#define M_DELAYED_FREE_DISABLE 0 61570af302Sopenharmony_ci 62570af302Sopenharmony_ci#define M_OHOS_CONFIG -1004 63570af302Sopenharmony_ci#define M_DISABLE_OPT_TCACHE 100 64570af302Sopenharmony_ci#define M_ENABLE_OPT_TCACHE 101 65570af302Sopenharmony_ci#define M_TCACHE_PERFORMANCE_MODE 102 66570af302Sopenharmony_ci#define M_TCACHE_NORMAL_MODE 103 67570af302Sopenharmony_ci 68570af302Sopenharmony_ci#define M_SET_SECURITY_LEVEL (-1005) 69570af302Sopenharmony_ci#define M_SECURITY_LEVEL_LOW 10 70570af302Sopenharmony_ci#define M_SECURITY_LEVEL_MID 11 71570af302Sopenharmony_ci#define M_SECURITY_LEVEL_HIGH 12 72570af302Sopenharmony_ci 73570af302Sopenharmony_ci#define M_ENABLE_CHECK_DOUBLE_FREE_DEFAULT (-1006) 74570af302Sopenharmony_ci#define M_CHECK_DOUBLE_FREE_DEFAULT_ENABLE 1 75570af302Sopenharmony_ci#define M_CHECK_DOUBLE_FREE_DEFAULT_DISABLE 0 76570af302Sopenharmony_ci 77570af302Sopenharmony_ci#define M_ENABLE_CHECK_DOUBLE_FREE_REDZONE (-1007) 78570af302Sopenharmony_ci#define M_CHECK_DOUBLE_FREE_REDZONE_ENABLE 1 79570af302Sopenharmony_ci#define M_CHECK_DOUBLE_FREE_REDZONE_DISABLE 0 80570af302Sopenharmony_ci 81570af302Sopenharmony_ci#define M_ENABLE_RANDOM_ALLOCATION (-1008) 82570af302Sopenharmony_ci#define M_RANDOM_ALLOCATION_ENABLE 1 83570af302Sopenharmony_ci#define M_RANDOM_ALLOCATION_DISABLE 0 84570af302Sopenharmony_ci 85570af302Sopenharmony_ci#define M_ENABLE_CHECK_USE_AFTER_FREE (-1009) 86570af302Sopenharmony_ci#define M_CHECK_USE_AFTER_FREE_ENABLE 1 87570af302Sopenharmony_ci#define M_CHECK_USE_AFTER_FREE_DISABLE 0 88570af302Sopenharmony_ci 89570af302Sopenharmony_ci#define M_ENABLE_CHECK_OVERFLOW_SLAB (-1010) 90570af302Sopenharmony_ci#define M_CHECK_OVERFLOW_SLAB_ENABLE 1 91570af302Sopenharmony_ci#define M_CHECK_OVERFLOW_SLAB_DISABLE 0 92570af302Sopenharmony_ci 93570af302Sopenharmony_ci#define M_ENABLE_CHECK_OVERFLOW_LARGE (-1011) 94570af302Sopenharmony_ci#define M_CHECK_OVERFLOW_LARGE_ENABLE 1 95570af302Sopenharmony_ci#define M_CHECK_OVERFLOW_LARGE_DISABLE 0 96570af302Sopenharmony_ci 97570af302Sopenharmony_ci#define M_ENABLE_QUARANTINE_DEFAULT (-1012) 98570af302Sopenharmony_ci#define M_QUARANTINE_ENABLE 1 99570af302Sopenharmony_ci#define M_QUARANTINE_DISABLE 0 100570af302Sopenharmony_ci 101570af302Sopenharmony_ci#define M_SET_QUARANTINE_SIZE (-1013) 102570af302Sopenharmony_ci 103570af302Sopenharmony_ci#define M_SET_QUARANTINE_MAX_BLOCK_SIZE (-1014) 104570af302Sopenharmony_ci 105570af302Sopenharmony_ciint mallopt(int param, int value); 106570af302Sopenharmony_cissize_t malloc_backtrace(void* pointer, uintptr_t* frames, size_t frame_count); 107570af302Sopenharmony_ci#ifdef __cplusplus 108570af302Sopenharmony_ci} 109570af302Sopenharmony_ci#endif 110570af302Sopenharmony_ci 111570af302Sopenharmony_ci#endif 112