diff options
-rw-r--r-- | libddekit/include/ddekit/lock.h | 2 | ||||
-rw-r--r-- | libddekit/lock.c | 42 |
2 files changed, 10 insertions, 34 deletions
diff --git a/libddekit/include/ddekit/lock.h b/libddekit/include/ddekit/lock.h index 872acad0..dd398b38 100644 --- a/libddekit/include/ddekit/lock.h +++ b/libddekit/include/ddekit/lock.h @@ -52,7 +52,7 @@ static int ddekit_lock_try_lock(ddekit_lock_t *mtx); // returns 0 on success, ! static void ddekit_lock_unlock (ddekit_lock_t *mtx); // inline implementation or inline call to non-inline implementation -#include <l4/dde/ddekit/inline.h> +#include "ddekit/inline.h" static INLINE void ddekit_lock_init_unlocked(ddekit_lock_t *mtx) { _ddekit_lock_init(mtx); diff --git a/libddekit/lock.c b/libddekit/lock.c index 0f451dfd..1e61b8b6 100644 --- a/libddekit/lock.c +++ b/libddekit/lock.c @@ -1,58 +1,34 @@ -#include <l4/dde/ddekit/lock.h> -#include <l4/dde/ddekit/memory.h> +#include <cthreads.h> -#include <l4/lock/lock.h> -#include <l4/util/macros.h> +#include "ddekit/lock.h" #define DDEKIT_DEBUG_LOCKS 0 struct ddekit_lock { - l4lock_t lock; + struct mutex lock; }; void _ddekit_lock_init(struct ddekit_lock **mtx) { - *mtx = (struct ddekit_lock *) ddekit_simple_malloc(sizeof(struct ddekit_lock)); - (*mtx)->lock = L4LOCK_UNLOCKED; + *mtx = (struct ddekit_lock *) mutex_alloc (); + mutex_init (*mtx); } void _ddekit_lock_deinit(struct ddekit_lock **mtx) { - ddekit_simple_free(*mtx); + mutex_free (*mtx); *mtx = NULL; } void _ddekit_lock_lock(struct ddekit_lock **mtx) { -#if DDEKIT_DEBUG_LOCKS - if (&(*mtx)->lock == 0x35ac) - LOG("DOWN %p: "l4util_idfmt" <-> "l4util_idfmt, - &(*mtx)->lock, - l4util_idstr(l4_myself()), - l4util_idstr(l4thread_l4_id(l4lock_owner(&((*mtx)->lock))))); -#endif - l4lock_lock(&(*mtx)->lock); -#if DDEKIT_DEBUG_LOCKS - if (&(*mtx)->lock == 0x35ac) - LOG("DOWN %p! "l4util_idfmt, &(*mtx)->lock, l4util_idstr(l4_myself())); -#endif + mutex_lock (&(*mtx)->lock); } /* returns 0 on success, != 0 if it would block */ int _ddekit_lock_try_lock(struct ddekit_lock **mtx) { - return l4lock_try_lock(&(*mtx)->lock) ? 0 : 1; + return !mutex_try_lock (&(*mtx)->lock); } void _ddekit_lock_unlock(struct ddekit_lock **mtx) { -#if DDEKIT_DEBUG_LOCKS - if (&(*mtx)->lock == 0x35ac) - LOG("UP %p: "l4util_idfmt" <-> "l4util_idfmt, - &(*mtx)->lock, - l4util_idstr(l4_myself()), - l4util_idstr(l4thread_l4_id(l4lock_owner(&((*mtx)->lock))))); -#endif - l4lock_unlock(&(*mtx)->lock); -#if DDEKIT_DEBUG_LOCKS - if (&(*mtx)->lock == 0x35ac) - LOG("UP %p! "l4util_idfmt, &(*mtx)->lock, l4util_idstr(l4_myself())); -#endif + mutex_unlock (&(*mtx)->lock); } |