Signed-off-by: Darrell Ball <dlu...@gmail.com> --- lib/ovs-atomic.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+)
diff --git a/lib/ovs-atomic.h b/lib/ovs-atomic.h index 21e230e..11fa192 100644 --- a/lib/ovs-atomic.h +++ b/lib/ovs-atomic.h @@ -479,6 +479,42 @@ atomic_count_set(atomic_count *count, unsigned int value) atomic_store_relaxed(&count->count, value); } +static inline uint64_t +atomic_count_inc64(atomic_uint64_t *counter) +{ + uint64_t old; + + atomic_add_relaxed(counter, 1ull, &old); + + return old; +} + +static inline uint64_t +atomic_count_dec64(atomic_uint64_t *counter) +{ + uint64_t old; + + atomic_sub_relaxed(counter, 1ull, &old); + + return old; +} + +static inline uint64_t +atomic_count_get64(atomic_uint64_t *counter) +{ + uint64_t value; + + atomic_read_relaxed(counter, &value); + + return value; +} + +static inline void +atomic_count_set64(atomic_uint64_t *counter, uint64_t value) +{ + atomic_store_relaxed(counter, value); +} + /* Reference count. */ struct ovs_refcount { atomic_uint count; -- 1.9.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev