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