History log of /openbmc/qemu/include/block/ (Results 176 – 200 of 1548)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
4bee90e926-Jan-2023 Kevin Wolf <kwolf@redhat.com>

block: Create no_co_wrappers for open functions

Images can't be opened in coroutine context because opening needs to
change the block graph. Add no_co_wrappers so that coroutines have a
simple way o

block: Create no_co_wrappers for open functions

Images can't be opened in coroutine context because opening needs to
change the block graph. Add no_co_wrappers so that coroutines have a
simple way of opening images in a BH instead.

At the same time, mark the wrapped functions as no_coroutine_fn.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230126172432.436111-3-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

d6ee2e3226-Jan-2023 Kevin Wolf <kwolf@redhat.com>

block-coroutine-wrapper: Introduce no_co_wrapper

Some functions must not be called from coroutine context. The common
pattern to use them anyway from a coroutine is running them in a BH and
letting

block-coroutine-wrapper: Introduce no_co_wrapper

Some functions must not be called from coroutine context. The common
pattern to use them anyway from a coroutine is running them in a BH and
letting the calling coroutine yield to be woken up when the BH is
completed.

Instead of manually writing such wrappers, add support for generating
them to block-coroutine-wrapper.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230126172432.436111-2-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitmodules
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/audio/sndioaudio.c
/openbmc/qemu/backends/hostmem-epc.c
/openbmc/qemu/backends/tpm/tpm_emulator.c
/openbmc/qemu/backends/tpm/tpm_ioctl.h
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/export/vduse-blk.c
/openbmc/qemu/block/io.c
/openbmc/qemu/block/iscsi.c
/openbmc/qemu/bsd-user/qemu.h
/openbmc/qemu/configure
/openbmc/qemu/crypto/tlssession.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/fsdev/p9array.h
/openbmc/qemu/hw/9pfs/9p.c
/openbmc/qemu/hw/acpi/piix4.c
/openbmc/qemu/hw/alpha/dp264.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/block/pflash_cfi01.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/char/ibex_uart.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/display/virtio-gpu-udmabuf.c
/openbmc/qemu/hw/display/virtio-gpu-virgl.c
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/hyperv/syndbg.c
/openbmc/qemu/hw/i2c/pmbus_device.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/loongarch/acpi-build.c
/openbmc/qemu/hw/misc/Kconfig
/openbmc/qemu/hw/misc/applesmc.c
/openbmc/qemu/hw/misc/macio/cuda.c
/openbmc/qemu/hw/misc/macio/pmu.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/net/xilinx_axienet.c
/openbmc/qemu/hw/ppc/ppc405_uc.c
/openbmc/qemu/hw/ppc/ppc440_bamboo.c
/openbmc/qemu/hw/ppc/spapr_drc.c
/openbmc/qemu/hw/rdma/vmw/pvrdma_dev_ring.c
/openbmc/qemu/hw/remote/machine.c
/openbmc/qemu/hw/remote/proxy-memory-listener.c
/openbmc/qemu/hw/remote/remote-obj.c
/openbmc/qemu/hw/rtc/mc146818rtc.c
/openbmc/qemu/hw/s390x/event-facility.c
/openbmc/qemu/hw/s390x/s390-stattrib.c
/openbmc/qemu/hw/s390x/virtio-ccw-serial.c
/openbmc/qemu/hw/sensor/adm1272.c
/openbmc/qemu/hw/ssi/ibex_spi_host.c
/openbmc/qemu/hw/usb/dev-storage-bot.c
/openbmc/qemu/hw/usb/dev-storage-classic.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/vhost-user-fs.c
block-common.h
/openbmc/qemu/include/crypto/tlssession.h
/openbmc/qemu/include/disas/dis-asm.h
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/hw/arm/allwinner-a10.h
/openbmc/qemu/include/hw/arm/fsl-imx6ul.h
/openbmc/qemu/include/hw/arm/fsl-imx7.h
/openbmc/qemu/include/hw/arm/smmuv3.h
/openbmc/qemu/include/hw/char/ibex_uart.h
/openbmc/qemu/include/hw/misc/aspeed_lpc.h
/openbmc/qemu/include/hw/pci/pcie_doe.h
/openbmc/qemu/include/hw/ssi/ibex_spi_host.h
/openbmc/qemu/include/migration/register.h
/openbmc/qemu/include/qemu/async-teardown.h
/openbmc/qemu/include/qemu/bswap.h
/openbmc/qemu/include/qemu/dbus.h
/openbmc/qemu/include/qemu/envlist.h
/openbmc/qemu/include/qemu/host-utils.h
/openbmc/qemu/include/qemu/rcu.h
/openbmc/qemu/include/qemu/rcu_queue.h
/openbmc/qemu/include/qemu/thread.h
/openbmc/qemu/include/qemu/uri.h
/openbmc/qemu/include/qemu/vhost-user-server.h
/openbmc/qemu/include/standard-headers/drm/drm_fourcc.h
/openbmc/qemu/include/standard-headers/linux/ethtool.h
/openbmc/qemu/include/standard-headers/linux/fuse.h
/openbmc/qemu/include/standard-headers/linux/input-event-codes.h
/openbmc/qemu/include/standard-headers/linux/virtio_blk.h
/openbmc/qemu/include/sysemu/accel-blocker.h
/openbmc/qemu/include/sysemu/event-loop-base.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/io/channel-tls.c
/openbmc/qemu/linux-headers/asm-generic/hugetlb_encode.h
/openbmc/qemu/linux-headers/asm-generic/mman-common.h
/openbmc/qemu/linux-headers/asm-mips/mman.h
/openbmc/qemu/linux-headers/asm-riscv/kvm.h
/openbmc/qemu/linux-headers/linux/kvm.h
/openbmc/qemu/linux-headers/linux/psci.h
/openbmc/qemu/linux-headers/linux/userfaultfd.h
/openbmc/qemu/linux-headers/linux/vfio.h
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/block-dirty-bitmap.c
/openbmc/qemu/migration/block.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/multifd.h
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/postcopy-ram.h
/openbmc/qemu/migration/qemu-file.c
/openbmc/qemu/migration/qemu-file.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/savevm.h
/openbmc/qemu/migration/trace-events
/openbmc/qemu/migration/xbzrle.c
/openbmc/qemu/migration/xbzrle.h
/openbmc/qemu/pc-bios/README
/openbmc/qemu/pc-bios/meson.build
/openbmc/qemu/qemu-io-cmds.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/roms/Makefile
/openbmc/qemu/scripts/block-coroutine-wrapper.py
/openbmc/qemu/scripts/ci/org.centos/stream/8/build-environment.yml
/openbmc/qemu/scripts/ci/org.centos/stream/8/x86_64/configure
/openbmc/qemu/scripts/ci/setup/build-environment.yml
/openbmc/qemu/scripts/meson-buildoptions.py
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/softmmu/dirtylimit.c
/openbmc/qemu/softmmu/runstate.c
/openbmc/qemu/softmmu/vl.c
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/loongarch/translate.c
/openbmc/qemu/target/mips/tcg/translate.c
/openbmc/qemu/target/nios2/translate.c
/openbmc/qemu/target/tricore/translate.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tests/bench/meson.build
/openbmc/qemu/tests/bench/xbzrle-bench.c
/openbmc/qemu/tests/migration/guestperf/engine.py
/openbmc/qemu/tests/qemu-iotests/186
/openbmc/qemu/tests/qemu-iotests/tests/detect-zeroes-registered-buf
/openbmc/qemu/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/device-plug-test.c
/openbmc/qemu/tests/qtest/drive_del-test.c
/openbmc/qemu/tests/qtest/fuzz-lsi53c895a-test.c
/openbmc/qemu/tests/qtest/hd-geo-test.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/netdev-socket.c
/openbmc/qemu/tests/qtest/npcm7xx_pwm-test.c
/openbmc/qemu/tests/qtest/pxe-test.c
/openbmc/qemu/tests/tcg/i386/Makefile.target
/openbmc/qemu/tests/tcg/i386/test-i386-adcox.c
/openbmc/qemu/tests/tcg/i386/test-i386-bmi2.c
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/tricore/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/tricore/macros.h
/openbmc/qemu/tests/tcg/tricore/test_dextr.S
/openbmc/qemu/tests/tcg/tricore/test_imask.S
/openbmc/qemu/tests/tcg/tricore/test_insert.S
/openbmc/qemu/tests/tcg/tricore/test_ld_bu.S
/openbmc/qemu/tests/tcg/tricore/test_ld_h.S
/openbmc/qemu/tests/unit/test-cutils.c
/openbmc/qemu/tests/unit/test-seccomp.c
/openbmc/qemu/tests/unit/test-xbzrle.c
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus-clipboard.c
/openbmc/qemu/ui/dbus-console.c
/openbmc/qemu/ui/dbus-listener.c
/openbmc/qemu/ui/dbus.c
/openbmc/qemu/ui/egl-headless.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/spice-app.c
/openbmc/qemu/ui/spice-core.c
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/udmabuf.c
/openbmc/qemu/ui/vdagent.c
/openbmc/qemu/util/async-teardown.c
/openbmc/qemu/util/main-loop.c
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/qemu-thread-posix.c
/openbmc/qemu/util/trace-events
/openbmc/qemu/util/userfaultfd.c
/openbmc/qemu/util/vhost-user-server.c
02f95e9102-Feb-2023 Markus Armbruster <armbru@redhat.com>

