summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libddekit/include/ddekit/lock.h2
-rw-r--r--libddekit/lock.c42
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);
}