Go to the source code of this file.
◆ ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB
#define ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB |
( |
|
code | ) |
|
Value:do{ \
ZRTOS_ARCH__DISABLE_INTERRUPTS(); \
zrtos_task_scheduler.do_not_disturb++; \
ZRTOS_ARCH__ENABLE_INTERRUPTS(); \
do{ \
code; \
}while(0); \
ZRTOS_ARCH__DISABLE_INTERRUPTS(); \
zrtos_task_scheduler.do_not_disturb--; \
ZRTOS_ARCH__ENABLE_INTERRUPTS(); \
}while(0);
Definition at line 32 of file task_scheduler.h.
◆ ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB_EX
#define ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB_EX |
( |
|
is_locked, |
|
|
|
code |
|
) |
| |
Value:do{ \
ZRTOS_ARCH__DISABLE_INTERRUPTS(); \
zrtos_task_scheduler.do_not_disturb++; \
ZRTOS_ARCH__ENABLE_INTERRUPTS(); \
do{ \
code; \
}while(0); \
ZRTOS_ARCH__DISABLE_INTERRUPTS(); \
zrtos_task_scheduler.do_not_disturb--; \
ZRTOS_ARCH__ENABLE_INTERRUPTS(); \
}while(0);
zrtos_task_scheduler_t zrtos_task_scheduler
Definition at line 46 of file task_scheduler.h.
◆ ZRTOS_TASK_SCHEDULER__EACH_TASK
#define ZRTOS_TASK_SCHEDULER__EACH_TASK |
( |
|
node | ) |
|
Value: ,*sentinel = node \
,*next \
;({ \
node != sentinel; \
}) \
;node = next \
)
zrtos_task_t * zrtos_task__get_next_task(zrtos_task_t *thiz)
zrtos_task_t * _zrtos_task_scheduler__get_active_task(void)
Definition at line 209 of file task_scheduler.h.
◆ zrtos_task_scheduler_t
◆ _zrtos_task_scheduler__get_active_task()
zrtos_task_t* _zrtos_task_scheduler__get_active_task |
( |
void |
| ) |
|
Definition at line 61 of file task_scheduler.h.
zrtos_clist_node_t * zrtos_clist__get_root(zrtos_clist_t *thiz)
#define zrtos_types__get_container_of(ptr, type, member)
zrtos_task_scheduler_t zrtos_task_scheduler
◆ _zrtos_task_scheduler__get_sleep_task()
static zrtos_task_t* _zrtos_task_scheduler__get_sleep_task |
( |
void |
| ) |
|
|
static |
◆ _zrtos_task_scheduler__on_tick()
void _zrtos_task_scheduler__on_tick |
( |
void |
| ) |
|
Definition at line 158 of file task_scheduler.h.
#define ZRTOS_ARCH__LOAD_CPU_STATE_EX(ptr)
#define ZRTOS_ARCH__RETURN_FROM_INTERRUPT()
#define ZRTOS_ARCH__SAVE_CPU_STATE_EX(ptr)
zrtos_task_scheduler_t zrtos_task_scheduler
static bool _zrtos_task_scheduler__switch_task(void)
zrtos_arch_stack_t * tmp_stack_ptr
◆ _zrtos_task_scheduler__on_tick_ex()
static void _zrtos_task_scheduler__on_tick_ex |
( |
void |
| ) |
|
|
static |
◆ _zrtos_task_scheduler__set_active_task()
static bool _zrtos_task_scheduler__set_active_task |
( |
zrtos_task_t * |
task | ) |
|
|
static |
Definition at line 126 of file task_scheduler.h.
static void zrtos_task_scheduler__page_task_in(zrtos_task_t *task)
static void zrtos_task_scheduler__page_task_out(void)
◆ _zrtos_task_scheduler__switch_task()
static bool _zrtos_task_scheduler__switch_task |
( |
void |
| ) |
|
|
static |
Definition at line 132 of file task_scheduler.h.
139 }
while(task != active_task);
147 }
while(task != active_task);
void zrtos_task__on_tick(zrtos_task_t *thiz)
static bool _zrtos_task_scheduler__set_active_task(zrtos_task_t *task)
zrtos_task_t * zrtos_task__get_next_task(zrtos_task_t *thiz)
bool zrtos_task__is_ready(zrtos_task_t *thiz)
zrtos_task_t * _zrtos_task_scheduler__get_active_task(void)
static zrtos_task_t * _zrtos_task_scheduler__get_sleep_task(void)
◆ zrtos_task_scheduler__add_task()
Definition at line 68 of file task_scheduler.h.
#define ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB(code)
void zrtos_task__set_parent(zrtos_task_t *thiz, zrtos_task_t *parent)
zrtos_task_scheduler_t zrtos_task_scheduler
zrtos_task_t * _zrtos_task_scheduler__get_active_task(void)
bool zrtos_clist__push(zrtos_clist_t *thiz, zrtos_clist_node_t *node)
◆ zrtos_task_scheduler__delay_ms()
Definition at line 172 of file task_scheduler.h.
void zrtos_task__set_delay_ms(zrtos_task_t *thiz, zrtos_task_tick_t ms)
zrtos_task_t * _zrtos_task_scheduler__get_active_task(void)
static void _zrtos_task_scheduler__on_tick_ex(void)
◆ zrtos_task_scheduler__get_any_child()
Definition at line 220 of file task_scheduler.h.
#define ZRTOS_TASK_SCHEDULER__EACH_TASK(node)
zrtos_task_t * zrtos_task__get_parent(zrtos_task_t *thiz)
◆ zrtos_task_scheduler__has_task()
Definition at line 86 of file task_scheduler.h.
99 }
while(node != sentinel);
#define ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB(code)
zrtos_task_t * zrtos_task__get_next_task(zrtos_task_t *thiz)
zrtos_task_t * _zrtos_task_scheduler__get_active_task(void)
◆ zrtos_task_scheduler__init()
void zrtos_task_scheduler__init |
( |
| ) |
|
Definition at line 193 of file task_scheduler.h.
uint8_t zrtos_arch_stack_t
bool zrtos_task__init(zrtos_task_t *thiz, zrtos_arch_stack_t *stack_ptr)
bool zrtos_clist__init(zrtos_clist_t *thiz)
zrtos_task_scheduler_t zrtos_task_scheduler
bool zrtos_clist__push(zrtos_clist_t *thiz, zrtos_clist_node_t *node)
static void _zrtos_task_scheduler__on_tick_ex(void)
◆ zrtos_task_scheduler__page_task_in()
static void zrtos_task_scheduler__page_task_in |
( |
zrtos_task_t * |
task | ) |
|
|
static |
Definition at line 118 of file task_scheduler.h.
zrtos_arch_stack_t * zrtos_task__get_stack_ptr(zrtos_task_t *thiz)
zrtos_task_scheduler_t zrtos_task_scheduler
zrtos_arch_stack_t * tmp_stack_ptr
zrtos_error_t zrtos_task__get_errno(zrtos_task_t *thiz)
void zrtos_clist__set_root(zrtos_clist_t *thiz, zrtos_clist_node_t *node)
◆ zrtos_task_scheduler__page_task_out()
static void zrtos_task_scheduler__page_task_out |
( |
void |
| ) |
|
|
static |
Definition at line 109 of file task_scheduler.h.
void zrtos_task__set_stack_ptr(zrtos_task_t *thiz, zrtos_arch_stack_t *stack_ptr)
zrtos_task_scheduler_t zrtos_task_scheduler
zrtos_arch_stack_t * tmp_stack_ptr
zrtos_task_t * _zrtos_task_scheduler__get_active_task(void)
void zrtos_task__set_errno(zrtos_task_t *thiz, zrtos_error_t error_code)
◆ zrtos_task_scheduler__remove_task()
bool zrtos_task_scheduler__remove_task |
( |
zrtos_task_t * |
task | ) |
|
Definition at line 77 of file task_scheduler.h.
#define ZRTOS_TASK_SCHEDULER__DO_NOT_DISTURB(code)
void zrtos_task__set_parent(zrtos_task_t *thiz, zrtos_task_t *parent)
bool zrtos_clist__delete(zrtos_clist_t *thiz, zrtos_clist_node_t *node)
zrtos_task_scheduler_t zrtos_task_scheduler
◆ zrtos_task_scheduler__start()
void zrtos_task_scheduler__start |
( |
void |
| ) |
|
◆ zrtos_task_scheduler__stop()
void zrtos_task_scheduler__stop |
( |
void |
| ) |
|
◆ zrtos_task_scheduler