mbox

[PULL,00/49] rust, QOM, kvm changes for 2024-12-11

Message ID 20241211162720.320070-1-pbonzini@redhat.com (mailing list archive)
State New
Headers show

Pull-request

https://gitlab.com/bonzini/qemu.git tags/for-upstream

Message

Paolo Bonzini Dec. 11, 2024, 4:26 p.m. UTC
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