Circular doubly linked list, for internal kernel usage.
TN_RCode
Result code returned by kernel services.
TN_ObjId
Magic number for object validity verification TODO: use TN_UWord here instead of unsigned int...
unsigned long TN_Timeout
The value representing maximum number of system ticks to wait.
enum TN_RCode tn_sem_signal(struct TN_Sem *sem)
Signal the semaphore.
Definitions used through the whole kernel.
enum TN_RCode tn_sem_wait_polling(struct TN_Sem *sem)
The same as tn_sem_wait() with zero timeout.
struct TN_ListItem wait_queue
List of tasks that wait for the semaphore.
enum TN_ObjId id_sem
id for object validity verification
enum TN_RCode tn_sem_iwait_polling(struct TN_Sem *sem)
The same as tn_sem_wait() with zero timeout, but for using in the ISR.
enum TN_RCode tn_sem_delete(struct TN_Sem *sem)
Destruct the semaphore.
enum TN_RCode tn_sem_isignal(struct TN_Sem *sem)
The same as tn_sem_signal() but for using in the ISR.
enum TN_RCode tn_sem_create(struct TN_Sem *sem, int start_count, int max_count)
Construct the semaphore.
int count
Current semaphore counter value.
enum TN_RCode tn_sem_wait(struct TN_Sem *sem, TN_Timeout timeout)
Wait for the semaphore.
Circular doubly linked list item, for internal kernel usage.
int max_count
Max value of count