summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/sys/sx.h
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/sys/sx.h')
-rw-r--r--freebsd/sys/sys/sx.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/freebsd/sys/sys/sx.h b/freebsd/sys/sys/sx.h
index 33143057..566137bd 100644
--- a/freebsd/sys/sys/sx.h
+++ b/freebsd/sys/sys/sx.h
@@ -77,12 +77,14 @@
#define SX_LOCK_SHARED_WAITERS 0x02
#define SX_LOCK_EXCLUSIVE_WAITERS 0x04
#define SX_LOCK_RECURSED 0x08
+#define SX_LOCK_WRITE_SPINNER 0x10
#define SX_LOCK_FLAGMASK \
(SX_LOCK_SHARED | SX_LOCK_SHARED_WAITERS | \
- SX_LOCK_EXCLUSIVE_WAITERS | SX_LOCK_RECURSED)
+ SX_LOCK_EXCLUSIVE_WAITERS | SX_LOCK_RECURSED | SX_LOCK_WRITE_SPINNER)
+#define SX_LOCK_WAITERS (SX_LOCK_SHARED_WAITERS | SX_LOCK_EXCLUSIVE_WAITERS)
#define SX_OWNER(x) ((x) & ~SX_LOCK_FLAGMASK)
-#define SX_SHARERS_SHIFT 4
+#define SX_SHARERS_SHIFT 5
#define SX_SHARERS(x) (SX_OWNER(x) >> SX_SHARERS_SHIFT)
#define SX_SHARERS_LOCK(x) \
((x) << SX_SHARERS_SHIFT | SX_LOCK_SHARED)