qemu-irix/tests
Paolo Bonzini e70372fcaf lockable: add QemuLockable
QemuLockable is a polymorphic lock type that takes an object and
knows which function to use for locking and unlocking.  The
implementation could use C11 _Generic, but since the support is
not very widespread I am instead using __builtin_choose_expr and
__builtin_types_compatible_p, which are already used by
include/qemu/atomic.h.

QemuLockable can be used to implement lock guards, or to pass around
a lock in such a way that a function can release it and re-acquire it.
The next patch will do this for CoQueue.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20180203153935.8056-3-pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
2018-02-08 09:22:03 +08:00
..
acpi-test-data ACPI/unit-test: Add a testcase for RAM allocation in numa node 2018-01-18 21:52:38 +02:00
data
docker docker: change Fedora base image to fedora:27 2018-02-08 09:21:34 +08:00
guest-debug
image-fuzzer
keys
libqos libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
migration
multiboot
qapi-schema qapi: use items()/values() intead of iteritems()/itervalues() 2018-02-05 19:53:54 -02:00
qemu-iotests iotests: Make 200 run on tmpfs 2018-01-31 22:37:00 -05:00
rocker
tcg maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
vm
vmstate-static-checker-data
.gitignore tests/.gitignore: Add test-bdrv-drain 2018-01-23 12:33:07 +01:00
Makefile.include Python queue, 2018-02-05 2018-02-06 19:28:08 +00:00
ac97-test.c
acpi-utils.c
acpi-utils.h maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
ahci-test.c blockdev: Mark BD-{remove,insert}-medium stable 2018-01-23 12:34:42 +01:00
atomic_add-bench.c
benchmark-crypto-cipher.c
benchmark-crypto-hash.c
benchmark-crypto-hmac.c
bios-tables-test.c tests: acpi: add comments to fetch_rsdt_referenced_tables/data->tables usage 2018-01-18 21:52:39 +02:00
boot-order-test.c
boot-sector.c
boot-sector.h
boot-serial-test.c tests: Enable boot-serial-test for hppa 2018-02-04 14:11:07 -08:00
check-block.sh
check-qdict.c
check-qjson.c
check-qlist.c
check-qlit.c
check-qnull.c
check-qnum.c
check-qobject.c tests: fix check-qobject leak 2018-01-16 14:54:49 +01:00
check-qom-interface.c
check-qom-proplist.c
check-qstring.c
cpu-plug-test.c tests/cpu-plug-test: Test CPU hot-plugging on s390x 2018-01-22 08:39:05 +01:00
crypto-tls-x509-helpers.c
crypto-tls-x509-helpers.h
device-introspect-test.c
display-vga-test.c
drive_del-test.c
ds1338-test.c
e1000-test.c
e1000e-test.c
eepro100-test.c
endianness-test.c
es1370-test.c
fdc-test.c
fw_cfg-test.c
hd-geo-test.c
i440fx-test.c
i82801b11-test.c
ide-test.c
intel-hda-test.c
io-channel-helpers.c
io-channel-helpers.h
ioh3420-test.c
iothread.c
iothread.h
ipmi-bt-test.c
ipmi-kcs-test.c
ipoctal232-test.c
ivshmem-test.c
libqtest.c
libqtest.h
m25p80-test.c
m48t59-test.c
megasas-test.c
migration-test.c tests: Adjust sleeps for migration test 2018-02-06 14:53:02 +00:00
ne2000-test.c
numa-test.c
nvme-test.c
pcnet-test.c
pkix_asn1_tab.c
pnv-xscom-test.c ppc/pnv: fix XSCOM core addressing on POWER9 2018-01-17 09:35:24 +11:00
prom-env-test.c
ptimer-test-stubs.c
ptimer-test.c
ptimer-test.h
pvpanic-test.c
pxe-test.c
q35-test.c
qemu-iotests-quick.sh
qht-bench.c
qmp-test.c tests: fix qmp-test leak 2018-01-16 14:54:50 +01:00
qom-test.c
rcutorture.c
rtas-test.c
rtc-test.c
rtl8139-test.c
spapr-phb-test.c
tco-test.c
test-aio-multithread.c
test-aio.c
test-arm-mptimer.c
test-base64.c
test-bdrv-drain.c test-bdrv-drain: Test graph changes in drained section 2017-12-22 15:05:32 +01:00
test-bitcnt.c
test-bitops.c
test-blockjob-txn.c
test-blockjob.c
test-bufferiszero.c
test-char.c
test-clone-visitor.c
test-coroutine.c lockable: add QemuLockable 2018-02-08 09:22:03 +08:00
test-crypto-afsplit.c
test-crypto-block.c
test-crypto-cipher.c
test-crypto-hash.c
test-crypto-hmac.c
test-crypto-ivgen.c
test-crypto-pbkdf.c
test-crypto-secret.c
test-crypto-tlscredsx509.c
test-crypto-tlssession.c
test-crypto-xts.c
test-cutils.c
test-filter-mirror.c
test-filter-redirector.c tests/test-filter-redirector: move close() 2018-02-07 14:09:25 +01:00
test-hbitmap.c
test-hmp.c
test-int128.c
test-io-channel-buffer.c
test-io-channel-command.c
test-io-channel-file.c
test-io-channel-socket.c
test-io-channel-tls.c
test-io-task.c
test-iov.c
test-keyval.c
test-logging.c
test-mul64.c
test-netfilter.c
test-opts-visitor.c
test-qapi-util.c
test-qdev-global-props.c
test-qdist.c
test-qemu-opts.c
test-qga.c
test-qht-par.c
test-qht.c
test-qmp-commands.c
test-qmp-event.c
test-qobject-input-visitor.c
test-qobject-output-visitor.c
test-rcu-list.c
test-replication.c
test-shift128.c
test-string-input-visitor.c
test-string-output-visitor.c
test-thread-pool.c
test-throttle.c
test-timed-average.c
test-uuid.c
test-visitor-serialization.c
test-vmstate.c
test-write-threshold.c
test-x86-cpuid-compat.c
test-x86-cpuid.c
test-xbzrle.c
tmp105-test.c
tpci200-test.c
tpm-crb-test.c tpm: add CRB device 2018-01-29 14:22:50 -05:00
usb-hcd-ehci-test.c
usb-hcd-ohci-test.c
usb-hcd-uhci-test.c
usb-hcd-xhci-test.c
vhost-user-bridge.c tests: Avoid 'do/while(false); ' in vhost-user-bridge 2018-01-16 14:54:52 +01:00
vhost-user-test.c tests: use memfd in vhost-user-test 2018-02-07 14:09:25 +01:00
virtio-9p-test.c tests/virtio-9p: explicitly handle potential integer overflows 2018-02-02 11:15:34 +01:00
virtio-balloon-test.c
virtio-blk-test.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio-console-test.c
virtio-net-test.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio-rng-test.c
virtio-scsi-test.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio-serial-test.c
vmgenid-test.c
vmxnet3-test.c
wdt_ib700-test.c