Go to the source code of this file.
◆ ZRTOS_VHEAP_TASK_SCHEDULER__EACH_TASK_BEGIN
#define ZRTOS_VHEAP_TASK_SCHEDULER__EACH_TASK_BEGIN |
( |
|
thiz, |
|
|
|
start_offset, |
|
|
|
pos, |
|
|
|
chunk, |
|
|
|
task |
|
) |
| |
Value: thiz \
,start_offset \
,pos \
,chunk \
){ \
) \
); \
{
#define ZRTOS_VHEAP__EACH_EX_BEGIN(thiz, start_offset, l, type, value)
void * zrtos_types__ptr_subtract(void *ptr, size_t byte_len)
void * zrtos_vheap_chunk__get_ptr(zrtos_vheap_chunk_t *thiz)
size_t zrtos_vheap_chunk__get_length(zrtos_vheap_chunk_t *thiz)
void * zrtos_types__ptr_add(void *ptr, size_t byte_len)
Definition at line 137 of file vheap_task_scheduler.h.
◆ ZRTOS_VHEAP_TASK_SCHEDULER__EACH_TASK_END
#define ZRTOS_VHEAP_TASK_SCHEDULER__EACH_TASK_END |
◆ zrtos_vheap_task_scheduler_t
◆ _zrtos_vheap_task_scheduler__get_active_task()
Definition at line 38 of file vheap_task_scheduler.h.
void * zrtos_types__ptr_subtract(void *ptr, size_t byte_len)
void * zrtos_vheap__get_last_address(zrtos_vheap_t *thiz)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ _zrtos_vheap_task_scheduler__on_tick()
void _zrtos_vheap_task_scheduler__on_tick |
( |
void |
| ) |
|
Definition at line 206 of file vheap_task_scheduler.h.
#define ZRTOS_DEBUG__CODE(code)
#define ZRTOS_ARCH__SET_STACK_PTR(ptr)
uint16_t ctx_switch_task_stack[100]
#define ZRTOS_ARCH__SAVE_CPU_STATE_EX(ptr)
#define ZRTOS_TYPES__GET_STATIC_ARRAY_LENGTH(arr)
zrtos_arch_stack_t * tmp_stack_ptr
volatile zrtos_vheap_task_scheduler_t zrtos_vheap_task_scheduler
void _zrtos_vheap_task_scheduler__switch_task(void)
◆ _zrtos_vheap_task_scheduler__restore_task()
static void _zrtos_vheap_task_scheduler__restore_task |
( |
void |
| ) |
|
|
static |
Definition at line 47 of file vheap_task_scheduler.h.
#define ZRTOS_ARCH__LOAD_CPU_STATE_EX(ptr)
#define ZRTOS_ARCH__RETURN_FROM_INTERRUPT()
zrtos_arch_stack_t * tmp_stack_ptr
volatile zrtos_vheap_task_scheduler_t zrtos_vheap_task_scheduler
◆ _zrtos_vheap_task_scheduler__set_active_task()
Definition at line 84 of file vheap_task_scheduler.h.
static void zrtos_vheap_task_scheduler__page_task_in(zrtos_vheap_chunk_t *chunk)
zrtos_vheap_chunk_t * zrtos_vheap__get_by_id(zrtos_vheap_t *thiz, zrtos_vheap_chunk_uid_t uid)
static void zrtos_vheap_task_scheduler__page_task_out(void)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ _zrtos_vheap_task_scheduler__switch_task()
void _zrtos_vheap_task_scheduler__switch_task |
( |
void |
| ) |
|
Definition at line 158 of file vheap_task_scheduler.h.
#define ZRTOS_VHEAP_TASK_SCHEDULER__EACH_TASK_END
static void _zrtos_vheap_task_scheduler__restore_task(void)
bool zrtos_vheap_task__is_idle(zrtos_vheap_task_t *thiz)
bool zrtos_vheap_task_scheduler__has_enough_stack_space(zrtos_vheap_task_t *task, zrtos_vheap_chunk_t *chunk)
zrtos_vheap_chunk_uid_t zrtos_vheap_chunk__get_uid(zrtos_vheap_chunk_t *thiz)
#define ZRTOS_VHEAP_TASK_SCHEDULER__EACH_TASK_BEGIN(thiz, start_offset, pos, chunk, task)
void zrtos_vheap_task__on_tick(zrtos_vheap_task_t *thiz)
static bool _zrtos_vheap_task_scheduler__set_active_task(zrtos_vheap_chunk_uid_t uid)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ zrtos_vheap_task_scheduler__delay_ms()
Definition at line 230 of file vheap_task_scheduler.h.
void _zrtos_vheap_task_scheduler__on_tick(void)
void zrtos_vheap_task__set_delay_ms(zrtos_vheap_task_t *thiz, zrtos_vheap_task_tick_type_t ms)
zrtos_vheap_task_t * _zrtos_vheap_task_scheduler__get_active_task(void)
◆ zrtos_vheap_task_scheduler__get_heap()
◆ zrtos_vheap_task_scheduler__has_enough_stack_space()
Definition at line 101 of file vheap_task_scheduler.h.
#define ZRTOS_TYPES__MAX(a, b)
#define ZRTOS_ARCH__FATAL()
size_t zrtos_vheap_chunk__get_length(zrtos_vheap_chunk_t *thiz)
size_t zrtos_vheap_task__get_stack_size_min(zrtos_vheap_task_t *thiz)
zrtos_arch_stack_t * tmp_stack_ptr
volatile zrtos_vheap_task_scheduler_t zrtos_vheap_task_scheduler
size_t _zrtos_vheap__get_free_space_ex(zrtos_vheap_t *thiz, void *stack_ptr)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ zrtos_vheap_task_scheduler__page_task_in()
Definition at line 69 of file vheap_task_scheduler.h.
zrtos_error_t zrtos_vheap_task__get_errno(zrtos_vheap_task_t *thiz)
zrtos_arch_stack_t * tmp_stack_ptr
volatile zrtos_vheap_task_scheduler_t zrtos_vheap_task_scheduler
zrtos_arch_stack_t * zrtos_vheap_task__get_stack_ptr(zrtos_vheap_task_t *thiz)
zrtos_vheap_task_t * _zrtos_vheap_task_scheduler__get_active_task(void)
void * zrtos_vheap__page_in(zrtos_vheap_t *thiz, zrtos_vheap_chunk_t *chunk)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ zrtos_vheap_task_scheduler__page_task_out()
static void zrtos_vheap_task_scheduler__page_task_out |
( |
void |
| ) |
|
|
static |
Definition at line 53 of file vheap_task_scheduler.h.
void zrtos_vheap_task__set_errno(zrtos_vheap_task_t *thiz, zrtos_error_t errno)
void zrtos_vheap_task__set_stack_ptr(zrtos_vheap_task_t *thiz, zrtos_arch_stack_t *stack_ptr)
zrtos_vheap_chunk_t * zrtos_vheap__get_by_type_ex(zrtos_vheap_t *thiz, zrtos_vheap_type_t type)
void * zrtos_vheap__get_last_address(zrtos_vheap_t *thiz)
size_t zrtos_types__ptr_get_byte_distance(void *bigger, void *smaller)
zrtos_arch_stack_t * tmp_stack_ptr
volatile zrtos_vheap_task_scheduler_t zrtos_vheap_task_scheduler
zrtos_vheap_task_t * _zrtos_vheap_task_scheduler__get_active_task(void)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
void zrtos_vheap__page_out(zrtos_vheap_t *thiz, zrtos_vheap_chunk_t *chunk, size_t length)
◆ zrtos_vheap_task_scheduler__set_heap()
void zrtos_vheap_task_scheduler__set_heap |
( |
zrtos_vheap_t * |
heap | ) |
|
◆ zrtos_vheap_task_scheduler__start()
bool zrtos_vheap_task_scheduler__start |
( |
void |
| ) |
|
Definition at line 122 of file vheap_task_scheduler.h.
static void _zrtos_vheap_task_scheduler__restore_task(void)
static void zrtos_vheap_task_scheduler__page_task_in(zrtos_vheap_chunk_t *chunk)
zrtos_vheap_chunk_t * zrtos_vheap__get_by_type_ex(zrtos_vheap_t *thiz, zrtos_vheap_type_t type)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ zrtos_vheap_task_scheduler__trampoline_cb()
void zrtos_vheap_task_scheduler__trampoline_cb |
( |
zrtos_vheap_task_t * |
thiz, |
|
|
void *(*)(void *args) |
callback, |
|
|
void * |
args |
|
) |
| |
Definition at line 238 of file vheap_task_scheduler.h.
243 void *ret = callback(args);
253 __builtin_unreachable();
void _zrtos_vheap_task_scheduler__on_tick(void)
void zrtos_vheap_task__set_return_value(zrtos_vheap_task_t *thiz, void *return_value)
zrtos_vheap_chunk_t * zrtos_vheap__get_by_type_ex(zrtos_vheap_t *thiz, zrtos_vheap_type_t type)
void zrtos_vheap_chunk__set_type(zrtos_vheap_chunk_t *thiz, zrtos_vheap_type_t type)
zrtos_vheap_t * zrtos_vheap_task_scheduler__get_heap(void)
◆ zrtos_vheap_task_scheduler