qemu/hw
Stefan Hajnoczi 433fcea40c util/defer-call: move defer_call() to util/
The networking subsystem may wish to use defer_call(), so move the code
to util/ where it can be reused.

As a reminder of what defer_call() does:

This API defers a function call within a defer_call_begin()/defer_call_end()
section, allowing multiple calls to batch up. This is a performance
optimization that is used in the block layer to submit several I/O requests
at once instead of individually:

  defer_call_begin(); <-- start of section
  ...
  defer_call(my_func, my_obj); <-- deferred my_func(my_obj) call
  defer_call(my_func, my_obj); <-- another
  defer_call(my_func, my_obj); <-- another
  ...
  defer_call_end(); <-- end of section, my_func(my_obj) is called once

Suggested-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-3-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2023-10-31 15:41:42 +01:00
..
9pfs migration: simplify blockers 2023-10-20 08:51:41 +02:00
acpi virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
adc
alpha
arm hw/arm: Avoid using 'first_cpu' when first ARM CPU is reachable 2023-10-27 12:50:12 +01:00
audio hw/audio/es1370: trace lost interrupts 2023-10-10 12:31:05 +00:00
avr
block util/defer-call: move defer_call() to util/ 2023-10-31 15:41:42 +01:00
char ui/input: Constify QemuInputHandler structure 2023-10-19 23:13:28 +02:00
core * s390x CPU topology support 2023-10-20 06:46:41 -07:00
cpu hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
cris
cxl hw/cxl: Fix local variable shadowing of cap_hdrs 2023-10-06 10:56:54 +02:00
display virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
dma hw/dma: Declare link using static DEFINE_PROP_LINK() macro 2023-10-19 23:13:28 +02:00
gpio
hppa hw/hppa: Add new HP C3700 machine 2023-10-20 00:47:38 +02:00
hyperv
i2c aspeed/i2c: Clean up local variable shadowing 2023-09-29 10:07:19 +02:00
i386 * Fix global variable shadowing in test code 2023-10-30 08:08:18 +09:00
ide hw/ide/ahci: Clean up local variable shadowing 2023-10-06 13:16:57 +02:00
input target/hppa: Add emulation of a C3700 HP-PARISC workstation 2023-10-20 06:46:26 -07:00
intc target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
ipack
ipmi hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
isa virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
loongarch hw/acpi: Realize ACPI_GED sysbus device before accessing it 2023-10-19 23:13:28 +02:00
m68k q800: add alias for MacOS toolbox ROM at 0x40000000 2023-10-06 10:33:43 +02:00
mem memory-device,vhost: Support automatic decision on the number of memslots 2023-10-12 14:15:22 +02:00
microblaze hw/microblaze: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
mips virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
misc misc/led: LED state is set opposite of what is expected 2023-10-27 12:51:17 +01:00
net hw/net/cadence_gem: enforce 32 bits variable size for CRC 2023-10-27 15:27:06 +01:00
nios2 hw/nios2: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
nubus
nvme hw/nvme: Clean up local variable shadowing in nvme_ns_init() 2023-09-29 10:07:20 +02:00
nvram xlnx-versal-efuse: hw/nvram: Remove deprecated device reset 2023-10-19 13:01:52 +01:00
openrisc
pci hw/pci: Clean up global variable shadowing of address_space_io variable 2023-10-19 23:13:28 +02:00
pci-bridge hw/pci-bridge/cxl-upstream: Add serial number extended capability support 2023-10-04 18:15:06 -04:00
pci-host target/hppa: Add emulation of a C3700 HP-PARISC workstation 2023-10-20 06:46:26 -07:00
pcmcia hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
ppc ppc/{bamboo, virtex_ml507}: Remove useless dependency on ppc405.h header 2023-10-21 15:00:22 +03:00
rdma hw/rdma/vmw/pvrdma_cmd: Use correct struct in query_port() 2023-10-21 15:00:22 +03:00
remote migration: simplify blockers 2023-10-20 08:51:41 +02:00
riscv target/riscv: move KVM only files to kvm subdir 2023-10-12 12:20:24 +10:00
rtc hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
rx hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
s390x kvm: require KVM_CAP_IOEVENTFD and KVM_CAP_IOEVENTFD_ANY_LENGTH 2023-10-25 17:35:15 +02:00
scsi util/defer-call: move defer_call() to util/ 2023-10-31 15:41:42 +01:00
sd hw/sd/pxa2xx: Do not open-code sysbus_create_simple() 2023-10-27 12:48:57 +01:00
sensor
sh4 hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
smbios hw/acpi: changes towards enabling -Wshadow=local 2023-09-29 10:07:18 +02:00
sparc
sparc64 hw/sparc64/ebus: Access memory regions via pci_address_space_io() 2023-10-19 23:13:28 +02:00
ssi hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
timer virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
tpm
tricore hw/tricore: Log failing test in testdevice 2023-09-29 08:28:02 +02:00
ufs hw/ufs: Modify lu.c to share codes with SCSI subsystem 2023-10-30 10:28:04 +09:00
usb hw/usb: Silence compiler warnings in USB code when compiling with -Wshadow 2023-10-06 13:27:48 +02:00
vfio migration: simplify notifiers 2023-10-20 08:51:41 +02:00
virtio kvm: require KVM_CAP_IOEVENTFD and KVM_CAP_IOEVENTFD_ANY_LENGTH 2023-10-25 17:35:15 +02:00
watchdog
xen hw/xen: cleanup sourcesets 2023-10-18 10:01:01 +02:00
xenpv
xtensa
Kconfig
meson.build