22 #define OS_STACK_SIZE 100
25 #define OS_NUM_POOLS 2
28 #define OS_SYSTEM_POOL 0
30 #define OS_REAL_TIME_POOL 0
32 #define OS_INTERACTIVE_POOL 1
35 #define os_spawn_thread(_thread, _priority) \
36 os_add_thread(_thread, priority)
39 #define os_kill_thread(_thread) \
40 os_remove_thread(_thread)
142 #define os_surrender_context() \
tcb_t * os_add_thread(task_t)
void _os_reset_thread_stack(tcb_t *tcb, task_t task)
tcb_t * _os_next_dead_thread()
static tcb_t * OS_THREAD_POOL[2]
static tcb_t * os_running_threads
static tcb_t * os_dead_threads
void os_threading_init(void)
struct hwcontext hwcontext_t
tcb_t * os_remove_thread(task_t)
int8_t get_os_num_threads()
struct swcontext swcontext_t
#define SCHEDULER_MAX_THREADS
static tcb_t OS_THREADS[SCHEDULER_MAX_THREADS]
tcb_t * os_tcb_of(task_t)
static tcb_t * OS_NEXT_THREAD
int32_t os_running_thread_id()