The following changes since commit ae35f033b874c627d81d51070187fbf55f0bf1a7:
Update version for v9.2.0 release (2024-12-10 16:20:54 +0000) are available in the Git repository at: https://gitlab.com/bonzini/qemu.git tags/for-upstream for you to fetch changes up to 166e8a1fd15bfa527b25fc15ca315e572c0556d2: rust: qom: change the parent type to an associated type (2024-12-11 15:57:19 +0100) ---------------------------------------------------------------- * rust: better integration with clippy, rustfmt and rustdoc * rust: interior mutability types * rust: add a bit operations module * rust: first part of QOM rework * kvm: remove unnecessary #ifdef * clock: small cleanups, improve handling of Clock lifetimes ---------------------------------------------------------------- Junjie Mao (1): rust/qemu-api: Fix fragment-specifiers in define_property macro Paolo Bonzini (32): ci: enable rust in the Debian and Ubuntu system build job rust: apply --cfg MESON to all crates rust: allow using build-root bindings.rs from cargo rust: build: move rustc_args.py invocation to qemu-api crate rust: build: restrict --cfg generation to only required symbols rust: build: generate lint flags from Cargo.toml rust: cargo: store desired warning levels in workspace Cargo.toml rust: build: move strict lints handling to rustc_args.py rust: fix a couple style issues from clippy rust: build: establish a baseline of lints across all crates rust: build: add "make clippy", "make rustfmt", "make rustdoc" rust: ci: add job that runs Rust tools rust: fix doc test syntax clock: clear callback on unparent clock: treat outputs and inputs the same in NamedClockList clock: inline most of qdev_init_clocklist kvm: remove unnecessary #ifdef bql: check that the BQL is not dropped within marked sections rust: cell: add BQL-enforcing Cell variant rust: cell: add BQL-enforcing RefCell variant rust: define prelude rust: add bindings for interrupt sources rust: add a bit operation module rust: qom: add default definitions for ObjectImpl rust: qom: rename Class trait to ClassInitImpl rust: qom: convert type_info! macro to an associated const rust: qom: move ClassInitImpl to the instance side rust: qdev: move device_class_init! body to generic function, ClassInitImpl implementation to macro rust: qdev: move bridge for realize and reset functions out of pl011 rust: qom: move bridge for TypeInfo functions out of pl011 rust: qom: split ObjectType from ObjectImpl trait rust: qom: change the parent type to an associated type Zhao Liu (16): arm: Replace type_register() with type_register_static() hw/block: Replace type_register() with type_register_static() hw/net: Replace type_register() with type_register_static() ppc: Replace type_register() with type_register_static() hw/rtc: Replace type_register() with type_register_static() hw/scsi: Replace type_register() with type_register_static() hw/sensor: Replace type_register() with type_register_static() hw/usb: Replace type_register() with type_register_static() hw/virtio: Replace type_register() with type_register_static() i386: Replace type_register() with type_register_static() target/mips: Replace type_register() with type_register_static() target/sparc: Replace type_register() with type_register_static() target/xtensa: Replace type_register() with type_register_static() ui: Replace type_register() with type_register_static() script/codeconverter/qom_type_info: Deprecate MakeTypeRegisterStatic and MakeTypeRegisterNotStatic qom/object: Remove type_register() meson.build | 57 +- include/hw/clock.h | 8 - include/hw/i386/pc.h | 4 +- include/qemu/main-loop.h | 15 + include/qom/object.h | 14 - target/i386/kvm/kvm_i386.h | 11 +- hw/arm/armsse.c | 2 +- hw/arm/smmuv3.c | 4 +- hw/block/m25p80.c | 2 +- hw/core/clock.c | 22 +- hw/core/qdev-clock.c | 86 +-- hw/net/e1000.c | 2 +- hw/net/eepro100.c | 2 +- hw/ppc/spapr.c | 2 +- hw/rtc/m48t59-isa.c | 2 +- hw/rtc/m48t59.c | 2 +- hw/scsi/megasas.c | 2 +- hw/scsi/mptsas.c | 2 +- hw/sensor/tmp421.c | 2 +- hw/usb/hcd-ehci-pci.c | 2 +- hw/usb/hcd-uhci.c | 2 +- hw/virtio/virtio-pci.c | 8 +- qom/object.c | 7 +- stubs/iothread-lock.c | 15 + system/cpus.c | 15 + target/arm/cpu.c | 2 +- target/arm/cpu64.c | 2 +- target/i386/cpu.c | 2 +- target/mips/cpu.c | 2 +- target/ppc/kvm.c | 2 +- target/sparc/cpu.c | 2 +- target/xtensa/helper.c | 2 +- ui/console-vc.c | 2 +- ui/dbus.c | 2 +- ui/gtk.c | 2 +- ui/spice-app.c | 2 +- .gitlab-ci.d/buildtest.yml | 4 +- .gitlab-ci.d/static_checks.yml | 24 + rust/Cargo.toml | 82 ++ rust/hw/char/pl011/.gitignore | 2 - rust/hw/char/pl011/Cargo.toml | 3 + rust/hw/char/pl011/src/device.rs | 124 ++-- rust/hw/char/pl011/src/device_class.rs | 34 - rust/hw/char/pl011/src/lib.rs | 19 +- rust/hw/char/pl011/src/memory_ops.rs | 4 +- rust/meson.build | 22 + rust/qemu-api-macros/Cargo.toml | 3 + rust/qemu-api/.gitignore | 2 +- rust/qemu-api/Cargo.toml | 8 +- rust/qemu-api/README.md | 10 +- rust/qemu-api/build.rs | 39 +- rust/qemu-api/meson.build | 14 +- rust/qemu-api/src/bindings.rs | 29 + rust/qemu-api/src/bitops.rs | 119 +++ rust/qemu-api/src/cell.rs | 822 +++++++++++++++++++++ rust/qemu-api/src/definitions.rs | 149 +++- rust/qemu-api/src/device_class.rs | 126 +++- rust/qemu-api/src/irq.rs | 91 +++ rust/qemu-api/src/lib.rs | 29 +- rust/qemu-api/src/prelude.rs | 10 + rust/qemu-api/src/sysbus.rs | 33 + rust/qemu-api/src/zeroable.rs | 6 +- rust/qemu-api/tests/tests.rs | 43 +- .../codeconverter/codeconverter/qom_type_info.py | 20 - scripts/rust/rustc_args.py | 181 ++++- .../docker/dockerfiles/fedora-rust-nightly.docker | 4 + tests/lcitool/refresh | 4 + 67 files changed, 1927 insertions(+), 445 deletions(-) delete mode 100644 rust/hw/char/pl011/.gitignore create mode 100644 rust/qemu-api/src/bindings.rs create mode 100644 rust/qemu-api/src/bitops.rs create mode 100644 rust/qemu-api/src/cell.rs create mode 100644 rust/qemu-api/src/irq.rs create mode 100644 rust/qemu-api/src/prelude.rs create mode 100644 rust/qemu-api/src/sysbus.rs -- 2.47.1