This is essentially a revert of commit e09d61c41b4f ("ovs-atomic: Remove
atomic_uint64_t and atomic_int64_t.")  My fear that some 32-bit platforms
did not support 64-bit integers seems overblown, because OVS 2.6.x uses
the 64-bit atomic_ullong and it is in Debian, which has tons of
architectures.

CC: Simon Horman <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
---
 lib/ovs-atomic.h    | 4 ++++
 tests/test-atomic.c | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/lib/ovs-atomic.h b/lib/ovs-atomic.h
index c835eb7479b0..d1b4e09e70d4 100644
--- a/lib/ovs-atomic.h
+++ b/lib/ovs-atomic.h
@@ -69,6 +69,8 @@
  *     int8_t                   atomic_int8_t      (*)
  *     int16_t                  atomic_int16_t     (*)
  *     int32_t                  atomic_int32_t     (*)
+ *     uint64_t                 atomic_uint64_t    (*)
+ *     int64_t                  atomic_int64_t     (*)
  *
  *     (*) Not specified by C11.
  *
@@ -378,10 +380,12 @@ typedef ATOMIC(uintptr_t)          atomic_uintptr_t;
 typedef ATOMIC(uint8_t)   atomic_uint8_t;
 typedef ATOMIC(uint16_t)  atomic_uint16_t;
 typedef ATOMIC(uint32_t)  atomic_uint32_t;
+typedef ATOMIC(uint64_t)  atomic_uint64_t;
 
 typedef ATOMIC(int8_t)    atomic_int8_t;
 typedef ATOMIC(int16_t)   atomic_int16_t;
 typedef ATOMIC(int32_t)   atomic_int32_t;
+typedef ATOMIC(int64_t)   atomic_int64_t;
 
 /* Relaxed atomic operations.
  *
diff --git a/tests/test-atomic.c b/tests/test-atomic.c
index efc5053f35a8..4b1374b70b25 100644
--- a/tests/test-atomic.c
+++ b/tests/test-atomic.c
@@ -375,6 +375,8 @@ test_atomic_plain(void)
     TEST_ATOMIC_TYPE(atomic_int16_t, int16_t);
     TEST_ATOMIC_TYPE(atomic_uint32_t, uint32_t);
     TEST_ATOMIC_TYPE(atomic_int32_t, int32_t);
+    TEST_ATOMIC_TYPE(atomic_uint64_t, uint64_t);
+    TEST_ATOMIC_TYPE(atomic_int64_t, int64_t);
 }
 
 static void
-- 
2.10.2

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to