git: 1fc1d45374d5 - stable/13 - seqc: add symbolic name for in-modify bit
Konstantin Belousov
kib at FreeBSD.org
Wed Jul 7 11:10:55 UTC 2021
The branch stable/13 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=1fc1d45374d58bb24c93f6eed66e1503d10cd4ee
commit 1fc1d45374d58bb24c93f6eed66e1503d10cd4ee
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-04-29 22:39:23 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-07-07 10:23:20 +0000
seqc: add symbolic name for in-modify bit
(cherry picked from commit 71faea93070e6df371bf73ed12e2a1da27dc8e2d)
---
sys/sys/seqc.h | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/sys/sys/seqc.h b/sys/sys/seqc.h
index 3cfaaf3acbda..fd9f196aceca 100644
--- a/sys/sys/seqc.h
+++ b/sys/sys/seqc.h
@@ -45,13 +45,15 @@
#include <machine/cpu.h>
+#define SEQC_MOD 1
+
/*
* Predicts from inline functions are not honored by clang.
*/
#define seqc_in_modify(seqc) ({ \
seqc_t __seqc = (seqc); \
\
- __predict_false(__seqc & 1); \
+ __predict_false(__seqc & SEQC_MOD); \
})
static __inline void
@@ -60,7 +62,7 @@ seqc_write_begin(seqc_t *seqcp)
critical_enter();
MPASS(!seqc_in_modify(*seqcp));
- *seqcp += 1;
+ *seqcp += SEQC_MOD;
atomic_thread_fence_rel();
}
@@ -69,7 +71,7 @@ seqc_write_end(seqc_t *seqcp)
{
atomic_thread_fence_rel();
- *seqcp += 1;
+ *seqcp += SEQC_MOD;
MPASS(!seqc_in_modify(*seqcp));
critical_exit();
}
@@ -85,7 +87,7 @@ static __inline seqc_t
seqc_read_notmodify(const seqc_t *seqcp)
{
- return (atomic_load_acq_int(__DECONST(seqc_t *, seqcp)) & ~1);
+ return (atomic_load_acq_int(__DECONST(seqc_t *, seqcp)) & ~SEQC_MOD);
}
static __inline seqc_t
@@ -126,7 +128,7 @@ seqc_sleepable_write_begin(seqc_t *seqcp)
{
MPASS(!seqc_in_modify(*seqcp));
- *seqcp += 1;
+ *seqcp += SEQC_MOD;
atomic_thread_fence_rel();
}
@@ -135,7 +137,7 @@ seqc_sleepable_write_end(seqc_t *seqcp)
{
atomic_thread_fence_rel();
- *seqcp += 1;
+ *seqcp += SEQC_MOD;
MPASS(!seqc_in_modify(*seqcp));
}
More information about the dev-commits-src-all
mailing list