History log of /openbmc/qemu/rust/qemu-api/ (Results 101 – 125 of 181)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
66bcc55406-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: callbacks: allow passing optional callbacks as ()

In some cases, callbacks are optional. Using "Some(function)" and "None"
does not work well, because when someone writes "None" the compiler

rust: callbacks: allow passing optional callbacks as ()

In some cases, callbacks are optional. Using "Some(function)" and "None"
does not work well, because when someone writes "None" the compiler does
not know what to use for "F" in "Option<F>".

Therefore, adopt () to mean a "null" callback. It is possible to enforce
that a callback is valid by adding a "let _: () = F::ASSERT_IS_SOME" before
the invocation of F::call.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

ec3eba9831-Oct-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qom: add object creation functionality

The basic object lifecycle test can now be implemented using safe code!

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzi

rust: qom: add object creation functionality

The basic object lifecycle test can now be implemented using safe code!

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

0fcccf3f17-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: qom: add reference counting functionality

Add a smart pointer that allows to add and remove references from
QOM objects. It's important to note that while all QOM objects have a
reference cou

rust: qom: add reference counting functionality

Add a smart pointer that allows to add and remove references from
QOM objects. It's important to note that while all QOM objects have a
reference count, in practice not all of them have their lifetime guarded
by it. Embedded objects, specifically, are confined to the lifetime of
the owner.

