qemu/include
Paolo Bonzini 51dee5e465 qemu-thread: introduce QemuLockCnt
A QemuLockCnt comprises a counter and a mutex, with primitives
to increment and decrement the counter, and to take and release the
mutex.  It can be used to do lock-free visits to a data structure
whenever mutexes would be too heavy-weight and the critical section
is too long for RCU.

This could be implemented simply by protecting the counter with the
mutex, but QemuLockCnt is harder to misuse and more efficient.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20170112180800.21085-3-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2017-01-16 13:25:17 +00:00
..
block aio: rename bh_lock to list_lock 2017-01-16 13:25:17 +00:00
crypto crypto: add CTR mode support 2016-10-19 10:09:24 +01:00
disas disas: Fix ATTRIBUTE_UNUSED define clash with ALSA headers 2016-07-19 16:40:39 +01:00
exec memory: handle alias in memory_region_is_iommu() 2017-01-10 05:56:59 +02:00
fpu fpu: add mechanism to check for invalid long double formats 2016-09-15 12:43:18 +01:00
hw memhp: don't generate memory hotplug AML if it's not enabled/supported 2017-01-10 07:03:24 +02:00
io io: add ability to set a name for IO channels 2016-10-27 09:13:10 +02:00
libdecnumber Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
migration intel_iommu: allow migration 2017-01-10 05:56:58 +02:00
monitor qdev: add function qdev_set_id() 2016-11-22 10:29:37 -08:00
net vhost-net: Notify the backend about the host MTU 2017-01-10 07:02:53 +02:00
qapi qdict: implement a qdict_crumple method for un-flattening a dict 2016-10-25 17:56:14 +02:00
qemu qemu-thread: introduce QemuLockCnt 2017-01-16 13:25:17 +00:00
qom monitor: reuse user_creatable_add_opts() instead of user_creatable_add() 2017-01-12 15:34:47 -02:00
standard-headers virtio-pci: address space translation service (ATS) support 2017-01-10 05:56:59 +02:00
sysemu numa: make -numa parser dynamically allocate CPUs masks 2017-01-12 15:51:36 -02:00
ui curses: Fix compiler warnings (Mingw-w64 redefinition of macro KEY_EVENT) 2017-01-10 08:14:20 +01:00
elf.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
glib-compat.h tests: send error_report to test log 2016-11-01 16:06:57 +01:00
qemu-common.h tcg: Add EXCP_ATOMIC 2016-10-26 08:29:00 -07:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
trace-tcg.h trace: get rid of generated-events.h/generated-events.c 2016-10-12 09:54:52 +02:00
trace.h trace: get rid of generated-events.h/generated-events.c 2016-10-12 09:54:52 +02:00