summaryrefslogtreecommitdiff
path: root/kern/rtmutex.h
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-08-27 17:20:12 +0200
committerRichard Braun <rbraun@sceen.net>2017-08-27 17:20:12 +0200
commitcbf35081fabde1ce35cbaf223fde853db86e06d4 (patch)
treea6215d6335ec42e33da4b6aadfa1b3c0be9c860b /kern/rtmutex.h
parent094319b4a0a04ae11e24b44bb67aaf901536afb2 (diff)
parent70f7512a01ba8f90aad6dbb4d285e279f0e17e64 (diff)
Merge branch 'timer_system'
Diffstat (limited to 'kern/rtmutex.h')
-rw-r--r--kern/rtmutex.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/kern/rtmutex.h b/kern/rtmutex.h
index ec79afa9..87cd15ad 100644
--- a/kern/rtmutex.h
+++ b/kern/rtmutex.h
@@ -87,6 +87,20 @@ rtmutex_lock(struct rtmutex *rtmutex)
}
}
+static inline int
+rtmutex_timedlock(struct rtmutex *rtmutex, uint64_t ticks)
+{
+ uintptr_t prev_owner;
+
+ prev_owner = rtmutex_lock_fast(rtmutex);
+
+ if (unlikely(prev_owner != 0)) {
+ return rtmutex_timedlock_slow(rtmutex, ticks);
+ }
+
+ return 0;
+}
+
/*
* Unlock a real-time mutex.
*