When writing Rust bindings this is important, because embedded objects are
*never* used through the "Owned<>" smart pointer that is introduced here.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/build.yml
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/meson.build
/openbmc/qemu/audio/audio-hmp-cmds.c
/openbmc/qemu/audio/audio.c
/openbmc/qemu/authz/listfile.c
/openbmc/qemu/backends/cryptodev-hmp-cmds.c
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/block.c
/openbmc/qemu/block/blkdebug.c
/openbmc/qemu/block/blkio.c
/openbmc/qemu/block/blklogwrites.c
/openbmc/qemu/block/blkverify.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/copy-on-read.c
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/export/export.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/file-win32.c
/openbmc/qemu/block/gluster.c
/openbmc/qemu/block/iscsi.c
/openbmc/qemu/block/monitor/block-hmp-cmds.c
/openbmc/qemu/block/nbd.c
/openbmc/qemu/block/nfs.c
/openbmc/qemu/block/null.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/parallels.c
/openbmc/qemu/block/qapi-system.c
/openbmc/qemu/block/qapi.c
/openbmc/qemu/block/qcow.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/qed.c
/openbmc/qemu/block/quorum.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/block/replication.c
/openbmc/qemu/block/snapshot.c
/openbmc/qemu/block/ssh.c
/openbmc/qemu/block/stream.c
/openbmc/qemu/block/vhdx.c
/openbmc/qemu/block/vmdk.c
/openbmc/qemu/block/vpc.c
/openbmc/qemu/block/vvfat.c
/openbmc/qemu/blockdev-nbd.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/blockjob.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/bsd-user/signal-common.h
/openbmc/qemu/bsd-user/signal.c
/openbmc/qemu/chardev/char-hmp-cmds.c
/openbmc/qemu/configs/targets/aarch64-bsd-user.mak
/openbmc/qemu/configs/targets/aarch64-linux-user.mak
/openbmc/qemu/configs/targets/aarch64-softmmu.mak
/openbmc/qemu/configs/targets/aarch64_be-linux-user.mak
/openbmc/qemu/configs/targets/alpha-linux-user.mak
/openbmc/qemu/configs/targets/alpha-softmmu.mak
/openbmc/qemu/configs/targets/arm-bsd-user.mak
/openbmc/qemu/configs/targets/arm-linux-user.mak
/openbmc/qemu/configs/targets/arm-softmmu.mak
/openbmc/qemu/configs/targets/armeb-linux-user.mak
/openbmc/qemu/configs/targets/avr-softmmu.mak
/openbmc/qemu/configs/targets/hexagon-linux-user.mak
/openbmc/qemu/configs/targets/hppa-linux-user.mak
/openbmc/qemu/configs/targets/hppa-softmmu.mak
/openbmc/qemu/configs/targets/i386-bsd-user.mak
/openbmc/qemu/configs/targets/i386-linux-user.mak
/openbmc/qemu/configs/targets/i386-softmmu.mak
/openbmc/qemu/configs/targets/loongarch64-linux-user.mak
/openbmc/qemu/configs/targets/loongarch64-softmmu.mak
/openbmc/qemu/configs/targets/m68k-linux-user.mak
/openbmc/qemu/configs/targets/m68k-softmmu.mak
/openbmc/qemu/configs/targets/microblaze-linux-user.mak
/openbmc/qemu/configs/targets/microblaze-softmmu.mak
/openbmc/qemu/configs/targets/microblazeel-linux-user.mak
/openbmc/qemu/configs/targets/microblazeel-softmmu.mak
/openbmc/qemu/configs/targets/mips-linux-user.mak
/openbmc/qemu/configs/targets/mips-softmmu.mak
/openbmc/qemu/configs/targets/mips64-linux-user.mak
/openbmc/qemu/configs/targets/mips64-softmmu.mak
/openbmc/qemu/configs/targets/mips64el-linux-user.mak
/openbmc/qemu/configs/targets/mips64el-softmmu.mak
/openbmc/qemu/configs/targets/mipsel-linux-user.mak
/openbmc/qemu/configs/targets/mipsel-softmmu.mak
/openbmc/qemu/configs/targets/mipsn32-linux-user.mak
/openbmc/qemu/configs/targets/mipsn32el-linux-user.mak
/openbmc/qemu/configs/targets/or1k-linux-user.mak
/openbmc/qemu/configs/targets/or1k-softmmu.mak
/openbmc/qemu/configs/targets/ppc-linux-user.mak
/openbmc/qemu/configs/targets/ppc-softmmu.mak
/openbmc/qemu/configs/targets/ppc64-linux-user.mak
/openbmc/qemu/configs/targets/ppc64-softmmu.mak
/openbmc/qemu/configs/targets/ppc64le-linux-user.mak
/openbmc/qemu/configs/targets/riscv32-linux-user.mak
/openbmc/qemu/configs/targets/riscv32-softmmu.mak
/openbmc/qemu/configs/targets/riscv64-bsd-user.mak
/openbmc/qemu/configs/targets/riscv64-linux-user.mak
/openbmc/qemu/configs/targets/riscv64-softmmu.mak
/openbmc/qemu/configs/targets/rx-softmmu.mak
/openbmc/qemu/configs/targets/s390x-linux-user.mak
/openbmc/qemu/configs/targets/s390x-softmmu.mak
/openbmc/qemu/configs/targets/sh4-linux-user.mak
/openbmc/qemu/configs/targets/sh4-softmmu.mak
/openbmc/qemu/configs/targets/sh4eb-linux-user.mak
/openbmc/qemu/configs/targets/sh4eb-softmmu.mak
/openbmc/qemu/configs/targets/sparc-linux-user.mak
/openbmc/qemu/configs/targets/sparc-softmmu.mak
/openbmc/qemu/configs/targets/sparc32plus-linux-user.mak
/openbmc/qemu/configs/targets/sparc64-linux-user.mak
/openbmc/qemu/configs/targets/sparc64-softmmu.mak
/openbmc/qemu/configs/targets/tricore-softmmu.mak
/openbmc/qemu/configs/targets/x86_64-bsd-user.mak
/openbmc/qemu/configs/targets/x86_64-linux-user.mak
/openbmc/qemu/configs/targets/x86_64-softmmu.mak
/openbmc/qemu/configs/targets/xtensa-linux-user.mak
/openbmc/qemu/configs/targets/xtensa-softmmu.mak
/openbmc/qemu/configs/targets/xtensaeb-linux-user.mak
/openbmc/qemu/configs/targets/xtensaeb-softmmu.mak
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/devel/qapi-code-gen.rst
/openbmc/qemu/docs/devel/rust.rst
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/tools/qemu-nbd.rst
/openbmc/qemu/docs/user/main.rst
/openbmc/qemu/dump/dump-hmp-cmds.c
/openbmc/qemu/fpu/softfloat-parts.c.inc
/openbmc/qemu/fpu/softfloat.c
/openbmc/qemu/gdbstub/user.c
/openbmc/qemu/hw/9pfs/9p-local.c
/openbmc/qemu/hw/9pfs/9p-util-generic.c
/openbmc/qemu/hw/9pfs/9p-util.h
/openbmc/qemu/hw/9pfs/9p.c
/openbmc/qemu/hw/9pfs/meson.build
/openbmc/qemu/hw/9pfs/trace-events
/openbmc/qemu/hw/arm/aspeed_ast27x0.c
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/fsl-imx6.c
/openbmc/qemu/hw/arm/fsl-imx6ul.c
/openbmc/qemu/hw/arm/fsl-imx7.c
/openbmc/qemu/hw/arm/mps2-tz.c
/openbmc/qemu/hw/arm/mps2.c
/openbmc/qemu/hw/arm/mps3r.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/stellaris.c
/openbmc/qemu/hw/arm/vexpress.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/block/xen-block.c
/openbmc/qemu/hw/char/Kconfig
/openbmc/qemu/hw/char/diva-gsp.c
/openbmc/qemu/hw/char/meson.build
/openbmc/qemu/hw/core/machine-hmp-cmds.c
/openbmc/qemu/hw/core/machine-qmp-cmds.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/core/qdev.c
/openbmc/qemu/hw/cpu/a15mpcore.c
/openbmc/qemu/hw/cpu/a9mpcore.c
/openbmc/qemu/hw/cpu/arm11mpcore.c
/openbmc/qemu/hw/cpu/realview_mpcore.c
/openbmc/qemu/hw/display/artist.c
/openbmc/qemu/hw/hppa/Kconfig
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/hyperv/hv-balloon.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.c
/openbmc/qemu/hw/i386/monitor.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/loongarch/meson.build
/openbmc/qemu/hw/loongarch/virt-acpi-build.c
/openbmc/qemu/hw/loongarch/virt-fdt-build.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/net/cadence_gem.c
/openbmc/qemu/hw/net/rocker/rocker-hmp-cmds.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/net/xen_nic.c
/openbmc/qemu/hw/pci-host/astro.c
/openbmc/qemu/hw/pci/pci-hmp-cmds.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/spapr_drc.c
/openbmc/qemu/hw/ppc/spapr_rtas.c
/openbmc/qemu/hw/riscv/riscv_hart.c
/openbmc/qemu/hw/rx/rx62n.c
/openbmc/qemu/hw/s390x/s390-skeys.c
/openbmc/qemu/hw/s390x/s390-stattrib.c
/openbmc/qemu/hw/scsi/virtio-scsi.c
/openbmc/qemu/hw/usb/xen-usb.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/igd.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/pci-quirks.c
/openbmc/qemu/hw/vfio/pci-quirks.h
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/virtio/virtio-hmp-cmds.c
/openbmc/qemu/hw/virtio/virtio-qmp.c
/openbmc/qemu/hw/xen/xen-bus.c
/openbmc/qemu/include/block/block-common.h
/openbmc/qemu/include/block/block-global-state.h
/openbmc/qemu/include/block/export.h
/openbmc/qemu/include/block/nbd.h
/openbmc/qemu/include/block/qdict.h
/openbmc/qemu/include/fpu/softfloat-helpers.h
/openbmc/qemu/include/fpu/softfloat-types.h
/openbmc/qemu/include/hw/arm/boot.h
/openbmc/qemu/include/hw/loongarch/virt.h
/openbmc/qemu/include/hw/pci-host/astro.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/qapi/compat-policy.h
/openbmc/qemu/include/qapi/error.h
/openbmc/qemu/include/qapi/qmp-registry.h
/openbmc/qemu/include/qapi/util.h
/openbmc/qemu/include/qapi/visitor-impl.h
/openbmc/qemu/include/qapi/visitor.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/qobject/json-parser.h
/openbmc/qemu/include/qobject/json-writer.h
/openbmc/qemu/include/qobject/qbool.h
/openbmc/qemu/include/qobject/qdict.h
/openbmc/qemu/include/qobject/qjson.h
/openbmc/qemu/include/qobject/qlist.h
/openbmc/qemu/include/qobject/qlit.h
/openbmc/qemu/include/qobject/qnull.h
/openbmc/qemu/include/qobject/qnum.h
/openbmc/qemu/include/qobject/qobject.h
/openbmc/qemu/include/qobject/qstring.h
/openbmc/qemu/include/system/block-backend-io.h
/openbmc/qemu/include/system/qtest.h
/openbmc/qemu/include/user/signal.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/signal-common.h
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/block-active.c
/openbmc/qemu/migration/dirtyrate.c
/openbmc/qemu/migration/migration-hmp-cmds.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/options.c
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/monitor/hmp-cmds-target.c
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/monitor/hmp.c
/openbmc/qemu/monitor/monitor-internal.h
/openbmc/qemu/monitor/monitor.c
/openbmc/qemu/monitor/qemu-config-qmp.c
/openbmc/qemu/monitor/qmp.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/net/net-hmp-cmds.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/block-export.json
/openbmc/qemu/qapi/cxl.json
/openbmc/qemu/qapi/qapi-clone-visitor.c
/openbmc/qemu/qapi/qapi-dealloc-visitor.c
/openbmc/qemu/qapi/qapi-forward-visitor.c
/openbmc/qemu/qapi/qapi-util.c
/openbmc/qemu/qapi/qapi-visit-core.c
/openbmc/qemu/qapi/qmp-dispatch.c
/openbmc/qemu/qapi/qmp-event.c
/openbmc/qemu/qapi/qmp-registry.c
/openbmc/qemu/qapi/qobject-input-visitor.c
/openbmc/qemu/qapi/qobject-output-visitor.c
/openbmc/qemu/qapi/string-input-visitor.c
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qemu-img.c
/openbmc/qemu/qemu-io-cmds.c
/openbmc/qemu/qemu-io.c
/openbmc/qemu/qemu-nbd.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/guest-agent-core.h
/openbmc/qemu/qga/main.c
/openbmc/qemu/qobject/block-qdict.c
/openbmc/qemu/qobject/json-parser-int.h
/openbmc/qemu/qobject/json-parser.c
/openbmc/qemu/qobject/json-writer.c
/openbmc/qemu/qobject/qbool.c
/openbmc/qemu/qobject/qdict.c
/openbmc/qemu/qobject/qjson.c
/openbmc/qemu/qobject/qlist.c
/openbmc/qemu/qobject/qlit.c
/openbmc/qemu/qobject/qnull.c
/openbmc/qemu/qobject/qnum.c
/openbmc/qemu/qobject/qobject-internal.h
/openbmc/qemu/qobject/qobject.c
/openbmc/qemu/qobject/qstring.c
/openbmc/qemu/qom/object.c
/openbmc/qemu/qom/object_interfaces.c
/openbmc/qemu/qom/qom-hmp-cmds.c
/openbmc/qemu/qom/qom-qmp-cmds.c
/openbmc/qemu/replay/replay-debugging.c
/openbmc/qemu/replay/replay-snapshot.c
/openbmc/qemu/roms/seabios-hppa
src/qom.rs
src/vmstate.rs
tests/tests.rs
/openbmc/qemu/scripts/qapi/commands.py
/openbmc/qemu/scripts/qapi/events.py
/openbmc/qemu/scripts/qapi/features.py
/openbmc/qemu/scripts/qapi/gen.py
/openbmc/qemu/scripts/qapi/introspect.py
/openbmc/qemu/scripts/qapi/main.py
/openbmc/qemu/scripts/qapi/schema.py
/openbmc/qemu/scripts/qapi/types.py
/openbmc/qemu/scripts/qapi/visit.py
/openbmc/qemu/scripts/qemu-gdb.py
/openbmc/qemu/scripts/qemugdb/coroutine.py
/openbmc/qemu/scsi/qemu-pr-helper.c
/openbmc/qemu/stats/stats-hmp-cmds.c
/openbmc/qemu/storage-daemon/qemu-storage-daemon.c
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/stubs/monitor-fd.c
/openbmc/qemu/stubs/qmp-command-available.c
/openbmc/qemu/stubs/qmp-quit.c
/openbmc/qemu/system/device_tree.c
/openbmc/qemu/system/dirtylimit.c
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/system/qtest.c
/openbmc/qemu/system/runstate-hmp-cmds.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/alpha/cpu-param.h
/openbmc/qemu/target/alpha/cpu.c
/openbmc/qemu/target/alpha/fpu_helper.c
/openbmc/qemu/target/arm/arm-qmp-cmds.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu-param.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/helper.h
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/tcg/cpu32.c
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/helper-a64.h
/openbmc/qemu/target/arm/tcg/helper-sve.h
/openbmc/qemu/target/arm/tcg/hflags.c
/openbmc/qemu/target/arm/tcg/mve_helper.c
/openbmc/qemu/target/arm/tcg/sme_helper.c
/openbmc/qemu/target/arm/tcg/sve_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate-a64.h
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/arm/tcg/vec_helper.c
/openbmc/qemu/target/arm/tcg/vec_internal.h
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/avr/cpu-param.h
/openbmc/qemu/target/hexagon/cpu-param.h
/openbmc/qemu/target/hppa/cpu-param.h
/openbmc/qemu/target/hppa/fpu_helper.c
/openbmc/qemu/target/i386/cpu-apic.c
/openbmc/qemu/target/i386/cpu-param.h
/openbmc/qemu/target/i386/cpu-system.c
/openbmc/qemu/target/i386/monitor.c
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/loongarch/cpu-param.h
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/loongarch/loongarch-qmp-cmds.c
/openbmc/qemu/target/m68k/cpu-param.h
/openbmc/qemu/target/microblaze/cpu-param.h
/openbmc/qemu/target/mips/cpu-param.h
/openbmc/qemu/target/mips/fpu_helper.h
/openbmc/qemu/target/mips/msa.c
/openbmc/qemu/target/openrisc/cpu-param.h
/openbmc/qemu/target/ppc/cpu-param.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/riscv/cpu-param.h
/openbmc/qemu/target/riscv/riscv-qmp-cmds.c
/openbmc/qemu/target/rx/cpu-param.h
/openbmc/qemu/target/rx/cpu.c
/openbmc/qemu/target/s390x/cpu-param.h
/openbmc/qemu/target/s390x/cpu_models_system.c
/openbmc/qemu/target/sh4/cpu-param.h
/openbmc/qemu/target/sh4/cpu.c
/openbmc/qemu/target/sparc/cpu-param.h
/openbmc/qemu/target/tricore/cpu-param.h
/openbmc/qemu/target/tricore/helper.c
/openbmc/qemu/target/xtensa/cpu-param.h
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/test-rust
/openbmc/qemu/tests/fp/fp-bench.c
/openbmc/qemu/tests/functional/meson.build
/openbmc/qemu/tests/functional/test_aarch64_virt.py
/openbmc/qemu/tests/functional/test_aarch64_xen.py
/openbmc/qemu/tests/functional/test_ppc_sam460ex.py
/openbmc/qemu/tests/functional/test_x86_64_hotplug_blk.py
/openbmc/qemu/tests/guest-debug/run-test.py
/openbmc/qemu/tests/meson.build
/openbmc/qemu/tests/qapi-schema/features-too-many.err
/openbmc/qemu/tests/qapi-schema/features-too-many.json
/openbmc/qemu/tests/qapi-schema/features-too-many.out
/openbmc/qemu/tests/qapi-schema/meson.build
/openbmc/qemu/tests/qemu-iotests/041
/openbmc/qemu/tests/qemu-iotests/165
/openbmc/qemu/tests/qemu-iotests/184.out
/openbmc/qemu/tests/qemu-iotests/191.out
/openbmc/qemu/tests/qemu-iotests/273.out
/openbmc/qemu/tests/qemu-iotests/iotests.py
/openbmc/qemu/tests/qemu-iotests/tests/copy-before-write
/openbmc/qemu/tests/qemu-iotests/tests/inactive-node-nbd
/openbmc/qemu/tests/qemu-iotests/tests/inactive-node-nbd.out
/openbmc/qemu/tests/qemu-iotests/tests/migrate-bitmaps-test
/openbmc/qemu/tests/qemu-iotests/tests/qsd-migrate
/openbmc/qemu/tests/qemu-iotests/tests/qsd-migrate.out
/openbmc/qemu/tests/qtest/adm1266-test.c
/openbmc/qemu/tests/qtest/adm1272-test.c
/openbmc/qemu/tests/qtest/ahci-test.c
/openbmc/qemu/tests/qtest/arm-cpu-features.c
/openbmc/qemu/tests/qtest/aspeed_gpio-test.c
/openbmc/qemu/tests/qtest/ast2700-gpio-test.c
/openbmc/qemu/tests/qtest/boot-order-test.c
/openbmc/qemu/tests/qtest/cdrom-test.c
/openbmc/qemu/tests/qtest/cpu-plug-test.c
/openbmc/qemu/tests/qtest/device-introspect-test.c
/openbmc/qemu/tests/qtest/device-plug-test.c
/openbmc/qemu/tests/qtest/drive_del-test.c
/openbmc/qemu/tests/qtest/emc141x-test.c
/openbmc/qemu/tests/qtest/fdc-test.c
/openbmc/qemu/tests/qtest/hd-geo-test.c
/openbmc/qemu/tests/qtest/ide-test.c
/openbmc/qemu/tests/qtest/isl_pmbus_vr-test.c
/openbmc/qemu/tests/qtest/libqmp.c
/openbmc/qemu/tests/qtest/libqmp.h
/openbmc/qemu/tests/qtest/libqos/generic-pcihost.c
/openbmc/qemu/tests/qtest/libqos/libqos.c
/openbmc/qemu/tests/qtest/libqos/pci-pc.c
/openbmc/qemu/tests/qtest/libqos/qos_external.c
/openbmc/qemu/tests/qtest/libqos/virtio-pci-modern.c
/openbmc/qemu/tests/qtest/libqos/virtio-pci.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/libqtest.h
/openbmc/qemu/tests/qtest/lsm303dlhc-mag-test.c
/openbmc/qemu/tests/qtest/machine-none-test.c
/openbmc/qemu/tests/qtest/max34451-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-helpers.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/migration/compression-tests.c
/openbmc/qemu/tests/qtest/migration/cpr-tests.c
/openbmc/qemu/tests/qtest/migration/file-tests.c
/openbmc/qemu/tests/qtest/migration/framework.c
/openbmc/qemu/tests/qtest/migration/framework.h
/openbmc/qemu/tests/qtest/migration/migration-qmp.c
/openbmc/qemu/tests/qtest/migration/migration-util.c
/openbmc/qemu/tests/qtest/migration/misc-tests.c
/openbmc/qemu/tests/qtest/migration/postcopy-tests.c
/openbmc/qemu/tests/qtest/migration/precopy-tests.c
/openbmc/qemu/tests/qtest/migration/tls-tests.c
/openbmc/qemu/tests/qtest/netdev-socket.c
/openbmc/qemu/tests/qtest/npcm7xx_adc-test.c
/openbmc/qemu/tests/qtest/npcm7xx_emc-test.c
/openbmc/qemu/tests/qtest/npcm7xx_pwm-test.c
/openbmc/qemu/tests/qtest/npcm7xx_timer-test.c
/openbmc/qemu/tests/qtest/npcm7xx_watchdog_timer-test.c
/openbmc/qemu/tests/qtest/numa-test.c
/openbmc/qemu/tests/qtest/pvpanic-pci-test.c
/openbmc/qemu/tests/qtest/pvpanic-test.c
/openbmc/qemu/tests/qtest/q35-test.c
/openbmc/qemu/tests/qtest/qmp-cmd-test.c
/openbmc/qemu/tests/qtest/qmp-test.c
/openbmc/qemu/tests/qtest/qom-test.c
/openbmc/qemu/tests/qtest/qos-test.c
/openbmc/qemu/tests/qtest/readconfig-test.c
/openbmc/qemu/tests/qtest/tco-test.c
/openbmc/qemu/tests/qtest/test-filter-mirror.c
/openbmc/qemu/tests/qtest/test-filter-redirector.c
/openbmc/qemu/tests/qtest/test-netfilter.c
/openbmc/qemu/tests/qtest/test-x86-cpuid-compat.c
/openbmc/qemu/tests/qtest/tmp105-test.c
/openbmc/qemu/tests/qtest/tpm-emu.c
/openbmc/qemu/tests/qtest/tpm-util.c
/openbmc/qemu/tests/qtest/vhost-user-test.c
/openbmc/qemu/tests/qtest/virtio-net-failover.c
/openbmc/qemu/tests/qtest/virtio-net-test.c
/openbmc/qemu/tests/qtest/vmgenid-test.c
/openbmc/qemu/tests/qtest/wdt_ib700-test.c
/openbmc/qemu/tests/tcg/arm/Makefile.target
/openbmc/qemu/tests/tcg/arm/README
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/gdbstub/late-attach.py
/openbmc/qemu/tests/tcg/multiarch/late-attach.c
/openbmc/qemu/tests/unit/check-block-qdict.c
/openbmc/qemu/tests/unit/check-qdict.c
/openbmc/qemu/tests/unit/check-qjson.c
/openbmc/qemu/tests/unit/check-qlist.c
/openbmc/qemu/tests/unit/check-qlit.c
/openbmc/qemu/tests/unit/check-qnull.c
/openbmc/qemu/tests/unit/check-qnum.c
/openbmc/qemu/tests/unit/check-qobject.c
/openbmc/qemu/tests/unit/check-qom-proplist.c
/openbmc/qemu/tests/unit/check-qstring.c
/openbmc/qemu/tests/unit/test-block-iothread.c
/openbmc/qemu/tests/unit/test-blockjob-txn.c
/openbmc/qemu/tests/unit/test-blockjob.c
/openbmc/qemu/tests/unit/test-char.c
/openbmc/qemu/tests/unit/test-forward-visitor.c
/openbmc/qemu/tests/unit/test-image-locking.c
/openbmc/qemu/tests/unit/test-keyval.c
/openbmc/qemu/tests/unit/test-qemu-opts.c
/openbmc/qemu/tests/unit/test-qga.c
/openbmc/qemu/tests/unit/test-qmp-cmds.c
/openbmc/qemu/tests/unit/test-qmp-event.c
/openbmc/qemu/tests/unit/test-qobject-input-visitor.c
/openbmc/qemu/tests/unit/test-qobject-output-visitor.c
/openbmc/qemu/tests/unit/test-replication.c
/openbmc/qemu/tests/unit/test-visitor-serialization.c
/openbmc/qemu/trace/trace-hmp-cmds.c
/openbmc/qemu/ui/ui-hmp-cmds.c
/openbmc/qemu/util/error.c
/openbmc/qemu/util/keyval.c
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/qemu-config.c
/openbmc/qemu/util/qemu-option.c
/openbmc/qemu/util/qemu-timer.c
476d6e4c07-Feb-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: restrict missing_const_for_fn to qemu_api crate

