diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2025-02-12 12:23:59 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2025-02-25 16:18:12 +0100 |
commit | 3212da0033530ae896d31d90d5e81a772fc37088 (patch) | |
tree | 07df8b7bb6e44cad8b378633df534007ddd7577c /rust/qemu-api/src | |
parent | ac5699c5da51fa9d39bc964e81645953796f7ad1 (diff) | |
download | qemu-3212da0033530ae896d31d90d5e81a772fc37088.zip qemu-3212da0033530ae896d31d90d5e81a772fc37088.tar.gz qemu-3212da0033530ae896d31d90d5e81a772fc37088.tar.bz2 |
rust: add SysBusDeviceImpl
The only function, right now, is to ensure that anything with a
SysBusDeviceClass class is a SysBusDevice.
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'rust/qemu-api/src')
-rw-r--r-- | rust/qemu-api/src/sysbus.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rust/qemu-api/src/sysbus.rs b/rust/qemu-api/src/sysbus.rs index fa36e12..fee2e3d 100644 --- a/rust/qemu-api/src/sysbus.rs +++ b/rust/qemu-api/src/sysbus.rs @@ -14,7 +14,7 @@ use crate::{ irq::{IRQState, InterruptSource}, memory::MemoryRegion, prelude::*, - qdev::{DeviceClass, DeviceState}, + qdev::{DeviceClass, DeviceImpl, DeviceState}, qom::{ClassInitImpl, Owned}, }; @@ -25,10 +25,12 @@ unsafe impl ObjectType for SysBusDevice { } qom_isa!(SysBusDevice: DeviceState, Object); -// TODO: add SysBusDeviceImpl +// TODO: add virtual methods +pub trait SysBusDeviceImpl: DeviceImpl + IsA<SysBusDevice> {} + impl<T> ClassInitImpl<SysBusDeviceClass> for T where - T: ClassInitImpl<DeviceClass>, + T: SysBusDeviceImpl + ClassInitImpl<DeviceClass>, { fn class_init(sdc: &mut SysBusDeviceClass) { <T as ClassInitImpl<DeviceClass>>::class_init(&mut sdc.parent_class); |