1 #ifndef __XFS_SUPPORT_MRLOCK_H__
2 #define __XFS_SUPPORT_MRLOCK_H__
10 * Implement mrlocks on FreeBSD that work for XFS.
11 * Map mrlock functions to corresponding equivalents in
14 typedef struct sx mrlock_t;
20 * Compatibility defines, not really used
22 #define MRLOCK_BARRIER 0x1
23 #define MRLOCK_ALLOW_EQUAL_PRI 0x8
25 #define mrlock_init(lock, type, name, seq) sx_init(lock, name)
26 #define mrtryaccess(lock) sx_try_slock(lock)
27 #define mrtryupdate(lock) sx_try_xlock(lock)
28 #define mraccess(lock) sx_slock(lock)
29 #define mrupdate(lock) sx_xlock(lock)
30 #define mrdemote(lock) sx_downgrade(lock)
31 #define mrunlock(lock) sx_unlock(lock)
33 #define mrfree(lock) do { \
34 if (sx_xlocked(lock)) \
39 int ismrlocked(mrlock_t *mrp, int type);
41 #endif /* __XFS_SUPPORT_MRLOCK_H__ */