missing_const_for_fn is not necessarily useful or good. For example in
a private API you can always add const later, and in a public API
it can

rust: restrict missing_const_for_fn to qemu_api crate

missing_const_for_fn is not necessarily useful or good. For example in
a private API you can always add const later, and in a public API
it can be unnecessarily restrictive to annotate everything with const
(blocking further improvements to the API).

Nevertheless, QEMU turns it on because qemu_api uses const quite
aggressively and therefore it can be handy to have as much as possible
annotated with const. Outside qemu_api though, not so much: devices
are self contained consumers and if there is nothing that could use
their functions in const contexts that were not anticipated.

Since missing_const_for_fn can be a bit noisy and trigger on trivial
functions that no one would ever call in const context, do not
turn it on everywhere and only keep it in qemu_api as a special case.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

669fab6a27-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: include rust_version in Cargo.toml

Tell clippy the minimum supported Rust version for QEMU.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/internal-target.h
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/accel/tcg/vcpu-state.h
/openbmc/qemu/audio/dbusaudio.c
/openbmc/qemu/backends/hostmem-epc.c
/openbmc/qemu/backends/hostmem-file.c
/openbmc/qemu/backends/hostmem-memfd.c
/openbmc/qemu/backends/hostmem-ram.c
/openbmc/qemu/backends/hostmem-shm.c
/openbmc/qemu/block/parallels.c
/openbmc/qemu/block/vvfat.c
/openbmc/qemu/chardev/char-hub.c
/openbmc/qemu/chardev/char-pty.c
/openbmc/qemu/chardev/char.c
/openbmc/qemu/chardev/chardev-internal.h
/openbmc/qemu/chardev/meson.build
/openbmc/qemu/contrib/plugins/cache.c
/openbmc/qemu/crypto/pbkdf.c
/openbmc/qemu/disas/hppa.c
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/devel/migration/CPR.rst
/openbmc/qemu/docs/devel/tcg-ops.rst
/openbmc/qemu/docs/devel/testing/functional.rst
/openbmc/qemu/docs/system/arm/aspeed.rst
/openbmc/qemu/fpu/softfloat-parts.c.inc
/openbmc/qemu/fpu/softfloat.c
/openbmc/qemu/gdbstub/user-target.c
/openbmc/qemu/host/include/riscv/host/cpuinfo.h
/openbmc/qemu/hw/alpha/dp264.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/armv7m.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast27x0.c
/openbmc/qemu/hw/arm/b-l475e-iot01a.c
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/fsl-imx6.c
/openbmc/qemu/hw/arm/fsl-imx7.c
/openbmc/qemu/hw/arm/microbit.c
/openbmc/qemu/hw/arm/mps2-tz.c
/openbmc/qemu/hw/arm/mps2.c
/openbmc/qemu/hw/arm/msf2-som.c
/openbmc/qemu/hw/arm/musca.c
/openbmc/qemu/hw/arm/netduino2.c
/openbmc/qemu/hw/arm/netduinoplus2.c
/openbmc/qemu/hw/arm/nrf51_soc.c
/openbmc/qemu/hw/arm/olimex-stm32-h405.c
/openbmc/qemu/hw/arm/omap1.c
/openbmc/qemu/hw/arm/stellaris.c
/openbmc/qemu/hw/arm/stm32vldiscovery.c
/openbmc/qemu/hw/avr/boot.c
/openbmc/qemu/hw/char/Kconfig
/openbmc/qemu/hw/char/imx_serial.c
/openbmc/qemu/hw/char/ipoctal232.c
/openbmc/qemu/hw/char/meson.build
/openbmc/qemu/hw/char/serial-pci-multi.c
/openbmc/qemu/hw/core/generic-loader.c
/openbmc/qemu/hw/core/irq.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/hppa/hppa_hardware.h
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/i386/multiboot.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/ipack/Kconfig
/openbmc/qemu/hw/ipack/ipack.c
/openbmc/qemu/hw/ipack/meson.build
/openbmc/qemu/hw/ipack/tpci200.c
/openbmc/qemu/hw/loongarch/boot.c
/openbmc/qemu/hw/m68k/an5206.c
/openbmc/qemu/hw/m68k/mcf5208.c
/openbmc/qemu/hw/m68k/q800.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/microblaze/boot.c
/openbmc/qemu/hw/mips/boston.c
/openbmc/qemu/hw/mips/fuloong2e.c
/openbmc/qemu/hw/mips/loongson3_bootp.c
/openbmc/qemu/hw/mips/loongson3_bootp.h
/openbmc/qemu/hw/mips/loongson3_virt.c
/openbmc/qemu/hw/mips/malta.c
/openbmc/qemu/hw/mips/meson.build
/openbmc/qemu/hw/mips/mipssim.c
/openbmc/qemu/hw/misc/i2c-echo.c
/openbmc/qemu/hw/misc/ivshmem-flat.c
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/openrisc/boot.c
/openbmc/qemu/hw/pci-host/designware.c
/openbmc/qemu/hw/pci-host/raven.c
/openbmc/qemu/hw/ppc/e500.c
/openbmc/qemu/hw/ppc/mac_newworld.c
/openbmc/qemu/hw/ppc/mac_oldworld.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/ppc405_boards.c
/openbmc/qemu/hw/ppc/ppc440_bamboo.c
/openbmc/qemu/hw/ppc/sam460ex.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/virtex_ml507.c
/openbmc/qemu/hw/riscv/boot.c
/openbmc/qemu/hw/rx/rx-gdbsim.c
/openbmc/qemu/hw/s390x/ipl.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/sd/omap_mmc.c
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/sh4/r2d.c
/openbmc/qemu/hw/sparc/leon3.c
/openbmc/qemu/hw/sparc/sun4m.c
/openbmc/qemu/hw/sparc64/sun4u.c
/openbmc/qemu/hw/timer/aspeed_timer.c
/openbmc/qemu/hw/timer/trace-events
/openbmc/qemu/hw/tricore/triboard.c
/openbmc/qemu/hw/tricore/tricore_testboard.c
/openbmc/qemu/hw/usb/canokey.c
/openbmc/qemu/hw/usb/canokey.h
/openbmc/qemu/hw/usb/hcd-ehci.c
/openbmc/qemu/hw/virtio/virtio-balloon-pci.c
/openbmc/qemu/hw/virtio/virtio-mem-pci.c
/openbmc/qemu/hw/watchdog/wdt_aspeed.c
/openbmc/qemu/hw/xtensa/sim.c
/openbmc/qemu/hw/xtensa/xtfpga.c
/openbmc/qemu/include/chardev/char.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/exec/ram_addr.h
/openbmc/qemu/include/fpu/softfloat-helpers.h
/openbmc/qemu/include/fpu/softfloat-types.h
/openbmc/qemu/include/hw/arm/aspeed.h
/openbmc/qemu/include/hw/arm/fsl-imx6.h
/openbmc/qemu/include/hw/arm/fsl-imx7.h
/openbmc/qemu/include/hw/arm/nrf51_soc.h
/openbmc/qemu/include/hw/arm/omap.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/char/imx_serial.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/ipack/ipack.h
/openbmc/qemu/include/hw/irq.h
/openbmc/qemu/include/hw/loader.h
/openbmc/qemu/include/hw/misc/ivshmem-flat.h
/openbmc/qemu/include/hw/pci-host/designware.h
/openbmc/qemu/include/hw/sd/sd.h
/openbmc/qemu/include/hw/sd/sdhci.h
/openbmc/qemu/include/hw/timer/aspeed_timer.h
/openbmc/qemu/include/migration/cpr.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/migration/vmstate.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/tcg/tcg-opc.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/linux-user/fd-trans.c
/openbmc/qemu/linux-user/sparc/target_proc.h
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/meson.build
/openbmc/qemu/migration/cpr-transfer.c
/openbmc/qemu/migration/cpr.c
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/options.c
/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/vmstate-types.c
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/net/dump.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/pc-bios/hppa-firmware64.img
/openbmc/qemu/pc-bios/s390-ccw.img
/openbmc/qemu/pc-bios/s390-ccw/bootmap.c
/openbmc/qemu/pc-bios/s390-ccw/netmain.c
/openbmc/qemu/pc-bios/s390-ccw/virtio-net.c
/openbmc/qemu/pc-bios/s390-ccw/virtio.c
/openbmc/qemu/pc-bios/s390-ccw/virtio.h
/openbmc/qemu/qapi/audio.json
/openbmc/qemu/qapi/char.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/roms/seabios-hppa
/openbmc/qemu/rust/hw/char/pl011/Cargo.toml
/openbmc/qemu/rust/hw/char/pl011/src/device_class.rs
/openbmc/qemu/rust/hw/char/pl011/src/lib.rs
/openbmc/qemu/rust/qemu-api-macros/Cargo.toml
Cargo.toml
/openbmc/qemu/scripts/qom-cast-macro-clean-cocci-gen.py
/openbmc/qemu/stubs/vmstate.c
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/system/trace-events
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/helper-a64.h
/openbmc/qemu/target/arm/tcg/sme_helper.c
/openbmc/qemu/target/arm/tcg/sve_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate-sme.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/arm/tcg/translate-vfp.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/arm/tcg/vec_helper.c
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/helper.c
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/insns.decode
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/machine.c
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/sys_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/csr.c
/openbmc/qemu/target/loongarch/csr.h
/openbmc/qemu/target/loongarch/meson.build
/openbmc/qemu/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
/openbmc/qemu/target/loongarch/tcg/tcg_loongarch.h
/openbmc/qemu/target/loongarch/tcg/translate.c
/openbmc/qemu/target/m68k/fpu_helper.c
/openbmc/qemu/target/m68k/semihosting-stub.c
/openbmc/qemu/target/mips/tcg/msa_helper.c
/openbmc/qemu/target/mips/tcg/system/semihosting-stub.c
/openbmc/qemu/target/rx/op_helper.c
/openbmc/qemu/target/s390x/tcg/insn-data.h.inc
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/tricore/fpu_helper.c
/openbmc/qemu/target/tricore/translate.c
/openbmc/qemu/tcg/aarch64/tcg-target-has.h
/openbmc/qemu/tcg/aarch64/tcg-target-mo.h
/openbmc/qemu/tcg/aarch64/tcg-target-opc.h.inc
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tcg/aarch64/tcg-target.h
/openbmc/qemu/tcg/arm/tcg-target-has.h
/openbmc/qemu/tcg/arm/tcg-target-mo.h
/openbmc/qemu/tcg/arm/tcg-target-opc.h.inc
/openbmc/qemu/tcg/arm/tcg-target.c.inc
/openbmc/qemu/tcg/arm/tcg-target.h
/openbmc/qemu/tcg/i386/tcg-target-has.h
/openbmc/qemu/tcg/i386/tcg-target-mo.h
/openbmc/qemu/tcg/i386/tcg-target-opc.h.inc
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-target-has.h
/openbmc/qemu/tcg/loongarch64/tcg-target-mo.h
/openbmc/qemu/tcg/loongarch64/tcg-target-opc.h.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/mips/tcg-target-has.h
/openbmc/qemu/tcg/mips/tcg-target-mo.h
/openbmc/qemu/tcg/mips/tcg-target-opc.h.inc
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.h
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/ppc/tcg-target-has.h
/openbmc/qemu/tcg/ppc/tcg-target-mo.h
/openbmc/qemu/tcg/ppc/tcg-target-opc.h.inc
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/riscv/tcg-target-has.h
/openbmc/qemu/tcg/riscv/tcg-target-mo.h
/openbmc/qemu/tcg/riscv/tcg-target-opc.h.inc
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target-has.h
/openbmc/qemu/tcg/s390x/tcg-target-mo.h
/openbmc/qemu/tcg/s390x/tcg-target-opc.h.inc
/openbmc/qemu/tcg/s390x/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/sparc64/tcg-target-has.h
/openbmc/qemu/tcg/sparc64/tcg-target-mo.h
/openbmc/qemu/tcg/sparc64/tcg-target-opc.h.inc
/openbmc/qemu/tcg/sparc64/tcg-target.c.inc
/openbmc/qemu/tcg/sparc64/tcg-target.h
/openbmc/qemu/tcg/tcg-common.c
/openbmc/qemu/tcg/tcg-has.h
/openbmc/qemu/tcg/tcg-internal.h
/openbmc/qemu/tcg/tcg-op-gvec.c
/openbmc/qemu/tcg/tcg-op-ldst.c
/openbmc/qemu/tcg/tcg-op-vec.c
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tcg/tci/tcg-target-has.h
/openbmc/qemu/tcg/tci/tcg-target-mo.h
/openbmc/qemu/tcg/tci/tcg-target-opc.h.inc
/openbmc/qemu/tcg/tci/tcg-target.c.inc
/openbmc/qemu/tcg/tci/tcg-target.h
/openbmc/qemu/tests/avocado/replay_kernel.py
/openbmc/qemu/tests/functional/aspeed.py
/openbmc/qemu/tests/functional/meson.build
/openbmc/qemu/tests/functional/qemu_test/__init__.py
/openbmc/qemu/tests/functional/qemu_test/decorators.py
/openbmc/qemu/tests/functional/replay_kernel.py
/openbmc/qemu/tests/functional/test_aarch64_aspeed.py
/openbmc/qemu/tests/functional/test_aarch64_sbsaref.py
/openbmc/qemu/tests/functional/test_aarch64_sbsaref_alpine.py
/openbmc/qemu/tests/functional/test_aarch64_sbsaref_freebsd.py
/openbmc/qemu/tests/functional/test_aarch64_tcg_plugins.py
/openbmc/qemu/tests/functional/test_arm_aspeed_ast2500.py
/openbmc/qemu/tests/functional/test_arm_aspeed_ast2600.py
/openbmc/qemu/tests/functional/test_arm_microbit.py
/openbmc/qemu/tests/functional/test_arm_quanta_gsj.py
/openbmc/qemu/tests/functional/test_migration.py
/openbmc/qemu/tests/functional/test_mips64el_replay.py
/openbmc/qemu/tests/functional/test_mips_malta.py
/openbmc/qemu/tests/functional/test_mips_replay.py
/openbmc/qemu/tests/functional/test_mipsel_replay.py
/openbmc/qemu/tests/functional/test_ppc64_mac99.py
/openbmc/qemu/tests/functional/test_ppc_40p.py
/openbmc/qemu/tests/functional/test_x86_64_kvm_xen.py
/openbmc/qemu/tests/qemu-iotests/194.out
/openbmc/qemu/tests/qemu-iotests/203.out
/openbmc/qemu/tests/qemu-iotests/234.out
/openbmc/qemu/tests/qemu-iotests/262.out
/openbmc/qemu/tests/qemu-iotests/280.out
/openbmc/qemu/tests/qtest/libqos/fw_cfg.c
/openbmc/qemu/tests/qtest/libqos/fw_cfg.h
/openbmc/qemu/tests/qtest/libqos/libqos.c
/openbmc/qemu/tests/qtest/libqos/meson.build
/openbmc/qemu/tests/qtest/libqos/virtio-scmi.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/libqtest.h
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration/cpr-tests.c
/openbmc/qemu/tests/qtest/migration/framework.c
/openbmc/qemu/tests/qtest/migration/framework.h
/openbmc/qemu/tests/qtest/migration/migration-qmp.c
/openbmc/qemu/tests/qtest/migration/migration-qmp.h
/openbmc/qemu/tests/qtest/migration/migration-util.c
/openbmc/qemu/tests/qtest/migration/misc-tests.c
/openbmc/qemu/tests/qtest/migration/precopy-tests.c
/openbmc/qemu/tests/qtest/vhost-user-test.c
/openbmc/qemu/tests/qtest/virtio-net-failover.c
/openbmc/qemu/tests/qtest/vmcoreinfo-test.c
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/s390x/mvc-smc.c
/openbmc/qemu/tests/unit/test-char.c
/openbmc/qemu/ui/dbus-console.c
/openbmc/qemu/ui/dbus-display1.xml
/openbmc/qemu/ui/dbus.c
/openbmc/qemu/util/cpuinfo-riscv.c
/openbmc/qemu/util/memfd.c
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/oslib-win32.c
d28ece2417-Jan-2025 Zhao Liu <zhao1.liu@intel.com>