block: Clean up includes

This commit was created with scripts/clean-includes.

All .c should include qemu/osdep.h first. The script performs three
related cleanups:

* Ensure .c files include qemu/

block: Clean up includes

This commit was created with scripts/clean-includes.

All .c should include qemu/osdep.h first. The script performs three
related cleanups:

* Ensure .c files include qemu/osdep.h first.
* Including it in a .h is redundant, since the .c already includes
it. Drop such inclusions.
* Likewise, including headers qemu/osdep.h includes is redundant.
Drop these, too.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20230202133830.2152150-16-armbru@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/base.yml
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-12.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-13.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-12.vars
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-20.04-s390x.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml
/openbmc/qemu/.gitlab-ci.d/windows.yml
/openbmc/qemu/.travis.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/atomic_common.c.inc
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/accel/tcg/plugin-helpers.h
/openbmc/qemu/accel/tcg/tb-jmp-cache.h
/openbmc/qemu/accel/tcg/tcg-runtime.h
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/accel/tcg/user-exec.c
/openbmc/qemu/audio/audio-hmp-cmds.c
/openbmc/qemu/audio/audio.c
/openbmc/qemu/audio/audio_legacy.c
/openbmc/qemu/audio/audio_template.h
/openbmc/qemu/audio/meson.build
/openbmc/qemu/block/monitor/block-hmp-cmds.c
/openbmc/qemu/block/qapi.c
/openbmc/qemu/bsd-user/arm/signal.c
/openbmc/qemu/bsd-user/arm/target_arch_cpu.c
/openbmc/qemu/bsd-user/bsd-proc.h
/openbmc/qemu/bsd-user/freebsd/os-sys.c
/openbmc/qemu/bsd-user/i386/signal.c
/openbmc/qemu/bsd-user/i386/target_arch_cpu.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/bsd-user/qemu.h
/openbmc/qemu/bsd-user/strace.c
/openbmc/qemu/bsd-user/x86_64/signal.c
/openbmc/qemu/bsd-user/x86_64/target_arch_cpu.c
/openbmc/qemu/chardev/char-hmp-cmds.c
/openbmc/qemu/chardev/char-socket.c
/openbmc/qemu/chardev/char.c
/openbmc/qemu/chardev/meson.build
/openbmc/qemu/common-user/host/ppc/safe-syscall.inc.S
/openbmc/qemu/configs/devices/x86_64-softmmu/x86_64-quintela-devices.mak
/openbmc/qemu/configs/devices/x86_64-softmmu/x86_64-quintela2-devices.mak
/openbmc/qemu/configs/targets/nios2-softmmu.mak
/openbmc/qemu/configure
/openbmc/qemu/cpu.c
/openbmc/qemu/crypto/block-luks-priv.h
/openbmc/qemu/disas.c
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/emulation.rst
/openbmc/qemu/docs/about/index.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/conf.py
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/docs/devel/tcg-plugins.rst
/openbmc/qemu/docs/devel/vfio-migration.rst
/openbmc/qemu/docs/interop/live-block-operations.rst
/openbmc/qemu/docs/interop/qemu-qmp-ref.rst
/openbmc/qemu/docs/pcie.txt
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/system/index.rst
/openbmc/qemu/docs/system/introduction.rst
/openbmc/qemu/docs/system/multi-process.rst
/openbmc/qemu/docs/system/s390x/pcidevices.rst
/openbmc/qemu/docs/system/target-s390x.rst
/openbmc/qemu/docs/tools/index.rst
/openbmc/qemu/docs/user/index.rst
/openbmc/qemu/hmp-commands.hx
/openbmc/qemu/hw/acpi/Kconfig
/openbmc/qemu/hw/acpi/acpi-qmp-cmds.c
/openbmc/qemu/hw/acpi/acpi-x86-stub.c
/openbmc/qemu/hw/acpi/acpi_interface.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/meson.build
/openbmc/qemu/hw/acpi/pci-bridge-stub.c
/openbmc/qemu/hw/acpi/pci-bridge.c
/openbmc/qemu/hw/acpi/pcihp.c
/openbmc/qemu/hw/acpi/piix4.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast10x0.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/arm/aspeed_eeprom.c
/openbmc/qemu/hw/arm/aspeed_eeprom.h
/openbmc/qemu/hw/arm/aspeed_soc.c
/openbmc/qemu/hw/arm/meson.build
/openbmc/qemu/hw/arm/msf2-som.c
/openbmc/qemu/hw/arm/npcm7xx_boards.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/block/m25p80.c
/openbmc/qemu/hw/block/m25p80_sfdp.c
/openbmc/qemu/hw/block/m25p80_sfdp.h
/openbmc/qemu/hw/char/pl011.c
/openbmc/qemu/hw/core/machine-hmp-cmds.c
/openbmc/qemu/hw/core/machine-qmp-cmds.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/display/sm501.c
/openbmc/qemu/hw/i2c/smbus_ich9.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/acpi-common.c
/openbmc/qemu/hw/i386/acpi-microvm.c
/openbmc/qemu/hw/i386/microvm.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/input/tsc210x.c
/openbmc/qemu/hw/intc/arm_gicv3_cpuif.c
/openbmc/qemu/hw/isa/isa-bus.c
/openbmc/qemu/hw/isa/lpc_ich9.c
/openbmc/qemu/hw/isa/piix3.c
/openbmc/qemu/hw/misc/aspeed_hace.c
/openbmc/qemu/hw/misc/aspeed_sdmc.c
/openbmc/qemu/hw/misc/macio/cuda.c
/openbmc/qemu/hw/misc/macio/macio.c
/openbmc/qemu/hw/misc/macio/pmu.c
/openbmc/qemu/hw/misc/mos6522.c
/openbmc/qemu/hw/misc/sifive_u_otp.c
/openbmc/qemu/hw/net/ftgmac100.c
/openbmc/qemu/hw/net/meson.build
/openbmc/qemu/hw/net/rocker/rocker-hmp-cmds.c
/openbmc/qemu/hw/nvram/eeprom_at24c.c
/openbmc/qemu/hw/nvram/fw_cfg.c
/openbmc/qemu/hw/nvram/mac_nvram.c
/openbmc/qemu/hw/pci-bridge/gen_pcie_root_port.c
/openbmc/qemu/hw/pci-bridge/pci_bridge_dev.c
/openbmc/qemu/hw/pci-host/grackle.c
/openbmc/qemu/hw/pci-host/mv64361.c
/openbmc/qemu/hw/pci-host/pnv_phb4.c
/openbmc/qemu/hw/pci-host/raven.c
/openbmc/qemu/hw/pci-host/uninorth.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_bridge.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/pci/pcie_port.c
/openbmc/qemu/hw/pci/shpc.c
/openbmc/qemu/hw/ppc/e500.c
/openbmc/qemu/hw/ppc/e500plat.c
/openbmc/qemu/hw/ppc/mac_newworld.c
/openbmc/qemu/hw/ppc/mac_oldworld.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/riscv/boot.c
/openbmc/qemu/hw/riscv/microchip_pfsoc.c
/openbmc/qemu/hw/riscv/opentitan.c
/openbmc/qemu/hw/riscv/sifive_u.c
/openbmc/qemu/hw/riscv/spike.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/s390x/s390-stattrib.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/meson.build
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/virtio-hmp-cmds.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/hw/watchdog/wdt_aspeed.c
graph-lock.h
write-threshold.h
/openbmc/qemu/include/exec/cpu_ldst.h
/openbmc/qemu/include/exec/helper-head.h
/openbmc/qemu/include/exec/helper-proto.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/acpi/acpi_aml_interface.h
/openbmc/qemu/include/hw/acpi/acpi_dev_interface.h
/openbmc/qemu/include/hw/acpi/pci.h
/openbmc/qemu/include/hw/arm/aspeed_soc.h
/openbmc/qemu/include/hw/arm/virt.h
/openbmc/qemu/include/hw/char/pl011.h
/openbmc/qemu/include/hw/cxl/cxl_component.h
/openbmc/qemu/include/hw/cxl/cxl_host.h
/openbmc/qemu/include/hw/cxl/cxl_pci.h
/openbmc/qemu/include/hw/i386/intel_iommu.h
/openbmc/qemu/include/hw/i386/microvm.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/input/pl050.h
/openbmc/qemu/include/hw/isa/isa.h
/openbmc/qemu/include/hw/loader.h
/openbmc/qemu/include/hw/misc/mac_via.h
/openbmc/qemu/include/hw/misc/macio/cuda.h
/openbmc/qemu/include/hw/misc/macio/pmu.h
/openbmc/qemu/include/hw/misc/mos6522.h
/openbmc/qemu/include/hw/nvram/eeprom_at24c.h
/openbmc/qemu/include/hw/nvram/fw_cfg.h
/openbmc/qemu/include/hw/nvram/mac_nvram.h
/openbmc/qemu/include/hw/pci-host/pnv_phb4.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pcie_port.h
/openbmc/qemu/include/hw/riscv/boot.h
/openbmc/qemu/include/hw/riscv/opentitan.h
/openbmc/qemu/include/hw/tricore/triboard.h
/openbmc/qemu/include/hw/virtio/virtio-mem.h
/openbmc/qemu/include/hw/watchdog/wdt_aspeed.h
/openbmc/qemu/include/io/channel.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/migration/register.h
/openbmc/qemu/include/migration/vmstate.h
/openbmc/qemu/include/monitor/hmp-target.h
/openbmc/qemu/include/monitor/hmp.h
/openbmc/qemu/include/monitor/monitor.h
/openbmc/qemu/include/monitor/qmp-helpers.h
/openbmc/qemu/include/net/net.h
/openbmc/qemu/include/qemu/atomic128.h
/openbmc/qemu/include/qemu/bswap.h
/openbmc/qemu/include/qemu/int128.h
/openbmc/qemu/include/qemu/plugin.h
/openbmc/qemu/include/qemu/readline.h
/openbmc/qemu/include/qemu/thread.h
/openbmc/qemu/include/qemu/userfaultfd.h
/openbmc/qemu/include/sysemu/stats.h
/openbmc/qemu/include/tcg/tcg-op.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/io/channel-buffer.c
/openbmc/qemu/io/channel-command.c
/openbmc/qemu/io/channel-file.c
/openbmc/qemu/io/channel-null.c
/openbmc/qemu/io/channel-socket.c
/openbmc/qemu/io/channel-tls.c
/openbmc/qemu/io/channel-websock.c
/openbmc/qemu/io/channel.c
/openbmc/qemu/linux-user/aarch64/target_flat.h
/openbmc/qemu/linux-user/arm/target_flat.h
/openbmc/qemu/linux-user/generic/target_flat.h
/openbmc/qemu/linux-user/include/host/ppc/host-signal.h
/openbmc/qemu/linux-user/m68k/target_flat.h
/openbmc/qemu/linux-user/microblaze/target_flat.h
/openbmc/qemu/linux-user/mmap.c
/openbmc/qemu/linux-user/sh4/target_flat.h
/openbmc/qemu/linux-user/strace.c
/openbmc/qemu/linux-user/strace.list
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/block-dirty-bitmap.c
/openbmc/qemu/migration/block.c
/openbmc/qemu/migration/channel-block.c
/openbmc/qemu/migration/channel.c
/openbmc/qemu/migration/channel.h
/openbmc/qemu/migration/dirtyrate.c
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/migration-hmp-cmds.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/multifd.c.orig
/openbmc/qemu/migration/multifd.h
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/postcopy-ram.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/savevm.h
/openbmc/qemu/migration/threadinfo.c
/openbmc/qemu/migration/threadinfo.h
/openbmc/qemu/migration/trace-events
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/monitor/fds.c
/openbmc/qemu/monitor/hmp-cmds-target.c
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/monitor/hmp-target.c
/openbmc/qemu/monitor/hmp.c
/openbmc/qemu/monitor/meson.build
/openbmc/qemu/monitor/monitor-internal.h
/openbmc/qemu/monitor/monitor.c
/openbmc/qemu/monitor/qmp-cmds-control.c
/openbmc/qemu/monitor/qmp-cmds.c
/openbmc/qemu/net/meson.build
/openbmc/qemu/net/net-hmp-cmds.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/vmnet_int.h
/openbmc/qemu/plugins/core.c
/openbmc/qemu/python/qemu/machine/console_socket.py
/openbmc/qemu/python/qemu/machine/machine.py
/openbmc/qemu/python/qemu/machine/qtest.py
/openbmc/qemu/python/qemu/qmp/legacy.py
/openbmc/qemu/python/qemu/qmp/protocol.py
/openbmc/qemu/python/qemu/qmp/qmp_client.py
/openbmc/qemu/python/qemu/qmp/qmp_tui.py
/openbmc/qemu/qapi/audio.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/commands-posix.c
/openbmc/qemu/qga/cutils.c
/openbmc/qemu/qga/cutils.h
/openbmc/qemu/qom/qom-hmp-cmds.c
/openbmc/qemu/scripts/ci/setup/build-environment.yml
/openbmc/qemu/scripts/ci/setup/gitlab-runner.yml
/openbmc/qemu/scripts/ci/setup/vars.yml.template
/openbmc/qemu/scripts/clean-includes
/openbmc/qemu/scripts/oss-fuzz/lsan_suppressions.txt
/openbmc/qemu/scripts/shaderinclude.py
/openbmc/qemu/scsi/qemu-pr-helper.c
/openbmc/qemu/semihosting/syscalls.c
/openbmc/qemu/softmmu/meson.build
/openbmc/qemu/softmmu/qdev-monitor.c
/openbmc/qemu/softmmu/runstate-hmp-cmds.c
/openbmc/qemu/softmmu/tpm-hmp-cmds.c
/openbmc/qemu/stats/meson.build
/openbmc/qemu/stats/stats-hmp-cmds.c
/openbmc/qemu/stats/stats-qmp-cmds.c
/openbmc/qemu/storage-daemon/qemu-storage-daemon.c
/openbmc/qemu/target/arm/cpregs.h
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/helper-a64.c
/openbmc/qemu/target/arm/helper-a64.h
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/hvf/trace-events
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/op_helper.c
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/syndrome.h
/openbmc/qemu/target/arm/translate-a64.c
/openbmc/qemu/target/arm/translate.c
/openbmc/qemu/target/arm/translate.h
/openbmc/qemu/target/hexagon/hex_arch_types.h
/openbmc/qemu/target/hexagon/mmvec/macros.h
/openbmc/qemu/target/i386/hax/hax-all.c
/openbmc/qemu/target/i386/helper.h
/openbmc/qemu/target/i386/tcg/mem_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/loongarch/disas.c
/openbmc/qemu/target/loongarch/insn_trans/trans_branch.c.inc
/openbmc/qemu/target/loongarch/insns.decode
/openbmc/qemu/target/loongarch/meson.build
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/mem_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/cpu_vendorid.h
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/debug.c
/openbmc/qemu/target/riscv/helper.h
/openbmc/qemu/target/riscv/insn_trans/trans_rva.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvb.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvd.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvf.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvh.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvi.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzfh.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_svinval.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_xthead.c.inc
/openbmc/qemu/target/riscv/kvm.c
/openbmc/qemu/target/riscv/meson.build
/openbmc/qemu/target/riscv/op_helper.c
/openbmc/qemu/target/riscv/pmu.h
/openbmc/qemu/target/riscv/time_helper.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/riscv/xthead.decode
/openbmc/qemu/target/s390x/helper.h
/openbmc/qemu/target/s390x/tcg/fpu_helper.c
/openbmc/qemu/target/s390x/tcg/insn-data.h.inc
/openbmc/qemu/target/s390x/tcg/int_helper.c
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tcg/aarch64/tcg-target.h
/openbmc/qemu/tcg/arm/tcg-target-con-set.h
/openbmc/qemu/tcg/arm/tcg-target-con-str.h
/openbmc/qemu/tcg/arm/tcg-target.c.inc
/openbmc/qemu/tcg/arm/tcg-target.h
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-insn-defs.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target-con-set.h
/openbmc/qemu/tcg/loongarch64/tcg-target-con-str.h
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.h
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/sparc64/tcg-target.c.inc
/openbmc/qemu/tcg/sparc64/tcg-target.h
/openbmc/qemu/tcg/tcg-internal.h
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tcg/tci/tcg-target.c.inc
/openbmc/qemu/tcg/tci/tcg-target.h
/openbmc/qemu/tests/avocado/avocado_qemu/__init__.py
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/data/acpi/pc/DSDT
/openbmc/qemu/tests/data/acpi/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/pc/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/pc/DSDT.bridge
/openbmc/qemu/tests/data/acpi/pc/DSDT.cphp
/openbmc/qemu/tests/data/acpi/pc/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/pc/DSDT.hpbridge
/openbmc/qemu/tests/data/acpi/pc/DSDT.hpbrroot
/openbmc/qemu/tests/data/acpi/pc/DSDT.ipmikcs
/openbmc/qemu/tests/data/acpi/pc/DSDT.memhp
/openbmc/qemu/tests/data/acpi/pc/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/pc/DSDT.numamem
/openbmc/qemu/tests/data/acpi/pc/DSDT.roothp
/openbmc/qemu/tests/data/acpi/q35/DSDT
/openbmc/qemu/tests/data/acpi/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/q35/DSDT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/q35/DSDT.applesmc
/openbmc/qemu/tests/data/acpi/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/q35/DSDT.ipmismbus
/openbmc/qemu/tests/data/acpi/q35/DSDT.ivrs
/openbmc/qemu/tests/data/acpi/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/q35/DSDT.multi-bridge
/openbmc/qemu/tests/data/acpi/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/q35/DSDT.pvpanic-isa
/openbmc/qemu/tests/data/acpi/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/data/acpi/q35/DSDT.viot
/openbmc/qemu/tests/data/acpi/q35/DSDT.xapic
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/centos8.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-toolchain.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-tricore-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-i386-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win32-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2004.docker
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/migration/guestperf/engine.py
/openbmc/qemu/tests/migration/meson.build
/openbmc/qemu/tests/qapi-schema/meson.build
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/boot-sector.c
/openbmc/qemu/tests/qtest/boot-serial-test.c
/openbmc/qemu/tests/qtest/display-vga-test.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/netdev-socket.c
/openbmc/qemu/tests/qtest/qom-test.c
/openbmc/qemu/tests/qtest/tpm-emu.c
/openbmc/qemu/tests/qtest/vnc-display-test.c
/openbmc/qemu/tests/tcg/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/aarch64/system/boot.S
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/cdsg.c
/openbmc/qemu/tests/tcg/s390x/clst.c
/openbmc/qemu/tests/tcg/s390x/div.c
/openbmc/qemu/tests/tcg/s390x/long-double.c
/openbmc/qemu/tests/unit/test-io-channel-command.c
/openbmc/qemu/tests/unit/test-io-channel-socket.c
/openbmc/qemu/tests/vm/centos.aarch64
/openbmc/qemu/trace/meson.build
/openbmc/qemu/trace/trace-hmp-cmds.c
/openbmc/qemu/util/int128.c
/openbmc/qemu/util/qht.c
/openbmc/qemu/util/readline.c
/openbmc/qemu/util/userfaultfd.c
/openbmc/qemu/util/vhost-user-server.c
d570177b20-Jun-2022 Hanna Reitz <hreitz@redhat.com>

