Zephyr API Documentation 4.5.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
shared_multi_heap.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 Carlo Caione, <ccaione@baylibre.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
11
12#ifndef ZEPHYR_INCLUDE_MULTI_HEAP_SHARED_MULTI_HEAP_H_
13#define ZEPHYR_INCLUDE_MULTI_HEAP_SHARED_MULTI_HEAP_H_
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
26
66
86
88#define MAX_SHARED_MULTI_HEAP_ATTR SMH_REG_ATTR_NUM
89
106
122
136void *shared_multi_heap_alloc(enum shared_multi_heap_attr attr, size_t bytes);
137
153 size_t align, size_t bytes);
154
166void shared_multi_heap_free(void *block);
167
181int shared_multi_heap_add(struct shared_multi_heap_region *region, void *user_data);
182
205void *shared_multi_heap_realloc(enum shared_multi_heap_attr attr, void *ptr, size_t bytes);
206
210
211#ifdef __cplusplus
212}
213#endif
214
215#endif /* ZEPHYR_INCLUDE_MULTI_HEAP_SHARED_MULTI_HEAP_H_ */
int shared_multi_heap_add(struct shared_multi_heap_region *region, void *user_data)
Add an heap region to the shared multi-heap pool.
shared_multi_heap_attr
SMH region attributes enumeration type.
Definition shared_multi_heap.h:73
void * shared_multi_heap_aligned_alloc(enum shared_multi_heap_attr attr, size_t align, size_t bytes)
Allocate aligned memory from the memory shared multi-heap pool.
void * shared_multi_heap_realloc(enum shared_multi_heap_attr attr, void *ptr, size_t bytes)
Reallocate memory from the memory shared multi-heap pool.
int shared_multi_heap_pool_init(void)
Init the pool.
void * shared_multi_heap_alloc(enum shared_multi_heap_attr attr, size_t bytes)
Allocate memory from the memory shared multi-heap pool.
void shared_multi_heap_free(void *block)
Free memory from the shared multi-heap pool.
@ SMH_REG_ATTR_NUM
must be the last item
Definition shared_multi_heap.h:84
@ SMH_REG_ATTR_NON_CACHEABLE
non-cacheable
Definition shared_multi_heap.h:78
@ SMH_REG_ATTR_EXTERNAL
external Memory
Definition shared_multi_heap.h:81
@ SMH_REG_ATTR_CACHEABLE
cacheable
Definition shared_multi_heap.h:75
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:105
SMH region struct.
Definition shared_multi_heap.h:96
size_t size
Memory heap size in bytes.
Definition shared_multi_heap.h:104
uint32_t attr
Memory heap attribute.
Definition shared_multi_heap.h:98
uintptr_t addr
Memory heap starting virtual address.
Definition shared_multi_heap.h:101