rust: qemu-api: add sub-subclass to the integration tests

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

aaf3778b23-Jan-2025 Zhao Liu <zhao1.liu@intel.com>

rust/zeroable: Implement Zeroable with const_zero macro

The `const_zero` crate provides a nice macro to zero type-specific
constants, which doesn't need to enumerates the fields one by one.

Introdu

rust/zeroable: Implement Zeroable with const_zero macro

The `const_zero` crate provides a nice macro to zero type-specific
constants, which doesn't need to enumerates the fields one by one.

Introduce the `const_zero` macro to QEMU (along with its documentation), and
use it to simplify the implementation of `Zeroable` trait.

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20250123163143.679841-1-zhao1.liu@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

af7edb1d02-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qdev: make reset take a shared reference

Because register reset is within a borrow_mut() call, reset
does not need anymore a mut reference to the PL011State.

Reviewed-by: Zhao Liu <zhao1.liu@

rust: qdev: make reset take a shared reference

Because register reset is within a borrow_mut() call, reset
does not need anymore a mut reference to the PL011State.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

7d05203923-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: prefer NonNull::new to assertions

Do not use new_unchecked; the effect is the same, but the
code is easier to read and unsafe regions become smaller.
Likewise, NonNull::new can be used instead

rust: prefer NonNull::new to assertions

