mutex.h

Go to the documentation of this file.
00001 
00008 #ifndef MUTEX_H_
00009 #define MUTEX_H_
00010 
00011 #include "semaphore.h"
00012 
00014 struct mutex {
00016         semaphore_t sem;
00018         thread_t owner;
00019 };
00020 
00022 typedef struct mutex mutex_t;
00023 
00024 //function inplemented and exported
00025 void mutex_init(mutex_t *mtx);
00026 void mutex_destroy(mutex_t *mtx);
00031 #ifdef DEBUG_MUTEX 
00032  #define mutex_lock(mtx_ptr) mutex_lock_debug(mtx_ptr)
00033  #define mutex_lock_timeout(mtx_ptr, msec) mutex_lock_timeout_debug(mtx_ptr, msec)
00034  #define mutex_unlock(mtx_ptr) mutex_unlock_debug(mtx_ptr)
00035 #else
00036  #define mutex_lock(mtx_ptr) mutex_lock_nondebug(mtx_ptr)
00037  #define mutex_lock_timeout(mtx_ptr, msec) mutex_lock_timeout_nondebug(mtx_ptr, msec)
00038  #define mutex_unlock(mtx_ptr) mutex_unlock_nondebug(mtx_ptr)
00039 #endif
00040 
00042 void mutex_unlock(mutex_t *mtx);
00043 void mutex_lock(mutex_t *mtx);
00044 
00045 #endif /*MUTEX_H_*/

Generated on Wed Nov 15 17:25:43 2006 for Kalisto by  doxygen 1.4.7