|
|
Message-Id: <1459113619-24090-2-git-send-email-koorogi@koorogi.info>
Date: Sun, 27 Mar 2016 16:20:18 -0500
From: Bobby Bingham <koorogi@...rogi.info>
To: musl@...ts.openwall.com
Subject: [PATCH 1/2] add 64bit atomics on top of 64bit ll/sc primitives
---
src/internal/atomic.h | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/src/internal/atomic.h b/src/internal/atomic.h
index 6f37d25..43a8a00 100644
--- a/src/internal/atomic.h
+++ b/src/internal/atomic.h
@@ -99,6 +99,34 @@ static inline void *a_cas_p(volatile void *p, void *t, void *s)
#endif
+#ifdef a_ll_64
+
+#ifndef a_and_64
+#define a_and_64 a_and_64
+static inline void a_and_64(volatile uint64_t *p, uint64_t v)
+{
+ uint64_t old;
+ a_pre_llsc();
+ do old = a_ll_64(p);
+ while (!a_sc_64(p, old & v));
+ a_post_llsc();
+}
+#endif
+
+#ifndef a_or_64
+#define a_or_64 a_or_64
+static inline void a_or_64(volatile uint64_t *p, uint64_t v)
+{
+ uint64_t old;
+ a_pre_llsc();
+ do old = a_ll_64(p);
+ while (!a_sc_64(p, old | v));
+ a_post_llsc();
+}
+#endif
+
+#endif
+
#ifndef a_cas
#error missing definition of a_cas
#endif
--
2.7.4
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.