Zephyr API
4.4.99
A Scalable Open Source RTOS
Toggle main menu visibility
Loading...
Searching...
No Matches
shared_multi_heap.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2021 Carlo Caione, <
[email protected]
>
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
16
extern
"C"
{
17
#endif
18
26
62
69
enum
shared_multi_heap_attr
{
71
SMH_REG_ATTR_CACHEABLE
,
72
74
SMH_REG_ATTR_NON_CACHEABLE
,
75
77
SMH_REG_ATTR_EXTERNAL
,
78
80
SMH_REG_ATTR_NUM
,
81
};
82
84
#define MAX_SHARED_MULTI_HEAP_ATTR SMH_REG_ATTR_NUM
85
92
struct
shared_multi_heap_region
{
94
uint32_t
attr
;
95
97
uintptr_t
addr
;
98
100
size_t
size
;
101
};
102
117
int
shared_multi_heap_pool_init
(
void
);
118
132
void
*
shared_multi_heap_alloc
(
enum
shared_multi_heap_attr
attr,
size_t
bytes);
133
148
void
*
shared_multi_heap_aligned_alloc
(
enum
shared_multi_heap_attr
attr,
149
size_t
align,
size_t
bytes);
150
162
void
shared_multi_heap_free
(
void
*block);
163
177
int
shared_multi_heap_add
(
struct
shared_multi_heap_region
*region,
void
*user_data);
178
201
void
*
shared_multi_heap_realloc
(
enum
shared_multi_heap_attr
attr,
void
*ptr,
size_t
bytes);
202
206
207
#ifdef __cplusplus
208
}
209
#endif
210
211
#endif
/* ZEPHYR_INCLUDE_MULTI_HEAP_SHARED_MULTI_HEAP_H_ */
shared_multi_heap_add
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
shared_multi_heap_attr
SMH region attributes enumeration type.
Definition
shared_multi_heap.h:69
shared_multi_heap_aligned_alloc
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.
shared_multi_heap_realloc
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.
shared_multi_heap_pool_init
int shared_multi_heap_pool_init(void)
Init the pool.
shared_multi_heap_alloc
void * shared_multi_heap_alloc(enum shared_multi_heap_attr attr, size_t bytes)
Allocate memory from the memory shared multi-heap pool.
shared_multi_heap_free
void shared_multi_heap_free(void *block)
Free memory from the shared multi-heap pool.
SMH_REG_ATTR_NUM
@ SMH_REG_ATTR_NUM
must be the last item
Definition
shared_multi_heap.h:80
SMH_REG_ATTR_NON_CACHEABLE
@ SMH_REG_ATTR_NON_CACHEABLE
non-cacheable
Definition
shared_multi_heap.h:74
SMH_REG_ATTR_EXTERNAL
@ SMH_REG_ATTR_EXTERNAL
external Memory
Definition
shared_multi_heap.h:77
SMH_REG_ATTR_CACHEABLE
@ SMH_REG_ATTR_CACHEABLE
cacheable
Definition
shared_multi_heap.h:71
uint32_t
__UINT32_TYPE__ uint32_t
Definition
stdint.h:90
uintptr_t
__UINTPTR_TYPE__ uintptr_t
Definition
stdint.h:105
shared_multi_heap_region
SMH region struct.
Definition
shared_multi_heap.h:92
shared_multi_heap_region::size
size_t size
Memory heap size in bytes.
Definition
shared_multi_heap.h:100
shared_multi_heap_region::attr
uint32_t attr
Memory heap attribute.
Definition
shared_multi_heap.h:94
shared_multi_heap_region::addr
uintptr_t addr
Memory heap starting virtual address.
Definition
shared_multi_heap.h:97
zephyr
multi_heap
shared_multi_heap.h
Generated on
for Zephyr API by
1.17.0