gnutls_mutex_lock = lock;
gnutls_mutex_unlock = unlock;
}
-
-int
-gnutls_static_mutex_lock(gnutls_static_mutex_t lock)
-{
- if (unlikely(glthread_lock_lock(lock))) {
- return gnutls_assert_val(GNUTLS_E_LOCKING_ERROR);
- }
- return 0;
-}
-
-int
-gnutls_static_mutex_unlock(gnutls_static_mutex_t lock)
-{
- if (unlikely(glthread_lock_unlock(lock))) {
- return gnutls_assert_val(GNUTLS_E_LOCKING_ERROR);
- }
- return 0;
-}
-
-int
-gnutls_rwlock_rdlock(gnutls_rwlock_t rwlock)
-{
- if (unlikely(glthread_rwlock_rdlock(rwlock))) {
- return gnutls_assert_val(GNUTLS_E_LOCKING_ERROR);
- }
- return 0;
-}
-
-int
-gnutls_rwlock_wrlock(gnutls_rwlock_t rwlock)
-{
- if (unlikely(glthread_rwlock_wrlock(rwlock))) {
- return gnutls_assert_val(GNUTLS_E_LOCKING_ERROR);
- }
- return 0;
-}
-
-int
-gnutls_rwlock_unlock(gnutls_rwlock_t rwlock)
-{
- if (unlikely(glthread_rwlock_unlock(rwlock))) {
- return gnutls_assert_val(GNUTLS_E_LOCKING_ERROR);
- }
- return 0;
-}
-
-int
-gnutls_once(gnutls_once_t once, void (*init_func) (void))
-{
- if (unlikely(glthread_once(once, init_func))) {
- return gnutls_assert_val(GNUTLS_E_LOCKING_ERROR);
- }
- return 0;
-}
*/
#define GNUTLS_STATIC_MUTEX(lock) gl_lock_define_initialized(static, lock)
typedef gl_lock_t *gnutls_static_mutex_t;
-int gnutls_static_mutex_lock(gnutls_static_mutex_t lock);
-int gnutls_static_mutex_unlock(gnutls_static_mutex_t lock);
+
+#define gnutls_static_mutex_lock(LOCK) \
+ (unlikely(glthread_lock_lock(LOCK)) ? \
+ gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
+
+#define gnutls_static_mutex_unlock(LOCK) \
+ (unlikely(glthread_lock_unlock(LOCK)) ? \
+ gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
/* Unlike static mutexes, static rwlocks can be locked/unlocked with
* the functions defined below, because there is no way to replace
#define GNUTLS_RWLOCK(rwlock) gl_rwlock_define_initialized(static, rwlock)
typedef gl_rwlock_t *gnutls_rwlock_t;
-int gnutls_rwlock_rdlock(gnutls_rwlock_t rwlock);
-int gnutls_rwlock_wrlock(gnutls_rwlock_t rwlock);
-int gnutls_rwlock_unlock(gnutls_rwlock_t rwlock);
+#define gnutls_rwlock_rdlock(RWLOCK) \
+ (unlikely(glthread_rwlock_rdlock(RWLOCK)) ? \
+ gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
+
+#define gnutls_rwlock_wrlock(RWLOCK) \
+ (unlikely(glthread_rwlock_wrlock(RWLOCK)) ? \
+ gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
+
+#define gnutls_rwlock_unlock(RWLOCK) \
+ (unlikely(glthread_rwlock_unlock(RWLOCK)) ? \
+ gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
#define GNUTLS_ONCE(once) gl_once_define(static, once)
typedef gl_once_t *gnutls_once_t;
-int gnutls_once(gnutls_once_t once, void (*init_func) (void));
+#define gnutls_once(ONCE, INIT_FUNC) \
+ (unlikely(glthread_once(ONCE, INIT_FUNC)) ? \
+ gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
#endif /* GNUTLS_LIB_LOCKS_H */