summaryrefslogtreecommitdiff
path: root/kern/rtmutex_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'kern/rtmutex_i.h')
-rw-r--r--kern/rtmutex_i.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/kern/rtmutex_i.h b/kern/rtmutex_i.h
index 373c180f..83d48a77 100644
--- a/kern/rtmutex_i.h
+++ b/kern/rtmutex_i.h
@@ -47,8 +47,11 @@
#define RTMUTEX_OWNER_MASK (~((uintptr_t)(RTMUTEX_FORCE_WAIT \
| RTMUTEX_CONTENDED)))
-#define rtmutex_assert_owner_aligned(owner) \
- assert(((owner) & ~RTMUTEX_OWNER_MASK) == 0)
+static inline bool
+rtmutex_owner_aligned(uintptr_t owner)
+{
+ return (((owner) & ~RTMUTEX_OWNER_MASK) == 0);
+}
static inline uintptr_t
rtmutex_lock_fast(struct rtmutex *rtmutex)
@@ -56,7 +59,7 @@ rtmutex_lock_fast(struct rtmutex *rtmutex)
uintptr_t owner;
owner = (uintptr_t)thread_self();
- rtmutex_assert_owner_aligned(owner);
+ assert(rtmutex_owner_aligned(owner));
return atomic_cas(&rtmutex->owner, 0, owner, ATOMIC_ACQUIRE);
}
@@ -66,7 +69,7 @@ rtmutex_unlock_fast(struct rtmutex *rtmutex)
uintptr_t owner, prev_owner;
owner = (uintptr_t)thread_self();
- rtmutex_assert_owner_aligned(owner);
+ assert(rtmutex_owner_aligned(owner));
prev_owner = atomic_cas(&rtmutex->owner, owner, 0, ATOMIC_RELEASE);
assert((prev_owner & RTMUTEX_OWNER_MASK) == owner);
return prev_owner;