123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- #pragma once
- #include <stdint.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct multi_heap_info *multi_heap_handle_t;
- void *multi_heap_aligned_alloc(multi_heap_handle_t heap, size_t size, size_t alignment);
- void *multi_heap_malloc(multi_heap_handle_t heap, size_t size);
- void __attribute__((deprecated)) multi_heap_aligned_free(multi_heap_handle_t heap, void *p);
- void multi_heap_free(multi_heap_handle_t heap, void *p);
- void *multi_heap_realloc(multi_heap_handle_t heap, void *p, size_t size);
- size_t multi_heap_get_allocated_size(multi_heap_handle_t heap, void *p);
- multi_heap_handle_t multi_heap_register(void *start, size_t size);
- void multi_heap_set_lock(multi_heap_handle_t heap, void* lock);
- void multi_heap_dump(multi_heap_handle_t heap);
- bool multi_heap_check(multi_heap_handle_t heap, bool print_errors);
- size_t multi_heap_free_size(multi_heap_handle_t heap);
- size_t multi_heap_minimum_free_size(multi_heap_handle_t heap);
- typedef struct {
- size_t total_free_bytes;
- size_t total_allocated_bytes;
- size_t largest_free_block;
- size_t minimum_free_bytes;
- size_t allocated_blocks;
- size_t free_blocks;
- size_t total_blocks;
- } multi_heap_info_t;
- void multi_heap_get_info(multi_heap_handle_t heap, multi_heap_info_t *info);
- #ifdef __cplusplus
- }
- #endif
|