[PULL 00/34] i386, Rust, build system, QOM patches for 2025-02-27

Paolo Bonzini posted 34 patches 1 month ago
docs/devel/rust.rst                              |  19 +-
meson.build                                      |  14 +-
include/hw/boards.h                              |   3 +
target/i386/cpu.h                                |  41 ++-
target/i386/hvf/hvf-i386.h                       |   4 +-
target/i386/hvf/x86.h                            |   8 +-
target/i386/hvf/x86_descr.h                      |   6 +-
target/i386/hvf/x86_emu.h                        |   7 +-
target/i386/hvf/x86_task.h                       |   2 +-
target/i386/hvf/x86hvf.h                         |   3 +
hw/core/machine-smp.c                            |   2 +
hw/i386/pc.c                                     |   4 +
hw/timer/hpet.c                                  |  38 +--
qom/object_interfaces.c                          |  24 +-
stubs/monitor-fd.c                               |   9 -
system/physmem.c                                 |   6 +-
target/i386/cpu.c                                | 200 ++++++++++++-
target/i386/hvf/hvf.c                            | 295 +++++++++++++++++--
target/i386/hvf/x86.c                            |   4 +-
target/i386/hvf/x86_decode.c                     |  20 +-
target/i386/hvf/x86_descr.c                      |   8 +-
target/i386/hvf/x86_emu.c                        | 273 +-----------------
target/i386/hvf/x86_task.c                       |  26 +-
target/riscv/cpu.c                               |  16 --
target/riscv/tcg/tcg-cpu.c                       |   9 +
Kconfig.host                                     |   3 +
hw/display/Kconfig                               |   4 -
hw/display/meson.build                           |   9 +-
meson_options.txt                                |   2 +
qemu-options.hx                                  |  30 +-
rust/Cargo.lock                                  |   7 +
rust/hw/char/pl011/src/device.rs                 |  46 +--
rust/hw/char/pl011/src/device_class.rs           |   6 +-
rust/hw/timer/Kconfig                            |   1 +
rust/hw/timer/hpet/src/hpet.rs                   |   5 +-
rust/qemu-api/Cargo.toml                         |   1 +
rust/qemu-api/meson.build                        |   4 +
rust/qemu-api/src/assertions.rs                  |  28 ++
rust/qemu-api/src/errno.rs                       | 345 +++++++++++++++++++++++
rust/qemu-api/src/irq.rs                         |   3 +-
rust/qemu-api/src/lib.rs                         |   1 +
rust/qemu-api/src/prelude.rs                     |   2 +
rust/qemu-api/src/qdev.rs                        |  40 ++-
rust/qemu-api/src/qom.rs                         | 168 +++++------
rust/qemu-api/src/sysbus.rs                      |  19 +-
rust/qemu-api/tests/tests.rs                     |  35 +--
scripts/archive-source.sh                        |   2 +-
scripts/make-release                             |   2 +-
scripts/meson-buildoptions.sh                    |   3 +
stubs/meson.build                                |   2 +-
subprojects/.gitignore                           |   1 +
subprojects/libc-0.2-rs.wrap                     |   7 +
subprojects/packagefiles/libc-0.2-rs/meson.build |  37 +++
53 files changed, 1275 insertions(+), 579 deletions(-)
delete mode 100644 stubs/monitor-fd.c
create mode 100644 rust/qemu-api/src/errno.rs
create mode 100644 subprojects/libc-0.2-rs.wrap
create mode 100644 subprojects/packagefiles/libc-0.2-rs/meson.build
[PULL 00/34] i386, Rust, build system, QOM patches for 2025-02-27
Posted by Paolo Bonzini 1 month ago
The following changes since commit b69801dd6b1eb4d107f7c2f643adf0a4e3ec9124:

  Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2025-02-22 05:06:39 +0800)

are available in the Git repository at:

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

for you to fetch changes up to a4e749780bd20593c0c386612a51bf4d64a80132:

  target/i386: Mask CMPLegacy bit in CPUID[0x80000001].ECX for Zhaoxin CPUs (2025-02-26 09:56:18 +0100)

----------------------------------------------------------------
* qom: Use command line syntax for default values in help
* i386: support cache topology with machine's configuration
* rust: fix duplicate symbols from monitor-fd.c
* rust: add module to convert between success/-errno and io::Result
* rust: move class_init implementation from trait to method
* pvg: configuration improvements
* kvm guestmemfd: replace assertion with error
* riscv: cleanups
* target/i386/hvf: cleanups to emulation
* target/i386: add Zhaoxin and Yongfeng CPU model

----------------------------------------------------------------
Akihiko Odaki (1):
      qom: Use command line syntax for default values in help

Alireza Sanaee (1):
      i386/cpu: add has_caches flag to check smp_cache configuration

EwanHai (4):
      target/i386: Add support for Zhaoxin CPU vendor identification
      target/i386: Add CPUID leaf 0xC000_0001 EDX definitions
      target/i386: Introduce Zhaoxin Yongfeng CPU model
      target/i386: Mask CMPLegacy bit in CPUID[0x80000001].ECX for Zhaoxin CPUs

Ilya Leoshkevich (1):
      stub: Remove monitor-fd.c