Do not use new_unchecked; the effect is the same, but the
code is easier to read and unsafe regions become smaller.
Likewise, NonNull::new can be used instead of assertion and
followed by as_ref() or as_mut() instead of dereferencing the
pointer.

Suggested-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

24f0e8d807-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: make order of parameters consistent in vmstate_clock

Place struct_name before field_name, similar to offset_of.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

9d48994907-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: remove translation of C vmstate macros

Keep vmstate_clock!; because it uses a field of type VMStateDescription,
it cannot be converted to the VMState trait without access to the
const

rust: vmstate: remove translation of C vmstate macros

Keep vmstate_clock!; because it uses a field of type VMStateDescription,
it cannot be converted to the VMState trait without access to the
const_refs_static feature.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

9a2ba48821-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qemu_api: add vmstate_struct

It is not type safe, but it's the best that can be done without
const_refs_static. It can also be used with BqlCell and BqlRefCell.

Signed-off-by: Paolo Bonzini

rust: qemu_api: add vmstate_struct

It is not type safe, but it's the best that can be done without
const_refs_static. It can also be used with BqlCell and BqlRefCell.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

00f8971621-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: add public utility macros to implement VMState

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

f2cb78bd29-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: implement VMState for scalar types

Scalar types are those that have their own VMStateInfo. This poses
a problem in that references to VMStateInfo can only be included in
associated c

