include/hw/core/cpu.h | 2 - include/hw/i386/topology.h | 30 +++- include/qom/object.h | 5 +- target/i386/confidential-guest.h | 2 +- target/i386/cpu.h | 31 +++- hw/core/cpu-common.c | 1 - hw/i386/kvm/clock.c | 5 +- hw/i386/x86-common.c | 22 +-- qom/object.c | 1 - system/cpus.c | 1 - target/i386/cpu-system.c | 11 ++ target/i386/cpu.c | 119 ++++++------- target/i386/hvf/x86_emu.c | 3 +- target/i386/kvm/kvm.c | 197 ++++++++++----------- target/i386/tcg/system/misc_helper.c | 3 +- target/i386/tcg/translate.c | 2 +- target/i386/tcg/emit.c.inc | 59 ++++-- rust/hw/char/pl011/src/device.rs | 79 ++++----- rust/hw/char/pl011/src/lib.rs | 28 +-- rust/qemu-api-macros/src/lib.rs | 150 ++++++++++++---- rust/qemu-api-macros/src/utils.rs | 26 +++ rust/qemu-api/meson.build | 3 +- rust/qemu-api/src/assertions.rs | 90 ++++++++++ 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/qom.rs | 85 +++++++-- rust/qemu-api/src/sysbus.rs | 23 ++- rust/qemu-api/tests/tests.rs | 4 +- scripts/make-release | 31 +++- scripts/rust/rustc_args.py | 2 + subprojects/arbitrary-int-1-rs.wrap | 3 + subprojects/bilge-0.2-rs.wrap | 3 + subprojects/bilge-impl-0.2-rs.wrap | 3 + subprojects/either-1-rs.wrap | 3 + subprojects/itertools-0.11-rs.wrap | 3 + .../packagefiles/arbitrary-int-1-rs/meson.build | 1 + subprojects/packagefiles/bilge-0.2-rs/meson.build | 1 + .../packagefiles/bilge-impl-0.2-rs/meson.build | 1 + subprojects/packagefiles/either-1-rs/meson.build | 1 + .../packagefiles/itertools-0.11-rs/meson.build | 1 + .../packagefiles/proc-macro-error-1-rs/meson.build | 1 + .../proc-macro-error-attr-1-rs/meson.build | 1 + .../packagefiles/proc-macro2-1-rs/meson.build | 1 + subprojects/packagefiles/quote-1-rs/meson.build | 1 + subprojects/packagefiles/syn-2-rs/meson.build | 1 + .../packagefiles/unicode-ident-1-rs/meson.build | 1 + subprojects/proc-macro-error-1-rs.wrap | 3 + subprojects/proc-macro-error-attr-1-rs.wrap | 3 + subprojects/proc-macro2-1-rs.wrap | 3 + subprojects/quote-1-rs.wrap | 3 + subprojects/syn-2-rs.wrap | 3 + subprojects/unicode-ident-1-rs.wrap | 3 + subprojects/unicode-ident-1-rs/meson.build | 20 --- 54 files changed, 716 insertions(+), 369 deletions(-) create mode 100644 rust/qemu-api-macros/src/utils.rs create mode 100644 rust/qemu-api/src/assertions.rs delete mode 100644 subprojects/unicode-ident-1-rs/meson.build