Snapdragon® Telematics Application Framework (TelAF) Interface Specification
le_mutex.h
Go to the documentation of this file.
1 
78 //--------------------------------------------------------------------------------------------------
86 //--------------------------------------------------------------------------------------------------
87 
88 #ifndef LEGATO_MUTEX_INCLUDE_GUARD
89 #define LEGATO_MUTEX_INCLUDE_GUARD
90 
91 //--------------------------------------------------------------------------------------------------
95 //--------------------------------------------------------------------------------------------------
96 typedef struct le_mutex* le_mutex_Ref_t;
97 
98 
99 #if LE_CONFIG_MUTEX_NAMES_ENABLED
100 //--------------------------------------------------------------------------------------------------
110 //--------------------------------------------------------------------------------------------------
112 (
113  const char *nameStr
114 );
115 #else /* if not LE_CONFIG_MUTEX_NAMES_ENABLED */
116 //--------------------------------------------------------------------------------------------------
121 //--------------------------------------------------------------------------------------------------
122 le_mutex_Ref_t _le_mutex_CreateRecursive(void);
124 //--------------------------------------------------------------------------------------------------
134 //--------------------------------------------------------------------------------------------------
136 (
137  const char *nameStr
138 )
139 {
140  LE_UNUSED(nameStr);
141  return _le_mutex_CreateRecursive();
142 }
143 #endif /* end LE_CONFIG_MUTEX_NAMES_ENABLED */
144 
145 
146 #if LE_CONFIG_MUTEX_NAMES_ENABLED
147 //--------------------------------------------------------------------------------------------------
157 //--------------------------------------------------------------------------------------------------
159 (
160  const char *nameStr
161 );
162 #else /* if not LE_CONFIG_MUTEX_NAMES_ENABLED */
163 //--------------------------------------------------------------------------------------------------
168 //--------------------------------------------------------------------------------------------------
169 le_mutex_Ref_t _le_mutex_CreateNonRecursive(void);
171 //--------------------------------------------------------------------------------------------------
181 //--------------------------------------------------------------------------------------------------
183 (
184  const char *nameStr
185 )
186 {
187  LE_UNUSED(nameStr);
188  return _le_mutex_CreateNonRecursive();
189 }
190 #endif /* end LE_CONFIG_MUTEX_NAMES_ENABLED */
191 
192 
193 //--------------------------------------------------------------------------------------------------
199 //--------------------------------------------------------------------------------------------------
200 void le_mutex_Delete
201 (
202  le_mutex_Ref_t mutexRef
203 );
204 
205 //--------------------------------------------------------------------------------------------------
211 //--------------------------------------------------------------------------------------------------
212 void le_mutex_Lock
213 (
214  le_mutex_Ref_t mutexRef
215 );
216 
217 //--------------------------------------------------------------------------------------------------
227 //--------------------------------------------------------------------------------------------------
229 (
230  le_mutex_Ref_t mutexRef
231 );
232 
233 //--------------------------------------------------------------------------------------------------
239 //--------------------------------------------------------------------------------------------------
240 void le_mutex_Unlock
241 (
242  le_mutex_Ref_t mutexRef
243 );
244 
245 //--------------------------------------------------------------------------------------------------
265 //--------------------------------------------------------------------------------------------------
266 #define LE_MUTEX_DECLARE_REF(refName) \
267  static le_mutex_Ref_t refName; \
268  static inline void Lock(void) { le_mutex_Lock(refName); } \
269  static inline void Unlock(void) { le_mutex_Unlock(refName); }
270 
271 #endif /* LEGATO_MUTEX_INCLUDE_GUARD */
void le_mutex_Unlock(le_mutex_Ref_t mutexRef)
LE_DECLARE_INLINE le_mutex_Ref_t le_mutex_CreateNonRecursive(const char *nameStr)
Definition: le_mutex.h:183
void le_mutex_Lock(le_mutex_Ref_t mutexRef)
struct le_mutex * le_mutex_Ref_t
Definition: le_mutex.h:96
#define LE_UNUSED(v)
Definition: le_basics.h:379
#define LE_DECLARE_INLINE
Definition: le_basics.h:330
LE_DECLARE_INLINE le_mutex_Ref_t le_mutex_CreateRecursive(const char *nameStr)
Definition: le_mutex.h:136
le_result_t le_mutex_TryLock(le_mutex_Ref_t mutexRef)
void le_mutex_Delete(le_mutex_Ref_t mutexRef)
le_result_t
Definition: le_basics.h:45