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