4 #ifndef __thread_structrues__
5 #define __thread_structrues__
20 #define SEMAPHORE_DEFAULT_VALUE 0
26 #define spinlock_until(blocker) \
30 #define sem_init_(sem, initial_value) \
36 #define sem_guard(sem) \
37 if(!semaphore_blocked(sem))
41 #define sem_take(sem) \
48 #define sem_check(sem)
51 #define sem_init(sem) \
52 sem_init_(sem, SEMAPHORE_DEFAULT_VALUE)
56 #define sem_signal(sem) \
64 #define sem_post(sem) \
73 #define sem_wait(sem) \
74 while (semaphore_blocked(sem)) { \
75 os_surrender_context(); \
83 #define semaphore_blocked(sem) \
88 #define thread_blocked(tcb_t) \
struct sched_task * pri_prev
DEADLINE_TYPE seriousness
struct sched_task sched_task
struct sched_task_pool sched_task_pool
struct sched_task * pri_next
struct sched_task_pool * next
struct sched_task_pool * prev