rust: vmstate: implement VMState for scalar types

Scalar types are those that have their own VMStateInfo. This poses
a problem in that references to VMStateInfo can only be included in
associated consts starting with Rust 1.83.0, when the const_refs_static
was stabilized. Removing the requirement is done by placing a limited
list of VMStateInfos in an enum, and going from enum to &VMStateInfo
only when building the VMStateField.

The same thing cannot be done with VMS_STRUCT because the set of
VMStateDescriptions extends to structs defined by the devices.
Therefore, structs and cells cannot yet use vmstate_of!.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

2537f83029-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: implement Zeroable for VMStateField

This shortens a bit the constants. Do not bother using it
in the vmstate macros since most of them will go away soon.

Reviewed-by: Zhao Liu <zhao

rust: vmstate: implement Zeroable for VMStateField

This shortens a bit the constants. Do not bother using it
in the vmstate macros since most of them will go away soon.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

5b024b4e19-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: add varray support to vmstate_of!

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

80aa304529-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: implement VMState for non-leaf types

Arrays, pointers and cells use a VMStateField that is based on that
for the inner type. The implementation therefore delegates to the
VMState imp

rust: vmstate: implement VMState for non-leaf types

Arrays, pointers and cells use a VMStateField that is based on that
for the inner type. The implementation therefore delegates to the
VMState implementation of the inner type.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

0d43ddae08-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: vmstate: add new type safe implementation

The existing translation of the C macros for vmstate does not make
any attempt to type-check vmstate declarations against the struct, so
introduce a n

rust: vmstate: add new type safe implementation

The existing translation of the C macros for vmstate does not make
any attempt to type-check vmstate declarations against the struct, so
introduce a new system that computes VMStateField based on the actual
struct declaration.

Macros do not have full access to the type system, therefore a full
implementation of this scheme requires a helper trait to analyze the
type and produce a VMStateField from it; a macro "vmstate_of!" accepts
arguments similar to "offset_of!" and tricks the compiler into looking
up the trait for the right type.

The patch introduces not just vmstate_of!, but also the slightly too
clever enabling macro call_func_with_field!. The particular trick used
here was proposed on the users.rust-lang.org forum, so I take no merit
and all the blame.

Introduce the trait and some functions to access it; the actual
implementation comes later.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

0f9eb0ff21-Jan-2025 Zhao Liu <zhao1.liu@intel.com>

rust/qdev: Make REALIZE safe

A safe REALIZE accepts immutable reference.

Since current PL011's realize() only calls a char binding function (
qemu_chr_fe_set_handlers), it is possible to convert mu

rust/qdev: Make REALIZE safe

A safe REALIZE accepts immutable reference.

Since current PL011's realize() only calls a char binding function (
qemu_chr_fe_set_handlers), it is possible to convert mutable reference
(&mut self) to immutable reference (&self), which only needs to convert
the pointers passed to C to mutable pointers.

