qemu-irix/include
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
..
block qapi: add nbd-server-remove 2018-01-26 09:37:20 -06:00
chardev chardev: introduce qemu_chr_timeout_add_ms() 2018-01-12 13:22:02 +01:00
crypto
disas target/xtensa: implement disassembler 2018-01-09 09:55:39 -08:00
exec * socket option parsing fix (Daniel) 2018-02-07 20:40:36 +00:00
fpu
hw * socket option parsing fix (Daniel) 2018-02-07 20:40:36 +00:00
io io: introduce a network socket listener API 2017-12-15 15:07:26 +00:00
libdecnumber
migration vmstate: Add VMSTATE_UINT64_SUB_ARRAY 2018-01-25 11:45:29 +00:00
monitor
net net: Remove the legacy "-net channel" parameter 2017-12-22 10:05:26 +08:00
qapi error: Improve documentation of error_append_hint() 2018-02-06 18:24:43 +01:00
qemu lockable: add QemuLockable 2018-02-08 09:22:03 +08:00
qom accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
scsi scsi: provide general-purpose functions to manage sense data 2017-12-21 09:30:32 +01:00
standard-headers linux-headers: update 2018-01-22 11:07:47 +01:00
sysemu Add the WHPX acceleration enlightenments 2018-02-07 14:09:26 +01:00
ui ui: fix alphabetical ordering of keymaps 2018-01-29 09:35:43 +01:00
elf.h
glib-compat.h
qemu-common.h
qemu-io.h
trace-tcg.h