1 #ifndef __XFS_SUPPORT_RWLOCK_H__ 2 #define __XFS_SUPPORT_RWLOCK_H__ 3 4 #include <sys/param.h> 5 #include <sys/lock.h> 6 #include <sys/mutex.h> 7 #include <sys/sx.h> 8 9 typedef struct sx rwlock_t; 10 typedef int wait_queue_head_t; 11 12 #define rwlock_init(lock) sx_init(lock, "rwlock") 13 #define rwlock_destroy(lock) sx_destroy(lock) 14 #define read_lock(lock) sx_slock(lock) 15 #define read_unlock(lock) sx_sunlock(lock) 16 #define write_lock(lock) sx_xlock(lock) 17 #define write_trylock(lock) sx_try_xlock(lock) 18 #define write_unlock(lock) sx_xunlock(lock) 19 #define rwlock_trypromote(lock) sx_try_upgrade(lock) 20 #define rwlock_demote(lock) sx_downgrade(lock) 21 22 23 #endif /* __XFS_SUPPORT_RWLOCK_H__ */ 24