Thus, make REALIZE accept immutable reference.

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20250121140457.84631-2-zhao1.liu@intel.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/.b4-config
/openbmc/qemu/.editorconfig
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-14.vars
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/tcg-all.c
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/backends/cryptodev-vhost-user.c
/openbmc/qemu/backends/cryptodev.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/chardev/char.c
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/cache.c
/openbmc/qemu/contrib/plugins/cflow.c
/openbmc/qemu/contrib/plugins/hotblocks.c
/openbmc/qemu/contrib/plugins/hotpages.c
/openbmc/qemu/contrib/plugins/howvec.c
/openbmc/qemu/contrib/plugins/hwprofile.c
/openbmc/qemu/contrib/plugins/meson.build
/openbmc/qemu/contrib/plugins/stoptrigger.c
/openbmc/qemu/docs/about/build-platforms.rst
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/emulation.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/devel/build-environment.rst
/openbmc/qemu/docs/devel/codebase.rst
/openbmc/qemu/docs/devel/control-flow-integrity.rst
/openbmc/qemu/docs/devel/decodetree.rst
/openbmc/qemu/docs/devel/ebpf_rss.rst
/openbmc/qemu/docs/devel/index-build.rst
/openbmc/qemu/docs/devel/index-internals.rst
/openbmc/qemu/docs/devel/index.rst
/openbmc/qemu/docs/devel/migration/main.rst
/openbmc/qemu/docs/devel/multi-thread-tcg.rst
/openbmc/qemu/docs/devel/qapi-code-gen.rst
/openbmc/qemu/docs/devel/style.rst
/openbmc/qemu/docs/devel/submitting-a-patch.rst
/openbmc/qemu/docs/devel/testing/main.rst
/openbmc/qemu/docs/devel/testing/qtest.rst
/openbmc/qemu/docs/glossary.rst
/openbmc/qemu/docs/index.rst
/openbmc/qemu/docs/interop/qemu-ga.rst
/openbmc/qemu/docs/specs/acpi_hest_ghes.rst
/openbmc/qemu/docs/sphinx/depfile.py
/openbmc/qemu/docs/system/arm/cpu-features.rst
/openbmc/qemu/docs/system/arm/virt.rst
/openbmc/qemu/docs/system/cpu-models-x86.rst.inc
/openbmc/qemu/docs/system/i386/nitro-enclave.rst
/openbmc/qemu/docs/system/images.rst
/openbmc/qemu/docs/system/introduction.rst
/openbmc/qemu/docs/system/qemu-block-drivers.rst.inc
/openbmc/qemu/docs/tools/qemu-nbd.rst
/openbmc/qemu/docs/tools/qemu-storage-daemon.rst
/openbmc/qemu/docs/user/main.rst
/openbmc/qemu/gdbstub/system.c
/openbmc/qemu/gdbstub/user.c
/openbmc/qemu/hw/acpi/Kconfig
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/generic_event_device.c
/openbmc/qemu/hw/acpi/ghes-stub.c
/openbmc/qemu/hw/acpi/ghes.c
/openbmc/qemu/hw/acpi/meson.build
/openbmc/qemu/hw/acpi/vmclock.c
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/musicpal.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/block/xen-block.c
/openbmc/qemu/hw/char/imx_serial.c
/openbmc/qemu/hw/char/riscv_htif.c
/openbmc/qemu/hw/char/stm32f2xx_usart.c
/openbmc/qemu/hw/char/trace-events
/openbmc/qemu/hw/char/xen_console.c
/openbmc/qemu/hw/core/cpu-common.c
/openbmc/qemu/hw/core/gpio.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/meson.build
/openbmc/qemu/hw/core/qdev-hotplug.c
/openbmc/qemu/hw/core/qdev-user.c
/openbmc/qemu/hw/core/qdev.c
/openbmc/qemu/hw/core/sysbus.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/display/virtio-gpu-base.c
/openbmc/qemu/hw/gpio/imx_gpio.c
/openbmc/qemu/hw/gpio/trace-events
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/i2c/imx_i2c.c
/openbmc/qemu/hw/i2c/trace-events
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/i386/intel_iommu_internal.h
/openbmc/qemu/hw/i386/kvm/clock.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.h
/openbmc/qemu/hw/i386/kvm/xen_xenstore.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/intc/loongarch_extioi.c
/openbmc/qemu/hw/intc/loongarch_extioi_common.c
/openbmc/qemu/hw/intc/loongarch_ipi.c
/openbmc/qemu/hw/intc/loongson_ipi.c
/openbmc/qemu/hw/intc/loongson_ipi_common.c
/openbmc/qemu/hw/intc/s390_flic.c
/openbmc/qemu/hw/intc/xilinx_intc.c
/openbmc/qemu/hw/loongarch/acpi-build.c
/openbmc/qemu/hw/loongarch/boot.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/misc/arm_sysctl.c
/openbmc/qemu/hw/misc/imx6_src.c
/openbmc/qemu/hw/misc/npcm7xx_mft.c
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/misc/vmcoreinfo.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/net/xen_nic.c
/openbmc/qemu/hw/net/xilinx_ethlite.c
/openbmc/qemu/hw/pci/msix.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_host.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/riscv/riscv-iommu.c
/openbmc/qemu/hw/riscv/riscv_hart.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/s390x/css-bridge.c
/openbmc/qemu/hw/s390x/ipl.c
/openbmc/qemu/hw/s390x/ipl.h
/openbmc/qemu/hw/s390x/s390-skeys.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/s390x/virtio-ccw.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/sparc/sun4m.c
/openbmc/qemu/hw/timer/imx_gpt.c
/openbmc/qemu/hw/timer/xilinx_timer.c
/openbmc/qemu/hw/tricore/triboard.c
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/usb/bus.c
/openbmc/qemu/hw/usb/dev-serial.c
/openbmc/qemu/hw/usb/hcd-xhci-pci.c
/openbmc/qemu/hw/usb/hcd-xhci.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/xen/trace-events
/openbmc/qemu/hw/xen/xen-bus-helper.c
/openbmc/qemu/hw/xen/xen-bus.c
/openbmc/qemu/hw/xen/xen_pvdev.c
/openbmc/qemu/include/exec/gdbstub.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/acpi/ghes.h
/openbmc/qemu/include/hw/acpi/vmclock.h
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/i386/intel_iommu.h
/openbmc/qemu/include/hw/i386/topology.h
/openbmc/qemu/include/hw/intc/loongarch_extioi_common.h
/openbmc/qemu/include/hw/intc/loongarch_ipi.h
/openbmc/qemu/include/hw/intc/loongson_ipi_common.h
/openbmc/qemu/include/hw/loader.h
/openbmc/qemu/include/hw/misc/vmcoreinfo.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pci_device.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/riscv/riscv_hart.h
/openbmc/qemu/include/hw/s390x/css-bridge.h
/openbmc/qemu/include/hw/s390x/s390-virtio-ccw.h
/openbmc/qemu/include/hw/s390x/s390_flic.h
/openbmc/qemu/include/hw/s390x/storage-keys.h
/openbmc/qemu/include/hw/usb.h
/openbmc/qemu/include/hw/virtio/vhost.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/hw/xen/xen-bus-helper.h
/openbmc/qemu/include/hw/xen/xen-bus.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/qemu/compiler.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/include/qom/object.h
/openbmc/qemu/include/semihosting/console.h
/openbmc/qemu/include/semihosting/syscalls.h
/openbmc/qemu/include/semihosting/uaccess.h
/openbmc/qemu/include/standard-headers/linux/vmclock-abi.h
/openbmc/qemu/include/system/system.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/block-active.c
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/multifd-nocomp.c
/openbmc/qemu/migration/multifd-qatzip.c
/openbmc/qemu/migration/multifd-qpl.c
/openbmc/qemu/migration/multifd-uadk.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/multifd.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/rdma.h
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/trace-events
/openbmc/qemu/migration/vmstate-types.c
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/monitor/qmp-cmds.c
/openbmc/qemu/pc-bios/keymaps/meson.build
/openbmc/qemu/pc-bios/meson.build
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qom/container.c
/openbmc/qemu/qom/object.c
/openbmc/qemu/rust/hw/char/pl011/src/device.rs
src/qdev.rs
/openbmc/qemu/scripts/analyze-migration.py
/openbmc/qemu/scripts/cocci-macro-file.h
/openbmc/qemu/scripts/make-release
/openbmc/qemu/scripts/nsis.py
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/scsi/pr-manager.c
/openbmc/qemu/semihosting/arm-compat-semi.c
/openbmc/qemu/semihosting/console.c
/openbmc/qemu/semihosting/meson.build
/openbmc/qemu/semihosting/syscalls.c
/openbmc/qemu/semihosting/uaccess.c
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/subprojects/arbitrary-int-1-rs.wrap
/openbmc/qemu/subprojects/bilge-0.2-rs.wrap
/openbmc/qemu/subprojects/bilge-impl-0.2-rs.wrap
/openbmc/qemu/subprojects/either-1-rs.wrap
/openbmc/qemu/subprojects/itertools-0.11-rs.wrap
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.h
/openbmc/qemu/subprojects/packagefiles/arbitrary-int-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/bilge-0.2-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/either-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/itertools-0.11-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/proc-macro2-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/quote-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/syn-2-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/unicode-ident-1-rs/meson.build
/openbmc/qemu/subprojects/proc-macro-error-1-rs.wrap
/openbmc/qemu/subprojects/proc-macro-error-attr-1-rs.wrap
/openbmc/qemu/subprojects/proc-macro2-1-rs.wrap
/openbmc/qemu/subprojects/quote-1-rs.wrap
/openbmc/qemu/subprojects/syn-2-rs.wrap
/openbmc/qemu/subprojects/unicode-ident-1-rs.wrap
/openbmc/qemu/system/cpus.c
/openbmc/qemu/system/ioport.c
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/system/qtest.c
/openbmc/qemu/system/runstate.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/arm-qmp-cmds.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/tcg/arith_helper.c
/openbmc/qemu/target/arm/tcg/meson.build
/openbmc/qemu/target/arm/tcg/op_addsub.c.inc
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/i386/confidential-guest.h
/openbmc/qemu/target/i386/cpu-system.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/hvf/x86_emu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/system/misc_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/loongarch/cpu_helper.c
/openbmc/qemu/target/loongarch/helper.h
/openbmc/qemu/target/loongarch/internals.h
/openbmc/qemu/target/loongarch/tcg/csr_helper.c
/openbmc/qemu/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
/openbmc/qemu/target/loongarch/tcg/tlb_helper.c
/openbmc/qemu/target/mips/cpu.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/cpu_cfg.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/gdbstub.c
/openbmc/qemu/target/riscv/helper.h
/openbmc/qemu/target/riscv/insn32.decode
/openbmc/qemu/target/riscv/insn_trans/trans_privileged.c.inc
/openbmc/qemu/target/riscv/internals.h
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/kvm/kvm_riscv.h
/openbmc/qemu/target/riscv/machine.c
/openbmc/qemu/target/riscv/op_helper.c
/openbmc/qemu/target/riscv/pmp.c
/openbmc/qemu/target/riscv/pmp.h
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/riscv/trace-events
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/riscv/vector_helper.c
/openbmc/qemu/target/s390x/kvm/kvm.c
/openbmc/qemu/target/xtensa/cpu.c
/openbmc/qemu/tests/data/acpi/riscv64/virt/RHCT
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbrroot
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.ipmikcs
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.roothp
/openbmc/qemu/tests/data/acpi/x86/q35/DMAR.dmar
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.applesmc
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmismbus
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ivrs
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.multi-bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.noacpihp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.pvpanic-isa
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.viot
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.xapic
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-tricore-cross.docker
/openbmc/qemu/tests/functional/meson.build
/openbmc/qemu/tests/functional/qemu_test/tuxruntest.py
/openbmc/qemu/tests/functional/qemu_test/uncompress.py
/openbmc/qemu/tests/functional/test_aarch64_rme_sbsaref.py
/openbmc/qemu/tests/functional/test_aarch64_rme_virt.py
/openbmc/qemu/tests/functional/test_aarch64_virt.py
/openbmc/qemu/tests/functional/test_arm_tuxrun.py
/openbmc/qemu/tests/functional/test_hppa_seabios.py
/openbmc/qemu/tests/functional/test_i386_tuxrun.py
/openbmc/qemu/tests/functional/test_m68k_tuxrun.py
/openbmc/qemu/tests/functional/test_mips64_tuxrun.py
/openbmc/qemu/tests/functional/test_mips64el_tuxrun.py
/openbmc/qemu/tests/functional/test_mips_tuxrun.py
/openbmc/qemu/tests/functional/test_mipsel_tuxrun.py
/openbmc/qemu/tests/functional/test_ppc64_tuxrun.py
/openbmc/qemu/tests/functional/test_ppc_tuxrun.py
/openbmc/qemu/tests/functional/test_riscv32_tuxrun.py
/openbmc/qemu/tests/functional/test_riscv64_tuxrun.py
/openbmc/qemu/tests/functional/test_s390x_tuxrun.py
/openbmc/qemu/tests/functional/test_sparc64_tuxrun.py
/openbmc/qemu/tests/functional/test_x86_64_hotplug_cpu.py
/openbmc/qemu/tests/functional/test_x86_64_tuxrun.py
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/mappings.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/qtest/arm-cpu-features.c
/openbmc/qemu/tests/qtest/boot-serial-test.c
/openbmc/qemu/tests/qtest/intel-iommu-test.c
/openbmc/qemu/tests/qtest/libqos/arm-imx25-pdk-machine.c
/openbmc/qemu/tests/qtest/libqos/i2c-imx.c
/openbmc/qemu/tests/qtest/libqos/qgraph.h
/openbmc/qemu/tests/qtest/libqos/virtio.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/libqtest.h
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration/framework.c
/openbmc/qemu/tests/qtest/migration/framework.h
/openbmc/qemu/tests/qtest/migration/migration-qmp.c
/openbmc/qemu/tests/qtest/riscv-csr-test.c
/openbmc/qemu/tests/qtest/test-x86-cpuid-compat.c
/openbmc/qemu/tests/qtest/ufs-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/plugins/insn.c
/openbmc/qemu/tests/tcg/plugins/mem.c
/openbmc/qemu/tests/tcg/plugins/meson.build
/openbmc/qemu/tests/tcg/plugins/syscall.c
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/vm/Makefile.include
/openbmc/qemu/tests/vm/basevm.py
/openbmc/qemu/tests/vm/generated/freebsd.json
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus-chardev.c
559a779c29-Nov-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qdev: expose inherited methods to subclasses of SysBusDevice