qemu-img: Change info key names for protocol nodes

Currently, when querying a qcow2 image, qemu-img info reports something
like this:

image: test.qcow2
file format: qcow2
virtual size: 64 MiB (6710

qemu-img: Change info key names for protocol nodes

Currently, when querying a qcow2 image, qemu-img info reports something
like this:

image: test.qcow2
file format: qcow2
virtual size: 64 MiB (67108864 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
Child node '/file':
image: test.qcow2
file format: file
virtual size: 192 KiB (197120 bytes)
disk size: 196 KiB
Format specific information:
extent size hint: 1048576

Notably, the way the keys are named is specific for image files: The
filename is shown under "image", the BDS driver under "file format", and
the BDS length under "virtual size". This does not make much sense for
nodes that are not actually supposed to be guest images, like the /file
child node shown above.

Give bdrv_node_info_dump() a @protocol parameter that gives a hint that
the respective node is probably just used for data storage and does not
necessarily present the data for a VM guest disk. This renames the keys
so that with this patch, the output becomes:

image: test.qcow2
[...]
Child node '/file':
filename: test.qcow2
protocol type: file
file length: 192 KiB (197120 bytes)
disk size: 196 KiB
Format specific information:
extent size hint: 1048576

(Perhaps we should also rename "Format specific information", but I
could not come up with anything better that will not become problematic
if we guess wrong with the protocol "heuristic".)

This change affects iotest 302, which has protocol node information in
its reference output.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-13-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

76c9e97520-Jun-2022 Hanna Reitz <hreitz@redhat.com>

block/qapi: Add indentation to bdrv_node_info_dump()

In order to let qemu-img info present a block graph, add a parameter to
bdrv_node_info_dump() and bdrv_image_info_specific_dump() so that the
inf

block/qapi: Add indentation to bdrv_node_info_dump()

In order to let qemu-img info present a block graph, add a parameter to
bdrv_node_info_dump() and bdrv_image_info_specific_dump() so that the
information of nodes below the root level can be given an indentation.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-9-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

6cab339920-Jun-2022 Hanna Reitz <hreitz@redhat.com>

block/qapi: Introduce BlockGraphInfo

Introduce a new QAPI type BlockGraphInfo and an associated
bdrv_query_block_graph_info() function that recursively gathers
BlockNodeInfo objects through a block

block/qapi: Introduce BlockGraphInfo

Introduce a new QAPI type BlockGraphInfo and an associated
bdrv_query_block_graph_info() function that recursively gathers
BlockNodeInfo objects through a block graph.

A follow-up patch is going to make "qemu-img info" use this to print
information about all nodes that are (usually implicitly) opened for a
given image file.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-8-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

5d88135920-Jun-2022 Hanna Reitz <hreitz@redhat.com>

block/qapi: Let bdrv_query_image_info() recurse

There is no real reason why bdrv_query_image_info() should generally not
recurse. The ImageInfo struct has a pointer to the backing image, so it
shou

block/qapi: Let bdrv_query_image_info() recurse

There is no real reason why bdrv_query_image_info() should generally not
recurse. The ImageInfo struct has a pointer to the backing image, so it
should generally be filled, unless the caller explicitly opts out.

This moves the recursing code from bdrv_block_device_info() into
bdrv_query_image_info().

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-7-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

b1f4cd1520-Jun-2022 Hanna Reitz <hreitz@redhat.com>

qemu-img: Use BlockNodeInfo

qemu-img info never uses ImageInfo's backing-image field, because it
opens the backing chain one by one with BDRV_O_NO_BACKING, and prints
all backing chain nodes' inform

qemu-img: Use BlockNodeInfo

qemu-img info never uses ImageInfo's backing-image field, because it
opens the backing chain one by one with BDRV_O_NO_BACKING, and prints
all backing chain nodes' information consecutively. Use BlockNodeInfo
to make it clear that we only print information about a single node, and
that we are not using the backing-image field.

Notably, bdrv_image_info_dump() does not evaluate the backing-image
field, so we can easily make it take a BlockNodeInfo pointer (and
consequentially rename it to bdrv_node_info_dump()). It makes more
sense this way, because again, the interface now makes it syntactically
clear that backing-image is ignored by this function.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-6-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

a2085f8920-Jun-2022 Hanna Reitz <hreitz@redhat.com>

block: Split BlockNodeInfo off of ImageInfo

ImageInfo sometimes contains flat information, and sometimes it does
not. Split off a BlockNodeInfo struct, which only contains information
about a singl

block: Split BlockNodeInfo off of ImageInfo

ImageInfo sometimes contains flat information, and sometimes it does
not. Split off a BlockNodeInfo struct, which only contains information
about a single node and has no link to the backing image.

We do this so we can extend BlockNodeInfo to a BlockGraphInfo struct,
which has links to all child nodes, not just the backing node. It would
be strange to base BlockGraphInfo on ImageInfo, because then this
extended struct would have two links to the backing node (one in
BlockGraphInfo as one of all the child links, and one in ImageInfo).

Furthermore, it is quite common to ignore the backing-image field
altogether: bdrv_query_image_info() does not set it, and
bdrv_image_info_dump() does not evaluate it. That signals that we
should have different structs for describing a single node and one that
has a link to the backing image.

Still, bdrv_query_image_info() and bdrv_image_info_dump() are not
changed too much in this patch. Follow-up patches will handle them.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-5-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

3716470b20-Jun-2022 Hanna Reitz <hreitz@redhat.com>

block: Improve empty format-specific info dump

When a block driver supports obtaining format-specific information, but
that object only contains optional fields, it is possible that none of
them are

block: Improve empty format-specific info dump

When a block driver supports obtaining format-specific information, but
that object only contains optional fields, it is possible that none of
them are present, so that dump_qobject() (called by
bdrv_image_info_specific_dump()) will not print anything.

The callers of bdrv_image_info_specific_dump() put a header above this
information ("Format specific information:\n"), which will look strange
when there is nothing below. Modify bdrv_image_info_specific_dump() to
print this header instead of its callers, and only if there is indeed
something to be printed.

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220620162704.80987-2-hreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

fcb9e05125-Nov-2022 Philippe Mathieu-Daudé <philmd@linaro.org>

block/nbd: Add missing <qemu/bswap.h> include

The inlined nbd_readXX() functions call beXX_to_cpu(), themselves
declared in <qemu/bswap.h>. This fixes when refactoring:

In file included from ../.

block/nbd: Add missing <qemu/bswap.h> include

The inlined nbd_readXX() functions call beXX_to_cpu(), themselves
declared in <qemu/bswap.h>. This fixes when refactoring:

In file included from ../../block/nbd.c:44:
include/block/nbd.h: In function 'nbd_read16':
include/block/nbd.h:383:12: error: implicit declaration of function 'be16_to_cpu' [-Werror=implicit-function-declaration]
383 | *val = be##bits##_to_cpu(*val); \
| ^~
include/block/nbd.h:387:1: note: in expansion of macro 'DEF_NBD_READ_N'
387 | DEF_NBD_READ_N(16) /* Defines nbd_read16(). */
| ^~~~~~~~~~~~~~

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221125175328.48539-1-philmd@linaro.org>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

ca5e2ad913-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Rename bdrv_load/save_vmstate() to bdrv_co_load/save_vmstate()

Since these functions always run in coroutine context, adjust
their name to include "_co_", just like all other BlockDriver call

block: Rename bdrv_load/save_vmstate() to bdrv_co_load/save_vmstate()

Since these functions always run in coroutine context, adjust
their name to include "_co_", just like all other BlockDriver callbacks.

No functional change intended.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-15-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

c834dc0513-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_debug_event() to co_wrapper_mixed

bdrv_debug_event() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it

block: Convert bdrv_debug_event() to co_wrapper_mixed

bdrv_debug_event() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it traverses the block nodes graph, which however is only possible in a
coroutine.

Therefore turn it into a co_wrapper_mixed to move the actual function
into a coroutine where the lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-14-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

2c75261c13-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_lock_medium() to co_wrapper

bdrv_lock_medium() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it trave

block: Convert bdrv_lock_medium() to co_wrapper

bdrv_lock_medium() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it traverses the block nodes graph, which however is only possible in a
coroutine.

The only caller of this function is blk_lock_medium(). Therefore make
blk_lock_medium() a co_wrapper, so that it always creates a new
coroutine, and then make bdrv_lock_medium() a coroutine_fn where the
lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-13-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

2531b39013-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_eject() to co_wrapper

bdrv_eject() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it traverses the blo

block: Convert bdrv_eject() to co_wrapper

bdrv_eject() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it traverses the block nodes graph, which however is only possible in a
coroutine.

The only caller of this function is blk_eject(). Therefore make
blk_eject() a co_wrapper, so that it always creates a new coroutine, and
then make bdrv_eject() coroutine_fn where the lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-12-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

3d47eb0a13-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_get_info() to co_wrapper_mixed

bdrv_get_info() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it trave

block: Convert bdrv_get_info() to co_wrapper_mixed

bdrv_get_info() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it traverses the block nodes graph, which however is only possible in a
coroutine.

Therefore turn it into a co_wrapper to move the actual function into a
coroutine where the lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-11-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

82618d7b13-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_get_allocated_file_size() to co_wrapper

bdrv_get_allocated_file_size() is categorized as an I/O function, and it
currently doesn't run in a coroutine. We should let it take a gra

block: Convert bdrv_get_allocated_file_size() to co_wrapper

bdrv_get_allocated_file_size() is categorized as an I/O function, and it
currently doesn't run in a coroutine. We should let it take a graph
rdlock since it traverses the block nodes graph, which however is only
possible in a coroutine.

Therefore turn it into a co_wrapper to move the actual function into a
coroutine where the lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-10-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

c86422c513-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_refresh_total_sectors() to co_wrapper_mixed

BlockDriver->bdrv_getlength is categorized as IO callback, and it
currently doesn't run in a coroutine. We should let it take a graph

block: Convert bdrv_refresh_total_sectors() to co_wrapper_mixed

BlockDriver->bdrv_getlength is categorized as IO callback, and it
currently doesn't run in a coroutine. We should let it take a graph
rdlock since the callback traverses the block nodes graph, which however
is only possible in a coroutine.

Therefore turn it into a co_wrapper to move the actual function into a
coroutine where the lock can be taken.

Because now this function creates a new coroutine and polls, we need to
take the AioContext lock where it is missing, for the only reason that
internally co_wrapper calls AIO_WAIT_WHILE and it expects to release the
AioContext lock.

This is especially messy when a co_wrapper creates a coroutine and polls
in bdrv_open_driver, because this function has so many callers in so
many context that it can easily lead to deadlocks. Therefore the new
rule for bdrv_open_driver is that the caller must always hold the
AioContext lock of the given bs (except if it is a coroutine), because
the function calls bdrv_refresh_total_sectors() which is now a
co_wrapper.

Once the rwlock is ultimated and placed in every place it needs to be,
we will poll using AIO_WAIT_WHILE_UNLOCKED and remove the AioContext
lock.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-7-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

c057960c13-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Rename refresh_total_sectors to bdrv_refresh_total_sectors

The name is not good, not the least because we are going to convert this
to a generated co_wrapper, which adds a _co infix after the

block: Rename refresh_total_sectors to bdrv_refresh_total_sectors

The name is not good, not the least because we are going to convert this
to a generated co_wrapper, which adds a _co infix after the first part
of the name.

No functional change intended.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-6-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

1e97be9113-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_is_inserted() to co_wrapper

bdrv_is_inserted() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it trave

block: Convert bdrv_is_inserted() to co_wrapper

bdrv_is_inserted() is categorized as an I/O function, and it currently
doesn't run in a coroutine. We should let it take a graph rdlock since
it traverses the block nodes graph, which however is only possible in a
coroutine.

Therefore turn it into a co_wrapper to move the actual function into a
coroutine where the lock can be taken.

At the same time, add also blk_is_inserted as co_wrapper_mixed, since it
is called in both coroutine and non-coroutine contexts.

Because now this function creates a new coroutine and polls, we need to
take the AioContext lock where it is missing, for the only reason that
internally c_w_mixed_bdrv_rdlock calls AIO_WAIT_WHILE and it expects to
release the AioContext lock. Once the rwlock is ultimated and placed in
every place it needs to be, we will poll using AIO_WAIT_WHILE_UNLOCKED
and remove the AioContext lock.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-5-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

09d9fc9713-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_io_unplug() to co_wrapper

BlockDriver->bdrv_io_unplug is categorized as IO callback, and it
currently doesn't run in a coroutine. We should let it take a graph
rdlock since the c

block: Convert bdrv_io_unplug() to co_wrapper

BlockDriver->bdrv_io_unplug is categorized as IO callback, and it
currently doesn't run in a coroutine. We should let it take a graph
rdlock since the callback traverses the block nodes graph, which however
is only possible in a coroutine.

The only caller of this function is blk_io_unplug(), therefore make
blk_io_unplug() a co_wrapper, so that we're always running in a
coroutine where the lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-4-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

8f49745413-Jan-2023 Emanuele Giuseppe Esposito <eesposit@redhat.com>

block: Convert bdrv_io_plug() to co_wrapper

BlockDriver->bdrv_io_plug is categorized as IO callback, and it
currently doesn't run in a coroutine. We should let it take a graph
rdlock since the callb

block: Convert bdrv_io_plug() to co_wrapper

BlockDriver->bdrv_io_plug is categorized as IO callback, and it
currently doesn't run in a coroutine. We should let it take a graph
rdlock since the callback traverses the block nodes graph, which however
is only possible in a coroutine.

The only caller of this function is blk_io_plug(), therefore make
blk_io_plug() a co_wrapper, so that we're always running in a coroutine
where the lock can be taken.

Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230113204212.359076-3-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

3d65110f15-Dec-2022 Paolo Bonzini <pbonzini@redhat.com>

block: remove bdrv_coroutine_enter

It has only one caller---inline it and remove the function.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221215130225.476477-2-pbonzini@redha

block: remove bdrv_coroutine_enter

It has only one caller---inline it and remove the function.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221215130225.476477-2-pbonzini@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

0f3de97016-Dec-2022 Alberto Faria <afaria@redhat.com>

block: Add no_coroutine_fn and coroutine_mixed_fn marker

Add more annotations to functions, describing valid and invalid
calls from coroutine to non-coroutine context.

When applied to a function, n

block: Add no_coroutine_fn and coroutine_mixed_fn marker

Add more annotations to functions, describing valid and invalid
calls from coroutine to non-coroutine context.

When applied to a function, no_coroutine_fn advertises that it should
not be called from coroutine_fn functions. This can be because the
function blocks or, in the case of generated_co_wrapper, to enforce
that coroutine_fn functions directly call the coroutine_fn that backs
the generated_co_wrapper.

coroutine_mixed_fn instead is for function that can be called in
both coroutine and non-coroutine context, but will suspend when
called in coroutine context. Annotating them is a first step
towards enforcing that non-annotated functions are absolutely
not going to suspend.

These can be used for example with the vrc tool:

# find functions that *really* cannot be called from no_coroutine_fn
(vrc) load --loader clang libblock.fa.p/meson-generated_.._block_block-gen.c.o
(vrc) paths [no_coroutine_fn,!coroutine_mixed_fn]
bdrv_remove_persistent_dirty_bitmap
bdrv_create
bdrv_can_store_new_dirty_bitmap

# find how coroutine_fns end up calling a mixed function
(vrc) load --loader clang --force libblock.fa.p/*.c.o
(vrc) paths [coroutine_fn] [!no_coroutine_fn]* [coroutine_mixed_fn]
...
bdrv_pread <- vhdx_log_write <- vhdx_log_write_and_flush <- vhdx_co_writev
...

Signed-off-by: Alberto Faria <afaria@redhat.com>
[Rebase, add coroutine_mixed_fn. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221216110758.559947-3-pbonzini@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/backends/tpm/tpm_emulator.c
/openbmc/qemu/block/blkio.c
/openbmc/qemu/chardev/spice.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/meson.build
/openbmc/qemu/hw/arm/musicpal.c
/openbmc/qemu/hw/arm/realview.c
/openbmc/qemu/hw/arm/strongarm.c
/openbmc/qemu/hw/arm/versatilepb.c
/openbmc/qemu/hw/arm/vexpress.c
/openbmc/qemu/hw/block/block.c
/openbmc/qemu/hw/block/dataplane/virtio-blk.c
/openbmc/qemu/hw/block/pflash_cfi01.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/char/digic-uart.c
/openbmc/qemu/hw/char/etraxfs_ser.c
/openbmc/qemu/hw/char/riscv_htif.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/core/sysbus.c
/openbmc/qemu/hw/cpu/meson.build
/openbmc/qemu/hw/cxl/cxl-cdat.c
/openbmc/qemu/hw/cxl/cxl-host.c
/openbmc/qemu/hw/display/cirrus_vga.c
/openbmc/qemu/hw/display/g364fb.c
/openbmc/qemu/hw/display/meson.build
/openbmc/qemu/hw/display/qxl.c
/openbmc/qemu/hw/display/qxl.h
/openbmc/qemu/hw/display/trace-events
/openbmc/qemu/hw/display/vga.c
/openbmc/qemu/hw/dma/etraxfs_dma.c
/openbmc/qemu/hw/dma/pl330.c
/openbmc/qemu/hw/dma/xilinx_axidma.c
/openbmc/qemu/hw/dma/xlnx_csu_dma.c
/openbmc/qemu/hw/i2c/Kconfig
/openbmc/qemu/hw/i2c/arm_sbcon_i2c.c
/openbmc/qemu/hw/i2c/bitbang_i2c.c
/openbmc/qemu/hw/i2c/meson.build
/openbmc/qemu/hw/i2c/mpc_i2c.c
/openbmc/qemu/hw/i2c/trace-events
/openbmc/qemu/hw/i386/multiboot.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/xen/xen-hvm.c
/openbmc/qemu/hw/i386/xen/xen-mapcache.c
/openbmc/qemu/hw/i386/xen/xen_platform.c
/openbmc/qemu/hw/intc/arm_gicv3_dist.c
/openbmc/qemu/hw/intc/arm_gicv3_its.c
/openbmc/qemu/hw/intc/arm_gicv3_redist.c
/openbmc/qemu/hw/intc/exynos4210_combiner.c
/openbmc/qemu/hw/intc/meson.build
/openbmc/qemu/hw/intc/pnv_xive.c
/openbmc/qemu/hw/intc/pnv_xive2.c
/openbmc/qemu/hw/misc/auxbus.c
/openbmc/qemu/hw/misc/ivshmem.c
/openbmc/qemu/hw/misc/macio/mac_dbdma.c
/openbmc/qemu/hw/misc/mst_fpga.c
/openbmc/qemu/hw/net/allwinner-sun8i-emac.c
/openbmc/qemu/hw/net/allwinner_emac.c
/openbmc/qemu/hw/net/fsl_etsec/etsec.c
/openbmc/qemu/hw/net/fsl_etsec/rings.c
/openbmc/qemu/hw/net/pcnet.c
/openbmc/qemu/hw/net/rocker/rocker.c
/openbmc/qemu/hw/net/rocker/rocker_desc.c
/openbmc/qemu/hw/net/xilinx_axienet.c
/openbmc/qemu/hw/net/xilinx_ethlite.c
/openbmc/qemu/hw/pci-bridge/pci_expander_bridge.c
/openbmc/qemu/hw/pci-host/bonito.c
/openbmc/qemu/hw/pci-host/i440fx.c
/openbmc/qemu/hw/pci-host/pnv_phb.h
/openbmc/qemu/hw/pci-host/pnv_phb3.c
/openbmc/qemu/hw/pci-host/pnv_phb4_pec.c
/openbmc/qemu/hw/pci-host/ppce500.c
/openbmc/qemu/hw/pci-host/q35.c
/openbmc/qemu/hw/pci/pci_host.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_core.c
/openbmc/qemu/hw/ppc/pnv_homer.c
/openbmc/qemu/hw/ppc/pnv_lpc.c
/openbmc/qemu/hw/ppc/pnv_psi.c
/openbmc/qemu/hw/ppc/pnv_xscom.c
/openbmc/qemu/hw/ppc/ppc4xx_sdram.c
/openbmc/qemu/hw/rdma/vmw/pvrdma_cmd.c
/openbmc/qemu/hw/riscv/boot.c
/openbmc/qemu/hw/riscv/microchip_pfsoc.c
/openbmc/qemu/hw/riscv/numa.c
/openbmc/qemu/hw/riscv/opentitan.c
/openbmc/qemu/hw/riscv/sifive_e.c
/openbmc/qemu/hw/riscv/sifive_u.c
/openbmc/qemu/hw/riscv/spike.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/rtc/exynos4210_rtc.c
/openbmc/qemu/hw/s390x/pv.c
/openbmc/qemu/hw/sh4/sh7750.c
/openbmc/qemu/hw/sparc64/niagara.c
/openbmc/qemu/hw/ssi/sifive_spi.c
/openbmc/qemu/hw/ssi/xilinx_spi.c
/openbmc/qemu/hw/ssi/xilinx_spips.c
/openbmc/qemu/hw/timer/digic-timer.c
/openbmc/qemu/hw/timer/etraxfs_timer.c
/openbmc/qemu/hw/timer/exynos4210_mct.c
/openbmc/qemu/hw/timer/exynos4210_pwm.c
/openbmc/qemu/hw/tpm/meson.build
/openbmc/qemu/hw/usb/ccid-card-emulated.c
/openbmc/qemu/hw/usb/meson.build
/openbmc/qemu/hw/virtio/virtio-mmio.c
/openbmc/qemu/hw/xen/xen_pt.c
block-common.h
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/exec/hwaddr.h
/openbmc/qemu/include/hw/block/swim.h
/openbmc/qemu/include/hw/char/riscv_htif.h
/openbmc/qemu/include/hw/i2c/arm_sbcon_i2c.h
/openbmc/qemu/include/hw/i2c/bitbang_i2c.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/pci-host/pnv_phb3.h
/openbmc/qemu/include/hw/pci-host/pnv_phb4.h
/openbmc/qemu/include/hw/ppc/pnv.h
/openbmc/qemu/include/hw/ppc/pnv_chip.h
/openbmc/qemu/include/hw/ppc/pnv_core.h
/openbmc/qemu/include/hw/ppc/pnv_homer.h
/openbmc/qemu/include/hw/ppc/pnv_lpc.h
/openbmc/qemu/include/hw/ppc/pnv_occ.h
/openbmc/qemu/include/hw/ppc/pnv_pnor.h
/openbmc/qemu/include/hw/ppc/pnv_sbe.h
/openbmc/qemu/include/hw/ppc/pnv_xive.h
/openbmc/qemu/include/hw/ppc/pnv_xscom.h
/openbmc/qemu/include/hw/ppc/xive2.h
/openbmc/qemu/include/hw/ppc/xive2_regs.h
/openbmc/qemu/include/hw/riscv/boot.h
/openbmc/qemu/include/hw/riscv/numa.h
/openbmc/qemu/include/hw/riscv/sifive_u.h
/openbmc/qemu/include/hw/riscv/spike.h
/openbmc/qemu/include/hw/virtio/virtio-blk.h
/openbmc/qemu/include/monitor/hmp.h
/openbmc/qemu/include/monitor/qmp-helpers.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/include/ui/qemu-spice.h
/openbmc/qemu/include/ui/spice-display.h
/openbmc/qemu/linux-user/aarch64/cpu_loop.c
/openbmc/qemu/linux-user/aarch64/signal.c
/openbmc/qemu/meson.build
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/monitor/misc.c
/openbmc/qemu/monitor/qmp-cmds.c
/openbmc/qemu/softmmu/memory.c
/openbmc/qemu/softmmu/memory_mapping.c
/openbmc/qemu/softmmu/physmem.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/helper-sme.h
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/helper.h
/openbmc/qemu/target/arm/m_helper.c
/openbmc/qemu/target/arm/mte_helper.c
/openbmc/qemu/target/arm/op_helper.c
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/sme_helper.c
/openbmc/qemu/target/arm/translate-a64.c
/openbmc/qemu/target/arm/translate.c
/openbmc/qemu/target/arm/translate.h
/openbmc/qemu/target/i386/monitor.c
/openbmc/qemu/target/loongarch/tlb_helper.c
/openbmc/qemu/target/microblaze/op_helper.c
/openbmc/qemu/target/mips/tcg/sysemu/tlb_helper.c
/openbmc/qemu/target/ppc/mmu-hash32.c
/openbmc/qemu/target/ppc/mmu-hash64.c
/openbmc/qemu/target/ppc/mmu_common.c
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/fpu_helper.c
/openbmc/qemu/target/riscv/helper.h
/openbmc/qemu/target/riscv/insn_trans/trans_rvv.c.inc
/openbmc/qemu/target/riscv/machine.c
/openbmc/qemu/target/riscv/monitor.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/mmu_helper.c
/openbmc/qemu/target/tricore/helper.c
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tcg/aarch64/tcg-target.h
/openbmc/qemu/tcg/arm/tcg-target.c.inc
/openbmc/qemu/tcg/arm/tcg-target.h
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.h
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/sparc64/tcg-target.c.inc
/openbmc/qemu/tcg/sparc64/tcg-target.h
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci/tcg-target.c.inc
/openbmc/qemu/tcg/tci/tcg-target.h
/openbmc/qemu/tests/avocado/riscv_opensbi.py
/openbmc/qemu/tests/qemu-iotests/262
/openbmc/qemu/tests/qemu-iotests/312
/openbmc/qemu/tests/qtest/dbus-display-test.c
/openbmc/qemu/tests/qtest/e1000e-test.c
/openbmc/qemu/tests/qtest/libqos/e1000e.c
/openbmc/qemu/tests/qtest/libqos/e1000e.h
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/test-hmp.c
/openbmc/qemu/tests/unit/test-crypto-tlssession.c
/openbmc/qemu/tests/unit/test-io-channel-tls.c
/openbmc/qemu/tests/vm/haiku.x86_64
/openbmc/qemu/ui/input.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/ui-hmp-cmds.c
/openbmc/qemu/ui/ui-qmp-cmds.c
/openbmc/qemu/ui/vdagent.c
/openbmc/qemu/util/aio-posix.c
e2c1c34f21-Dec-2022 Markus Armbruster <armbru@redhat.com>

include/block: Untangle inclusion loops

We have two inclusion loops:

block/block.h
-> block/block-global-state.h
-> block/block-common.h
-> block/blockjob.h
-> block/block.h

include/block: Untangle inclusion loops

We have two inclusion loops:

block/block.h
-> block/block-global-state.h
-> block/block-common.h
-> block/blockjob.h
-> block/block.h

block/block.h
-> block/block-io.h
-> block/block-common.h
-> block/blockjob.h
-> block/block.h

I believe these go back to Emanuele's reorganization of the block API,
merged a few months ago in commit d7e2fe4aac8.

Fortunately, breaking them is merely a matter of deleting unnecessary
includes from headers, and adding them back in places where they are
now missing.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20221221133551.3967339-2-armbru@redhat.com>

show more ...


/openbmc/qemu/block.c
/openbmc/qemu/block/amend.c
/openbmc/qemu/block/backup.c
/openbmc/qemu/block/blkdebug.c
/openbmc/qemu/block/blklogwrites.c
/openbmc/qemu/block/blkreplay.c
/openbmc/qemu/block/blkverify.c
/openbmc/qemu/block/block-copy.c
/openbmc/qemu/block/bochs.c
/openbmc/qemu/block/cloop.c
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/copy-on-read.c
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/dirty-bitmap.c
/openbmc/qemu/block/dmg.c
/openbmc/qemu/block/export/fuse.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/file-win32.c
/openbmc/qemu/block/filter-compress.c
/openbmc/qemu/block/gluster.c
/openbmc/qemu/block/io.c
/openbmc/qemu/block/iscsi.c
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/monitor/bitmap-qmp-cmds.c
/openbmc/qemu/block/nfs.c
/openbmc/qemu/block/null.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/parallels-ext.c
/openbmc/qemu/block/preallocate.c
/openbmc/qemu/block/qapi-sysemu.c
/openbmc/qemu/block/qapi.c
/openbmc/qemu/block/qcow2-bitmap.c
/openbmc/qemu/block/qcow2-cache.c
/openbmc/qemu/block/qcow2-cluster.c
/openbmc/qemu/block/qcow2-refcount.c
/openbmc/qemu/block/qcow2-threads.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/qed-check.c
/openbmc/qemu/block/qed-table.c
/openbmc/qemu/block/raw-format.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/block/ssh.c
/openbmc/qemu/block/throttle.c
/openbmc/qemu/block/vhdx-log.c
/openbmc/qemu/block/vvfat.c
/openbmc/qemu/block/win32-aio.c
/openbmc/qemu/block/write-threshold.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/blockjob.c
/openbmc/qemu/hw/block/block.c
/openbmc/qemu/hw/sparc64/niagara.c
/openbmc/qemu/hw/virtio/virtio-pmem.c
block-common.h
block-copy.h
block-global-state.h
block-hmp-cmds.h
block-io.h
block.h
block_backup.h
block_int-common.h
block_int-global-state.h
block_int-io.h
block_int.h
blockjob.h
blockjob_int.h
dirty-bitmap.h
qapi.h
thread-pool.h
throttle-groups.h
/openbmc/qemu/include/sysemu/block-backend-io.h
/openbmc/qemu/migration/block-dirty-bitmap.c
/openbmc/qemu/migration/block.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/monitor/qmp-cmds.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/qemu-img.c
/openbmc/qemu/scripts/block-coroutine-wrapper.py
/openbmc/qemu/softmmu/cpus.c
/openbmc/qemu/softmmu/physmem.c
/openbmc/qemu/storage-daemon/qemu-storage-daemon.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/tests/unit/test-bdrv-drain.c
/openbmc/qemu/tests/unit/test-block-iothread.c

12345678910>>...62