aboutsummaryrefslogtreecommitdiff
path: root/rust/qemu-api/src/device_class.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/qemu-api/src/device_class.rs')
-rw-r--r--rust/qemu-api/src/device_class.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/rust/qemu-api/src/device_class.rs b/rust/qemu-api/src/device_class.rs
index dcec548..a9965d1 100644
--- a/rust/qemu-api/src/device_class.rs
+++ b/rust/qemu-api/src/device_class.rs
@@ -5,7 +5,7 @@
use std::ffi::CStr;
use crate::{
- bindings::{self, DeviceClass, DeviceState, Error, Property, VMStateDescription},
+ bindings::{self, DeviceClass, DeviceState, Error, ObjectClass, Property, VMStateDescription},
definitions::ClassInitImpl,
prelude::*,
};
@@ -68,7 +68,7 @@ unsafe extern "C" fn rust_reset_fn<T: DeviceImpl>(dev: *mut DeviceState) {
impl<T> ClassInitImpl<DeviceClass> for T
where
- T: DeviceImpl,
+ T: ClassInitImpl<ObjectClass> + DeviceImpl,
{
fn class_init(dc: &mut DeviceClass) {
if <T as DeviceImpl>::REALIZE.is_some() {
@@ -88,6 +88,8 @@ where
bindings::device_class_set_props_n(dc, prop.as_ptr(), prop.len());
}
}
+
+ <T as ClassInitImpl<ObjectClass>>::class_init(&mut dc.parent_class);
}
}