History log of /openbmc/qemu/rust/qemu-api/src/ (Results 76 – 100 of 148)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
590faa0317-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: bindings for MemoryRegionOps

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

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

rust: bindings: add Send and Sync markers for types that have bindings

This is needed for the MemoryRegionOps<T> to be declared as static;
Rust requires static elements to be Sync.

Reviewed-by: Zha

rust: bindings: add Send and Sync markers for types that have bindings

This is needed for the MemoryRegionOps<T> to be declared as static;
Rust requires static elements to be Sync.

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

show more ...

5472a38c17-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: qdev: switch from legacy reset to Resettable

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

68da540207-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: qdev: make ObjectImpl a supertrait of DeviceImpl

In practice it has to be implemented always in order to access an
implementation of ClassInitImpl<ObjectClass>. Make the relationship
explicit

rust: qdev: make ObjectImpl a supertrait of DeviceImpl

In practice it has to be implemented always in order to access an
implementation of ClassInitImpl<ObjectClass>. Make the relationship
explicit in the code.

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

show more ...

688c674117-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: qom: allow initializing interface vtables

Unlike regular classes, interface vtables can only be obtained via
object_class_dynamic_cast. Provide a wrapper that allows accessing
the vtable and

rust: qom: allow initializing interface vtables

Unlike regular classes, interface vtables can only be obtained via
object_class_dynamic_cast. Provide a wrapper that allows accessing
the vtable and pass it to a ClassInitImpl implementation, for example
ClassInitImpl<ResettableClass>.

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

show more ...

201ef00117-Jan-2025 Paolo Bonzini <pbonzini@redhat.com>

rust: qdev: add clock creation

Add a Rust version of qdev_init_clock_in, which can be used in
instance_init. There are a couple differences with the C
version:

- in Rust the object keeps its own r

rust: qdev: add clock creation

Add a Rust version of qdev_init_clock_in, which can be used in
instance_init. There are a couple differences with the C
version:

- in Rust the object keeps its own reference to the clock (in addition to
the one embedded in the NamedClockList), and the reference is dropped
automatically by instance_finalize(); this is encoded in the signature
of DeviceClassMethods::init_clock_in, which makes the lifetime of the
clock independent of that of the object it holds. This goes unnoticed
in the C version and is due to the existence of aliases.

- also, anything that happens during instance_init uses the pinned_init
framework to operate on a partially initialized object, and is done
through class methods (i.e. through DeviceClassMethods rather than
DeviceMethods) because the device does not exist yet. Therefore, Rust
code *must* create clocks from instance_init, which is stricter than C.

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

show more ...

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
qom.rs
vmstate.rs
/openbmc/qemu/rust/qemu-api/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 ...


/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/index-process.rst
/openbmc/qemu/docs/devel/migration/CPR.rst
/openbmc/qemu/docs/devel/rust.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/Cargo.toml
/openbmc/qemu/rust/clippy.toml
/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
/openbmc/qemu/rust/qemu-api/Cargo.toml
lib.rs
/openbmc/qemu/rust/qemu-api/tests/tests.rs
/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/tcg/x86_64/Makefile.target
/openbmc/qemu/tests/tcg/x86_64/fma.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
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
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>

123456