]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - sys/gnu/fs/xfs/FreeBSD/support/rwsem.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / sys / gnu / fs / xfs / FreeBSD / support / rwsem.h
1 #ifndef __XFS_SUPPORT_RWSEM_H__
2 #define __XFS_SUPPORT_RWSEM_H__
3
4 #include <sys/param.h>
5 #include <sys/lock.h>
6 #include <sys/mutex.h>
7 #include <sys/sx.h>
8
9 #define rw_semaphore    sx
10
11 #define init_rwsem(sem)         sx_init(sem, "rwsem")
12 #define free_rwsem(sem)         sx_destroy(sem)
13 #define down_read(sem)          sx_slock(sem)
14 #define down_read_trylock(sem)  sx_try_slock(sem)
15 #define down_write(sem)         sx_xlock(sem)
16 #define down_write_trylock(sem) sx_try_xlock(sem)
17 #define up_read(sem)            sx_sunlock(sem)
18 #define up_write(sem)           sx_xunlock(sem)
19 #define downgrade_write(sem)    sx_downgrade(sem)
20
21 #endif /* __XFS_SUPPORT_RWSEM_H__ */