The ObjectDeref trait now provides all the magic that is required to fake
inheritance. Replace the "impl SysBusDevice" block of qe

rust: qdev: expose inherited methods to subclasses of SysBusDevice

The ObjectDeref trait now provides all the magic that is required to fake
inheritance. Replace the "impl SysBusDevice" block of qemu_api::sysbus
with a trait, so that sysbus_init_irq() can be invoked as "self.init_irq()"
without any intermediate upcast.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

22a18f0a29-Nov-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qom: make INSTANCE_POST_INIT take a shared reference

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

af68b41d02-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: pl011: only leave embedded object initialization in instance_init

Leave IRQ and MMIO initialization to instance_post_init. In Rust the
two callbacks are more distinct, because only instance_p

rust: pl011: only leave embedded object initialization in instance_init

Leave IRQ and MMIO initialization to instance_post_init. In Rust the
two callbacks are more distinct, because only instance_post_init has a
fully initialized object available.

While at it, add a wrapper for sysbus_init_mmio so that accesses to
the SysBusDevice correctly use shared references.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

33aa660511-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qom: automatically use Drop trait to implement instance_finalize

Replace the customizable INSTANCE_FINALIZE with a generic function
that drops the Rust object.

Reviewed-by: Zhao Liu <zhao1.li

rust: qom: automatically use Drop trait to implement instance_finalize

Replace the customizable INSTANCE_FINALIZE with a generic function
that drops the Rust object.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

7f65d4e511-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: add a utility module for compile-time type checks

It is relatively common in the low-level qemu_api code to assert that
a field of a struct has a specific type; for example, it can be used
to

rust: add a utility module for compile-time type checks

It is relatively common in the low-level qemu_api code to assert that
a field of a struct has a specific type; for example, it can be used
to ensure that the fields match what the qemu_api and C code expects
for safety.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

ca0d60a611-Dec-2024 Paolo Bonzini <pbonzini@redhat.com>

rust: qom: add ParentField

Add a type that, together with the C function object_deinit, ensures the
correct drop order for QOM objects relative to their superclasses.

Right now it is not possible t

rust: qom: add ParentField

Add a type that, together with the C function object_deinit, ensures the
correct drop order for QOM objects relative to their superclasses.

Right now it is not possible to implement the Drop trait for QOM classes
that are defined in Rust, as the drop() function would not be called when
the object goes away; instead what is called is ObjectImpl::INSTANCE_FINALIZE.
It would be nice for INSTANCE_FINALIZE to just drop the object, but this has
a problem: suppose you have

pub struct MySuperclass {
parent: DeviceState,
field: Box<MyData>,
...
}

impl Drop for MySuperclass {
...
}

pub struct MySubclass {
parent: MySuperclass,
...
}

and an instance_finalize implementation that is like

unsafe extern "C" fn drop_object<T: ObjectImpl>(obj: *mut Object) {
unsafe { std::ptr::drop_in_place(obj.cast::<T>()) }
}

When instance_finalize is called for MySubclass, it will walk the struct's
list of fields and call the drop method for MySuperclass. Then, object_deinit
recurses to the superclass and calls the same drop method again. This
will cause double-freeing of the Box<Data>.

What's happening here is that QOM wants to control the drop order of
MySuperclass and MySubclass's fields. To do so, the parent field must
be marked ManuallyDrop<>, which is quite ugly. Instead, add a wrapper
type ParentField<> that is specific to QOM. This hides the implementation
detail of *what* is special about the ParentField, and will also be easy
to check in the #[derive(Object)] macro.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

12345678