64 #define SEM_OFS1 20000
65 #define SEM_OFS2 21000
67 #define OS_WAIT_SEM(sem) do {\
68 if ( os_sem_larger_than_zero( sem ) )\
69 os_sem_decrement( sem );\
72 os_task_wait_sem_set( running_tid, sem );\
73 OS_SCHEDULE(SEM_OFS1);\
78 #define OS_WAIT_SEM_NO_SCHEDULE(sem) do {\
79 if ( os_sem_larger_than_zero( sem ) ) {\
80 os_sem_decrement( sem );\
83 os_task_wait_sem_set( running_tid, sem );\
88 #define OS_SIGNAL_SEM(sem) do {\
89 if ( os_task_waiting_this_semaphore( sem ) == 0 ) {\
90 os_sem_increment( sem );\
93 os_task_release_waiting_task( sem );\
94 OS_SCHEDULE(SEM_OFS2);\
99 #define OS_SIGNAL_SEM_NO_SCHEDULE(sem) do {\
100 if ( os_task_waiting_this_semaphore( sem ) == 0 ) {\
101 os_sem_increment( sem );\
104 os_task_release_waiting_task( sem );\
111 typedef uint8_t Sem_t;
114 uint8_t os_sem_larger_than_zero( Sem_t sem );
115 void os_sem_decrement( Sem_t sem );
116 void os_sem_increment( Sem_t sem );