Paolo Bonzini (16):
      hpet: do not overwrite properties on post_load
      rust: subprojects: add libc crate
      rust: add module to convert between success/-errno and io::Result
      rust: tests: do not import bindings::*
      docs: rust: fix typos
      docs: rust: update description of crates
      physmem: replace assertion with error
      pvg: do not enable it on cross-architecture targets
      pvg: add option to configure it out
      rust: add IsA bounds to QOM implementation traits
      rust: add SysBusDeviceImpl
      rust: qom: add ObjectImpl::CLASS_INIT
      rust: pl011, qemu_api tests: do not use ClassInitImpl
      rust: qom: get rid of ClassInitImpl
      target/riscv: remove unused macro DEFINE_CPU
      target/riscv: move 128-bit check to TCG realize

Wei Liu (6):
      target/i386/hvf: fix a typo in a type name
      target/i386/hvf: fix the declaration of hvf_handle_io
      target/i386/hvf: use x86_segment in x86_decode.c
      target/i386/hvf: move and rename {load, store}_regs
      target/i386/hvf: move and rename simulate_{rdmsr, wrmsr}
      target/i386/hvf: drop some dead code

Zhao Liu (5):
      i386: Fix the missing Rust HPET configuration option
      rust: prefer importing std::ptr over core::ptr
      i386/cpu: Support module level cache topology
      i386/cpu: Update cache topology with machine's configuration
      i386/pc: Support cache topology in -machine for PC machine

 docs/devel/rust.rst                              |  19 +-
 meson.build                                      |  14 +-
 include/hw/boards.h                              |   3 +
 target/i386/cpu.h                                |  41 ++-
 target/i386/hvf/hvf-i386.h                       |   4 +-
 target/i386/hvf/x86.h                            |   8 +-
 target/i386/hvf/x86_descr.h                      |   6 +-
 target/i386/hvf/x86_emu.h                        |   7 +-
 target/i386/hvf/x86_task.h                       |   2 +-
 target/i386/hvf/x86hvf.h                         |   3 +
 hw/core/machine-smp.c                            |   2 +
 hw/i386/pc.c                                     |   4 +
 hw/timer/hpet.c                                  |  38 +--
 qom/object_interfaces.c                          |  24 +-
 stubs/monitor-fd.c                               |   9 -
 system/physmem.c                                 |   6 +-
 target/i386/cpu.c                                | 200 ++++++++++++-
 target/i386/hvf/hvf.c                            | 295 +++++++++++++++++--
 target/i386/hvf/x86.c                            |   4 +-
 target/i386/hvf/x86_decode.c                     |  20 +-
 target/i386/hvf/x86_descr.c                      |   8 +-
 target/i386/hvf/x86_emu.c                        | 273 +-----------------
 target/i386/hvf/x86_task.c                       |  26 +-
 target/riscv/cpu.c                               |  16 --
 target/riscv/tcg/tcg-cpu.c                       |   9 +
 Kconfig.host                                     |   3 +
 hw/display/Kconfig                               |   4 -
 hw/display/meson.build                           |   9 +-
 meson_options.txt                                |   2 +
 qemu-options.hx                                  |  30 +-
 rust/Cargo.lock                                  |   7 +
 rust/hw/char/pl011/src/device.rs                 |  46 +--
 rust/hw/char/pl011/src/device_class.rs           |   6 +-
 rust/hw/timer/Kconfig                            |   1 +
 rust/hw/timer/hpet/src/hpet.rs                   |   5 +-
 rust/qemu-api/Cargo.toml                         |   1 +
 rust/qemu-api/meson.build                        |   4 +
 rust/qemu-api/src/assertions.rs                  |  28 ++
 rust/qemu-api/src/errno.rs                       | 345 +++++++++++++++++++++++
 rust/qemu-api/src/irq.rs                         |   3 +-
 rust/qemu-api/src/lib.rs                         |   1 +
 rust/qemu-api/src/prelude.rs                     |   2 +
 rust/qemu-api/src/qdev.rs                        |  40 ++-
 rust/qemu-api/src/qom.rs                         | 168 +++++------
 rust/qemu-api/src/sysbus.rs                      |  19 +-
 rust/qemu-api/tests/tests.rs                     |  35 +--
 scripts/archive-source.sh                        |   2 +-
 scripts/make-release                             |   2 +-
 scripts/meson-buildoptions.sh                    |   3 +
 stubs/meson.build                                |   2 +-
 subprojects/.gitignore                           |   1 +
 subprojects/libc-0.2-rs.wrap                     |   7 +
 subprojects/packagefiles/libc-0.2-rs/meson.build |  37 +++
 53 files changed, 1275 insertions(+), 579 deletions(-)
 delete mode 100644 stubs/monitor-fd.c
 create mode 100644 rust/qemu-api/src/errno.rs
 create mode 100644 subprojects/libc-0.2-rs.wrap
 create mode 100644 subprojects/packagefiles/libc-0.2-rs/meson.build
-- 
2.48.1
Re: [PULL 00/34] i386, Rust, build system, QOM patches for 2025-02-27
Posted by Stefan Hajnoczi 1 month ago
Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/10.0 for any user-visible changes.