mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
rust: qom: convert type_info! macro to an associated const
type_info! is only used in the definition of ObjectImpl::TYPE_INFO, and in fact in all of them. Pull type_info!'s definition into the ObjectImpl trait, thus simplifying the external interface of qemu_api::definitions. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
93ea0896ea
commit
3701fb22df
3 changed files with 24 additions and 33 deletions
|
@ -106,7 +106,6 @@ pub struct PL011State {
|
|||
|
||||
impl ObjectImpl for PL011State {
|
||||
type Class = PL011Class;
|
||||
const TYPE_INFO: qemu_api::bindings::TypeInfo = qemu_api::type_info! { Self };
|
||||
const TYPE_NAME: &'static CStr = crate::TYPE_PL011;
|
||||
const PARENT_TYPE_NAME: Option<&'static CStr> = Some(TYPE_SYS_BUS_DEVICE);
|
||||
const INSTANCE_INIT: Option<unsafe extern "C" fn(obj: *mut Object)> = Some(pl011_init);
|
||||
|
@ -149,7 +148,7 @@ impl PL011State {
|
|||
addr_of_mut!(*self).cast::<Object>(),
|
||||
&PL011_OPS,
|
||||
addr_of_mut!(*self).cast::<c_void>(),
|
||||
Self::TYPE_INFO.name,
|
||||
Self::TYPE_NAME.as_ptr(),
|
||||
0x1000,
|
||||
);
|
||||
sysbus_init_mmio(sbd, addr_of_mut!(self.iomem));
|
||||
|
@ -598,7 +597,7 @@ pub unsafe extern "C" fn pl011_create(
|
|||
chr: *mut Chardev,
|
||||
) -> *mut DeviceState {
|
||||
unsafe {
|
||||
let dev: *mut DeviceState = qdev_new(PL011State::TYPE_INFO.name);
|
||||
let dev: *mut DeviceState = qdev_new(PL011State::TYPE_NAME.as_ptr());
|
||||
let sysbus: *mut SysBusDevice = dev.cast::<SysBusDevice>();
|
||||
|
||||
qdev_prop_set_chr(dev, c_str!("chardev").as_ptr(), chr);
|
||||
|
@ -660,7 +659,6 @@ impl qemu_api::definitions::ClassInitImpl for PL011LuminaryClass {
|
|||
|
||||
impl ObjectImpl for PL011Luminary {
|
||||
type Class = PL011LuminaryClass;
|
||||
const TYPE_INFO: qemu_api::bindings::TypeInfo = qemu_api::type_info! { Self };
|
||||
const TYPE_NAME: &'static CStr = crate::TYPE_PL011_LUMINARY;
|
||||
const PARENT_TYPE_NAME: Option<&'static CStr> = Some(crate::TYPE_PL011);
|
||||
const INSTANCE_INIT: Option<unsafe extern "C" fn(obj: *mut Object)> = Some(pl011_luminary_init);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue