1 #ifndef __HEAP_API__ 2 #define __HEAP_API__ 3 #include "stdint.h" 4 #include "string.h" 5 #include "multi_heap.h" 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 #define SYSPOOL_PURE __attribute__((__const__)) 12 13 void syspool_init(void); 14 void syspool_init_specific_size(uint32_t size); 15 int syspool_free_size(void); 16 int syspool_get_buff(uint8_t **buff, uint32_t size); 17 int syspool_get_available(uint8_t **buff); 18 uint8_t* syspool_start_addr(void) SYSPOOL_PURE; 19 uint32_t syspool_total_size(void); 20 uint32_t syspool_original_size(void) SYSPOOL_PURE; 21 22 #if defined(A2DP_LDAC_ON) 23 int syspool_force_used_size(uint32_t size); 24 #endif 25 26 #define heap_malloc multi_heap_malloc 27 28 #define heap_free multi_heap_free 29 30 #define heap_realloc multi_heap_realloc 31 32 #define heap_get_allocated_size multi_heap_get_allocated_size 33 34 #define heap_register multi_heap_register 35 36 #define heap_free_size multi_heap_free_size 37 38 #define heap_minimum_free_size multi_heap_minimum_free_size 39 40 #define heap_get_info multi_heap_get_info 41 42 #define heap_dump multi_heap_dump 43 44 #define heap_check multi_heap_check 45 46 typedef struct multi_heap_info *heap_handle_t; 47 heap_handle_t heap_register(void *start, size_t size); 48 void *heap_malloc(heap_handle_t heap, size_t size); 49 void heap_free(heap_handle_t heap, void *p); 50 void *heap_realloc(heap_handle_t heap, void *p, size_t size); 51 size_t heap_get_allocated_size(heap_handle_t heap, void *p); 52 void heap_set_lock(heap_handle_t heap, void* lock); 53 void heap_dump(heap_handle_t heap); 54 bool heap_check(heap_handle_t heap, bool print_errors); 55 size_t heap_free_size(heap_handle_t heap); 56 size_t heap_minimum_free_size(heap_handle_t heap); 57 void heap_get_info(heap_handle_t heap, multi_heap_info_t *info); 58 void heap_memory_info(heap_handle_t heap, 59 size_t *total, 60 size_t *used, 61 size_t *max_used); 62 63 #if 0 64 void *malloc(size_t size); 65 void free(void *p); 66 void *calloc(size_t nmemb, size_t size); 67 void *realloc(void *ptr, size_t size); 68 #endif 69 void med_heap_init(void *begin_addr, size_t size); 70 void med_heap_set_cp(int switch_cp); 71 void med_heap_add_block(void *begin_addr, size_t size); 72 void *med_malloc(size_t size); 73 void med_free(void *p); 74 void *med_calloc(size_t nmemb, size_t size); 75 void *med_realloc(void *ptr, size_t size); 76 void med_memory_info(size_t *total, 77 size_t *used, 78 size_t *max_used); 79 80 #ifdef __cplusplus 81 } 82 #endif 83 #endif 84