1 /* Public domain. */ 2 3 #ifndef _LINUX_MUTEX_H 4 #define _LINUX_MUTEX_H 5 6 #include <sys/stdint.h> 7 #include <sys/rwlock.h> 8 #include <linux/list.h> 9 #include <linux/spinlock_types.h> 10 11 #define DEFINE_MUTEX(x) struct rwlock x 12 13 #define mutex_lock_interruptible(rwl) -rw_enter(rwl, RW_WRITE | RW_INTR) 14 #define mutex_lock(rwl) rw_enter_write(rwl) 15 #define mutex_lock_nest_lock(rwl, sub) rw_enter_write(rwl) 16 #define mutex_lock_nested(rwl, sub) rw_enter_write(rwl) 17 #define mutex_trylock(rwl) (rw_enter(rwl, RW_WRITE | RW_NOSLEEP) == 0) 18 #define mutex_unlock(rwl) rw_exit_write(rwl) 19 #define mutex_is_locked(rwl) (rw_status(rwl) == RW_WRITE) 20 #define mutex_destroy(rwl) 21 22 #endif 23