129 #if TN_MUTEX_DEADLOCK_DETECT 
  291 #endif // _TN_MUTEX_H 
TN_MutexProtocol
Mutex protocol for avoid priority inversion. 
enum TN_RCode tn_mutex_create(struct TN_Mutex *mutex, enum TN_MutexProtocol protocol, int ceil_priority)
Construct the mutex. 
Circular doubly linked list, for internal kernel usage. 
TN_RCode
Result code returned by kernel services. 
enum TN_RCode tn_mutex_lock_polling(struct TN_Mutex *mutex)
The same as tn_mutex_lock() with zero timeout. 
enum TN_RCode tn_mutex_unlock(struct TN_Mutex *mutex)
Unlock mutex. 
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. 
Definitions used through the whole kernel. 
enum TN_MutexProtocol protocol
Mutex protocol: priority ceiling or priority inheritance. 
struct TN_ListItem deadlock_list
List of other mutexes involved in deadlock (normally, this list is empty) 
enum TN_RCode tn_mutex_delete(struct TN_Mutex *mutex)
Destruct mutex. 
enum TN_RCode tn_mutex_lock(struct TN_Mutex *mutex, TN_Timeout timeout)
Lock mutex. 
struct TN_ListItem mutex_queue
To include in task's locked mutexes list (if any) 
int cnt
Lock count (for recursive locking) 
enum TN_ObjId id_mutex
id for object validity verification 
int ceil_priority
Used if only protocol is TN_MUTEX_PROT_CEILING: maximum priority of task that may lock the mutex...
Mutex uses priority ceiling protocol. 
Mutex uses priority inheritance protocol. 
Circular doubly linked list item, for internal kernel usage. 
struct TN_Task * holder
Current mutex owner (task that locked mutex) 
struct TN_ListItem wait_queue
List of tasks that wait a mutex.