vppinfra: add atomic macros for __sync builtins 81/15181/5
authorSirshak Das <sirshak.das@arm.com>
Wed, 3 Oct 2018 22:53:51 +0000 (22:53 +0000)
committerDamjan Marion <dmarion@me.com>
Fri, 19 Oct 2018 07:10:47 +0000 (07:10 +0000)
commit2f6d7bb93c157b874efb79a2d1583a4c368bf89a
tree05dc2867c598cbb8d711f074b4b0eb62dd464f41
parentbf3443b0f852f5a4c551d12f926defbd047f2161
vppinfra: add atomic macros for __sync builtins

This is first part of addition of atomic macros with only macros for
__sync builtins.

- Based on earlier patch by Damjan (https://gerrit.fd.io/r/#/c/10729/)
Additionally
- clib_atomic_release macro added and used in the absence
of any memory barrier.
- clib_atomic_bool_cmp_and_swap added

Change-Id: Ie4e48c1e184a652018d1d0d87c4be80ddd180a3b
Original-patch-by: Damjan Marion <damarion@cisco.com>
Signed-off-by: Sirshak Das <sirshak.das@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
40 files changed:
extras/japi/java/jvpp-common/jvpp_common.h
src/plugins/acl/session_inlines.h
src/plugins/dpdk/device/device.c
src/plugins/ioam/analyse/ioam_analyse.h
src/plugins/ioam/analyse/ioam_summary_export.c
src/plugins/ioam/analyse/ip6/node.c
src/plugins/ioam/export-common/ioam_export.h
src/plugins/lb/lb.c
src/plugins/map/map.h
src/plugins/nat/nat_det.h
src/svm/message_queue.c
src/svm/ssvm.h
src/svm/svm_fifo.c
src/svm/svm_fifo.h
src/vlib/buffer_funcs.h
src/vlib/threads.c
src/vlib/threads.h
src/vlib/unix/cj.c
src/vnet/classify/vnet_classify.c
src/vnet/devices/virtio/vhost_user_output.c
src/vnet/dns/dns.h
src/vnet/gre/gre.c
src/vnet/interface.h
src/vnet/ip/ip4_mtrie.c
src/vnet/ipfix-export/flow_report_classify.c
src/vnet/mfib/mfib_forward.c
src/vnet/mfib/mfib_signal.c
src/vnet/pg/output.c
src/vnet/session-apps/echo_client.c
src/vnet/util/refcount.h
src/vpp/stats/stats_to_be_deprecated.c
src/vppinfra/CMakeLists.txt
src/vppinfra/atomics.h [new file with mode: 0644]
src/vppinfra/clib.h
src/vppinfra/elog.c
src/vppinfra/elog.h
src/vppinfra/lock.h
src/vppinfra/maplog.h
src/vppinfra/mheap.c
src/vppinfra/smp.h