framework/c/inc/le_mutex.h
Go to the documentation of this file.
00001 
00156 #ifndef LEGATO_MUTEX_INCLUDE_GUARD
00157 #define LEGATO_MUTEX_INCLUDE_GUARD
00158 
00159 //--------------------------------------------------------------------------------------------------
00163 //--------------------------------------------------------------------------------------------------
00164 typedef struct le_mutex* le_mutex_Ref_t;
00165 
00166 //--------------------------------------------------------------------------------------------------
00174 //--------------------------------------------------------------------------------------------------
00175 le_mutex_Ref_t le_mutex_CreateRecursive
00176 (
00177     const char* nameStr     
00178 );
00179 
00180 //--------------------------------------------------------------------------------------------------
00188 //--------------------------------------------------------------------------------------------------
00189 le_mutex_Ref_t le_mutex_CreateNonRecursive
00190 (
00191     const char* nameStr     
00192 );
00193 
00194 //--------------------------------------------------------------------------------------------------
00202 //--------------------------------------------------------------------------------------------------
00203 le_mutex_Ref_t le_mutex_CreateTraceableRecursive
00204 (
00205     const char* nameStr     
00206 );
00207 
00208 //--------------------------------------------------------------------------------------------------
00216 //--------------------------------------------------------------------------------------------------
00217 le_mutex_Ref_t le_mutex_CreateTraceableNonRecursive
00218 (
00219     const char* nameStr     
00220 );
00221 
00222 //--------------------------------------------------------------------------------------------------
00228 //--------------------------------------------------------------------------------------------------
00229 void le_mutex_Delete
00230 (
00231     le_mutex_Ref_t    mutexRef   
00232 );
00233 
00234 //--------------------------------------------------------------------------------------------------
00240 //--------------------------------------------------------------------------------------------------
00241 void le_mutex_Lock
00242 (
00243     le_mutex_Ref_t    mutexRef   
00244 );
00245 
00246 //--------------------------------------------------------------------------------------------------
00256 //--------------------------------------------------------------------------------------------------
00257 le_result_t le_mutex_TryLock
00258 (
00259     le_mutex_Ref_t    mutexRef   
00260 );
00261 
00262 //--------------------------------------------------------------------------------------------------
00268 //--------------------------------------------------------------------------------------------------
00269 void le_mutex_Unlock
00270 (
00271     le_mutex_Ref_t    mutexRef   
00272 );
00273 
00274 //--------------------------------------------------------------------------------------------------
00294 //--------------------------------------------------------------------------------------------------
00295 #define LE_MUTEX_DECLARE_REF(refName) \
00296     static le_mutex_Ref_t refName; \
00297     static inline void Lock(void) { le_mutex_Lock(refName); } \
00298     static inline void Unlock(void) { le_mutex_Unlock(refName); }
00299 
00300 #endif /* LEGATO_MUTEX_INCLUDE_GUARD */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines