[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 03/15] rust: qom: add ObjectImpl::CLASS_INIT
From: |
Zhao Liu |
Subject: |
Re: [PATCH 03/15] rust: qom: add ObjectImpl::CLASS_INIT |
Date: |
Mon, 24 Feb 2025 22:56:41 +0800 |
On Fri, Feb 21, 2025 at 06:03:30PM +0100, Paolo Bonzini wrote:
> Date: Fri, 21 Feb 2025 18:03:30 +0100
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH 03/15] rust: qom: add ObjectImpl::CLASS_INIT
> X-Mailer: git-send-email 2.48.1
>
> As shown in the PL011 device, the orphan rules required a manual
> implementation of ClassInitImpl for anything not in the qemu_api crate;
> this gets in the way of moving system emulation-specific code (including
> DeviceClass, which as a blanket ClassInitImpl<DeviceClass> implementation)
> into its own crate.
>
> Make ClassInitImpl optional, at the cost of having to specify the CLASS_INIT
> member by hand in every implementation of ObjectImpl. The next commits will
> get rid of it, replacing all the "impl<T> ClassInitImpl<Class> for T" blocks
> with a generic class_init<T> method on Class.
>
> Right now the definition is always the same, but do not provide a default
> as that will not be true once ClassInitImpl goes away.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> rust/hw/char/pl011/src/device.rs | 3 +++
> rust/hw/timer/hpet/src/hpet.rs | 3 ++-
> rust/qemu-api/src/qom.rs | 14 +++++++++++---
> rust/qemu-api/tests/tests.rs | 3 +++
> 4 files changed, 19 insertions(+), 4 deletions(-)>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
- [PATCH 00/15] rust: prepare for splitting crates, Paolo Bonzini, 2025/02/21
- [PATCH 01/15] rust: add IsA bounds to QOM implementation traits, Paolo Bonzini, 2025/02/21
- [PATCH 03/15] rust: qom: add ObjectImpl::CLASS_INIT, Paolo Bonzini, 2025/02/21
- Re: [PATCH 03/15] rust: qom: add ObjectImpl::CLASS_INIT,
Zhao Liu <=
- [PATCH 02/15] rust: add SysBusDeviceImpl, Paolo Bonzini, 2025/02/21
- [PATCH 04/15] rust: pl011, qemu_api tests: do not use ClassInitImpl, Paolo Bonzini, 2025/02/21
- [PATCH 05/15] rust: qom: get rid of ClassInitImpl, Paolo Bonzini, 2025/02/21
- [PATCH 08/15] rust: timer: wrap QEMUTimer with Opaque<>, Paolo Bonzini, 2025/02/21
- [PATCH 07/15] rust: qemu_api_macros: add Wrapper derive macro, Paolo Bonzini, 2025/02/21