mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 22:55:23 +00:00
0c9fd4cfe9
There are a few issues with the current virAtomic APIs - They require use of a virAtomicInt struct instead of a plain int type - Several of the methods do not implement memory barriers - The methods do not implement compiler re-ordering barriers - There is no Win32 native impl The GLib library has a nice LGPLv2+ licensed impl of atomic ops that works with GCC, Win32, or pthreads.h that addresses all these problems. The main downside to their code is that the pthreads impl uses a single global mutex, instead of a per-variable mutex. Given that it does have a Win32 impl though, we don't expect anyone to seriously use the pthread.h impl, so this downside is not significant. * .gitignore: Ignore test case * configure.ac: Check for which atomic ops impl to use * src/Makefile.am: Add viratomic.c * src/nwfilter/nwfilter_dhcpsnoop.c: Switch to new atomic ops APIs and plain int datatype * src/util/viratomic.h: inline impls of all atomic ops for GCC, Win32 and pthreads * src/util/viratomic.c: Global pthreads mutex for atomic ops * tests/viratomictest.c: Test validate to validate safety of atomic ops. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
192 lines
3.3 KiB
Plaintext
192 lines
3.3 KiB
Plaintext
*#*#
|
|
*.#*#
|
|
*.a
|
|
*.cov
|
|
*.exe
|
|
*.gcda
|
|
*.gcno
|
|
*.gcov
|
|
*.html
|
|
*.i
|
|
*.la
|
|
*.lo
|
|
*.loT
|
|
*.o
|
|
*.orig
|
|
*.pyc
|
|
*.rej
|
|
*.s
|
|
*~
|
|
.deps
|
|
.git
|
|
.git-module-status
|
|
.libs
|
|
.lvimrc
|
|
.memdump
|
|
.sc-start-sc_*
|
|
/ABOUT-NLS
|
|
/COPYING
|
|
/ChangeLog
|
|
/GNUmakefile
|
|
/INSTALL
|
|
/NEWS
|
|
/aclocal.m4
|
|
/autom4te.cache
|
|
/build-aux
|
|
/build-aux/
|
|
/build/
|
|
/config.cache
|
|
/config.guess
|
|
/config.h
|
|
/config.h.in
|
|
/config.log
|
|
/config.rpath
|
|
/config.status
|
|
/config.sub
|
|
/configure
|
|
/configure.lineno
|
|
/daemon/*_dispatch.h
|
|
/daemon/libvirt_qemud
|
|
/daemon/libvirtd
|
|
/daemon/libvirtd*.logrotate
|
|
/daemon/libvirtd.8
|
|
/daemon/libvirtd.8.in
|
|
/daemon/libvirtd.init
|
|
/daemon/libvirtd.pod
|
|
/daemon/libvirtd.service
|
|
/daemon/test_libvirtd.aug
|
|
/docs/apibuild.py.stamp
|
|
/docs/devhelp/libvirt.devhelp
|
|
/docs/hvsupport.html.in
|
|
/docs/libvirt-api.xml
|
|
/docs/libvirt-qemu-*.xml
|
|
/docs/libvirt-refs.xml
|
|
/docs/todo.html.in
|
|
/examples/domain-events/events-c/event-test
|
|
/examples/dominfo/info1
|
|
/examples/domsuspend/suspend
|
|
/examples/hellolibvirt/hellolibvirt
|
|
/examples/openauth/openauth
|
|
/gnulib/lib/*
|
|
/gnulib/m4/*
|
|
/gnulib/tests/*
|
|
/include/libvirt/libvirt.h
|
|
/libtool
|
|
/libvirt-*.tar.gz
|
|
/libvirt-[0-9]*
|
|
/libvirt.pc
|
|
/libvirt.spec
|
|
/ltconfig
|
|
/ltmain.sh
|
|
/m4/*
|
|
/maint.mk
|
|
/mingw-libvirt.spec
|
|
/mkinstalldirs
|
|
/po/*
|
|
/proxy/
|
|
/python/generated.stamp
|
|
/python/generator.py.stamp
|
|
/python/libvirt-export.c
|
|
/python/libvirt-qemu-export.c
|
|
/python/libvirt-qemu.[ch]
|
|
/python/libvirt.[ch]
|
|
/python/libvirt.py
|
|
/python/libvirt_qemu.py
|
|
/sc_*
|
|
/src/.*.stamp
|
|
/src/esx/*.generated.*
|
|
/src/hyperv/*.generated.*
|
|
/src/libvirt*.def
|
|
/src/libvirt.syms
|
|
/src/libvirt_*.stp
|
|
/src/libvirt_*helper
|
|
/src/libvirt_*probes.h
|
|
/src/libvirt_lxc
|
|
/src/locking/qemu-sanlock.conf
|
|
/src/locking/test_libvirt_sanlock.aug
|
|
/src/lxc/lxc_controller_dispatch.h
|
|
/src/lxc/lxc_monitor_dispatch.h
|
|
/src/lxc/lxc_protocol.c
|
|
/src/lxc/lxc_protocol.h
|
|
/src/lxc/test_libvirtd_lxc.aug
|
|
/src/qemu/test_libvirtd_qemu.aug
|
|
/src/remote/*_client_bodies.h
|
|
/src/remote/*_protocol.[ch]
|
|
/src/rpc/virkeepaliveprotocol.[ch]
|
|
/src/rpc/virnetprotocol.[ch]
|
|
/src/test_libvirt*.aug
|
|
/src/util/virkeymaps.h
|
|
/src/virt-aa-helper
|
|
/tests/*.log
|
|
/tests/*.pid
|
|
/tests/*xml2*test
|
|
/tests/commandhelper
|
|
/tests/commandtest
|
|
/tests/conftest
|
|
/tests/cputest
|
|
/tests/domainsnapshotxml2xmltest
|
|
/tests/esxutilstest
|
|
/tests/eventtest
|
|
/tests/hashtest
|
|
/tests/jsontest
|
|
/tests/libvirtdconftest
|
|
/tests/networkxml2argvtest
|
|
/tests/nodeinfotest
|
|
/tests/nwfilterxml2xmltest
|
|
/tests/object-locking
|
|
/tests/object-locking-files.txt
|
|
/tests/object-locking.cm[ix]
|
|
/tests/openvzutilstest
|
|
/tests/qemuargv2xmltest
|
|
/tests/qemuhelptest
|
|
/tests/qemumonitortest
|
|
/tests/qemuxmlnstest
|
|
/tests/qparamtest
|
|
/tests/reconnect
|
|
/tests/secaatest
|
|
/tests/seclabeltest
|
|
/tests/sexpr2xmltest
|
|
/tests/shunloadtest
|
|
/tests/sockettest
|
|
/tests/ssh
|
|
/tests/statstest
|
|
/tests/storagebackendsheepdogtest
|
|
/tests/utiltest
|
|
/tests/viratomictest
|
|
/tests/virauthconfigtest
|
|
/tests/virbuftest
|
|
/tests/virdrivermoduletest
|
|
/tests/virhashtest
|
|
/tests/virkeyfiletest
|
|
/tests/virnet*test
|
|
/tests/virshtest
|
|
/tests/virtimetest
|
|
/tests/viruritest
|
|
/tests/vmx2xmltest
|
|
/tests/xencapstest
|
|
/tests/xmconfigtest
|
|
/tools/*.[18]
|
|
/tools/libvirt-guests.init
|
|
/tools/libvirt-guests.service
|
|
/tools/virsh
|
|
/tools/virsh-*-edit.c
|
|
/tools/virt-*-validate
|
|
/tools/virt-sanlock-cleanup
|
|
/update.log
|
|
Makefile
|
|
Makefile.in
|
|
TAGS
|
|
coverage
|
|
cscope.files
|
|
cscope.out
|
|
results.log
|
|
stamp-h
|
|
stamp-h.in
|
|
stamp-h1
|
|
!/gnulib/lib/Makefile.am
|
|
!/gnulib/tests/Makefile.am
|
|
!/m4/virt-*.m4
|
|
!/po/*.po
|
|
!/po/POTFILES.in
|
|
!/po/libvirt.pot
|