Home
last modified time | relevance | path

Searched refs:dyn (Results 1 – 25 of 198) sorted by relevance

12345678

/DragonOS/kernel/crates/intertrait/src/
H A Dlib.rs85 pub type BoxedCaster = Box<dyn Any + Send + Sync>;
166 fn cast_arc_panic<T: ?Sized + 'static>(_: Arc<dyn Any + Sync + Send>) -> Arc<T> { in cast_arc_panic()
180 pub cast_ref: fn(from: &dyn Any) -> &T,
184 pub cast_mut: fn(from: &mut dyn Any) -> &mut T,
188 pub cast_box: fn(from: Box<dyn Any>) -> Box<T>,
192 pub cast_rc: fn(from: Rc<dyn Any>) -> Rc<T>,
196 pub cast_arc: fn(from: Arc<dyn Any + Sync + Send + 'static>) -> Arc<T>,
201 cast_ref: fn(from: &dyn Any) -> &T, in new()
202 cast_mut: fn(from: &mut dyn Any) -> &mut T, in new()
203 cast_box: fn(from: Box<dyn Any>) -> Box<T>, in new()
[all …]
/DragonOS/kernel/src/driver/base/device/
H A Ddriver.rs57 fn coredump(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in coredump()
66 fn devices(&self) -> Vec<Arc<dyn Device>>; in devices()
69 fn add_device(&self, device: Arc<dyn Device>); in add_device()
72 fn delete_device(&self, device: &Arc<dyn Device>); in delete_device()
83 fn __find_device_by_name_fast(&self, _name: &str) -> Option<Arc<dyn Device>> { in __find_device_by_name_fast()
97 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus()
101 fn set_bus(&self, bus: Option<Weak<dyn Bus>>); in set_bus()
103 fn groups(&self) -> &'static [&'static dyn AttributeGroup] { in groups()
107 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
119 pub devices: Vec<Arc<dyn Device>>,
[all …]
H A Dmod.rs158 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus()
167 fn set_bus(&self, bus: Option<Weak<dyn Bus>>); in set_bus()
170 fn class(&self) -> Option<Arc<dyn Class>> { in class()
177 fn set_class(&self, class: Option<Weak<dyn Class>>); in set_class()
180 fn driver(&self) -> Option<Arc<dyn Driver>>; in driver()
182 fn set_driver(&self, driver: Option<Weak<dyn Driver>>); in set_driver()
201 fn attribute_groups(&self) -> Option<&'static [&'static dyn AttributeGroup]> { in attribute_groups()
205 fn dev_parent(&self) -> Option<Weak<dyn Device>>; in dev_parent()
207 fn set_dev_parent(&self, parent: Option<Weak<dyn Device>>); in set_dev_parent()
210 impl dyn Device { impl
[all …]
H A Dbus.rs108 fn root_device(&self) -> Option<Weak<dyn Device>> { in root_device()
112 fn set_root_device(&self, _dev: Option<Weak<dyn Device>>) {} in set_root_device()
115 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
120 fn bus_groups(&self) -> &'static [&'static dyn AttributeGroup] { in bus_groups()
125 fn drv_groups(&self) -> &'static [&'static dyn AttributeGroup] { in drv_groups()
139 fn probe(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in probe()
142 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError>; in remove()
143 fn sync_state(&self, _device: &Arc<dyn Device>) {} in sync_state()
144 fn shutdown(&self, _device: &Arc<dyn Device>); in shutdown()
145 fn suspend(&self, _device: &Arc<dyn Device>) { in suspend()
[all …]
/DragonOS/kernel/src/driver/input/serio/
H A Dserio_driver.rs17 fn write_wakeup(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in write_wakeup()
32 device: &Arc<dyn SerioDevice>, in interrupt()
37 fn connect(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in connect()
39 fn reconnect(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in reconnect()
41 fn fast_reconnect(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in fast_reconnect()
43 fn disconnect(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in disconnect()
45 fn cleanup(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in cleanup()
68 pub fn register(&self, driver: Arc<dyn SerioDriver>) -> Result<(), SystemError> { in register()
69 driver.set_bus(Some(Arc::downgrade(&(serio_bus() as Arc<dyn Bus>)))); in register()
70 return driver_manager().register(driver as Arc<dyn Driver>); in register()
[all …]
H A Dserio_device.rs24 fn write(&self, device: &Arc<dyn SerioDevice>, data: u8) -> Result<(), SystemError>; in write()
26 fn open(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in open()
28 fn close(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in close()
30 fn start(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in start()
32 fn stop(&self, device: &Arc<dyn SerioDevice>) -> Result<(), SystemError>; in stop()
51 pub fn register_port(&self, device: Arc<dyn SerioDevice>) -> Result<(), SystemError> { in register_port()
65 pub fn init_port(&self, device: Arc<dyn SerioDevice>) -> Result<(), SystemError> { in init_port()
66 device.set_bus(Some(Arc::downgrade(&(serio_bus() as Arc<dyn Bus>)))); in init_port()
67 device_manager().add_device(device.clone() as Arc<dyn Device>)?; in init_port()
H A Dsubsys.rs37 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new()
52 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
60 fn probe(&self, device: &Arc<dyn Device>) -> Result<(), SystemError> { in probe()
62 let pdrv = drv.cast::<dyn SerioDriver>().map_err(|_| { in probe()
70 let pdev = device.clone().cast::<dyn SerioDevice>().map_err(|_| { in probe()
81 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in remove()
85 fn sync_state(&self, _device: &Arc<dyn Device>) { in sync_state()
89 fn shutdown(&self, _device: &Arc<dyn Device>) { in shutdown()
93 fn resume(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in resume()
99 device: &Arc<dyn Device>, in match_device()
[all …]
/DragonOS/kernel/src/driver/base/
H A Dclass.rs49 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
54 fn class_groups(&self) -> &'static [&'static dyn AttributeGroup] { in class_groups()
61 fn dev_kobj(&self) -> Option<Arc<dyn KObject>>; in dev_kobj()
63 fn set_dev_kobj(&self, kobj: Arc<dyn KObject>); in set_dev_kobj()
72 impl dyn Class { impl
82 matcher: &dyn DeviceMatcher<T>, in find_device()
84 ) -> Option<Arc<dyn Device>> { in find_device()
101 pub fn find_device_by_name(&self, name: &str) -> Option<Arc<dyn Device>> { in find_device_by_name()
121 pub fn class_register(&self, class: &Arc<dyn Class>) -> Result<(), SystemError> { in class_register()
127 class.set_dev_kobj(sys_dev_char_kset() as Arc<dyn KObject>); in class_register()
[all …]
H A Dkobject.rs27 fn as_any_ref(&self) -> &dyn core::any::Any; in as_any_ref()
35 fn parent(&self) -> Option<Weak<dyn KObject>>; in parent()
38 fn set_parent(&self, parent: Option<Weak<dyn KObject>>); in set_parent()
46 fn kobj_type(&self) -> Option<&'static dyn KObjType>; in kobj_type()
48 fn set_kobj_type(&self, ktype: Option<&'static dyn KObjType>); in set_kobj_type()
61 impl dyn KObject { impl
71 impl DowncastArc for dyn KObject {
72 fn as_any_arc(self: Arc<Self>) -> Arc<dyn Any> { in as_any_arc()
81 pub parent: Option<Weak<dyn KObject>>,
83 pub kobj_type: Option<&'static dyn KObjType>,
[all …]
H A Dsubsys.rs36 bus: SpinLock<Option<Weak<dyn Bus>>>,
38 class: SpinLock<Option<Weak<dyn Class>>>,
41 devices: RwLock<Vec<Arc<dyn Device>>>,
43 drivers: RwLock<Vec<Arc<dyn Driver>>>,
44 interfaces: &'static [&'static dyn SubSysInterface],
45 bus_notifier: AtomicNotifierChain<BusNotifyEvent, Arc<dyn Device>>,
68 bus: Option<Weak<dyn Bus>>, in new()
69 class: Option<Weak<dyn Class>>, in new()
70 interfaces: &'static [&'static dyn SubSysInterface], in new()
96 pub fn bus(&self) -> Option<Weak<dyn Bus>> { in bus()
[all …]
H A Dcpu.rs47 &(cpu_subsys as Arc<dyn Bus>), in init()
48 &(root_device.clone() as Arc<dyn Device>), in init()
73 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new()
87 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in remove()
91 fn shutdown(&self, _device: &Arc<dyn Device>) { in shutdown()
95 fn resume(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in resume()
101 device: &Arc<dyn Device>, in match_device()
102 driver: &Arc<dyn Driver>, in match_device()
155 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus()
159 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus()
[all …]
/DragonOS/kernel/src/driver/pci/
H A Dattr.rs25 fn attrs(&self) -> &[&'static dyn Attribute] { in attrs()
31 _kobj: Arc<dyn KObject>, in is_visible()
32 attr: &'static dyn Attribute, in is_visible()
50 fn show(&self, _kobj: Arc<dyn KObject>, _buf: &mut [u8]) -> Result<usize, SystemError> { in show()
52 .cast::<dyn PciDevice>() in show()
53 .map_err(|e: Arc<dyn KObject>| { in show()
60 fn store(&self, _kobj: Arc<dyn KObject>, _buf: &[u8]) -> Result<usize, SystemError> { in store()
81 fn show(&self, _kobj: Arc<dyn KObject>, _buf: &mut [u8]) -> Result<usize, SystemError> { in show()
83 .cast::<dyn PciDevice>() in show()
84 .map_err(|e: Arc<dyn KObject>| { in show()
[all …]
H A Ddriver.rs27 fn probe(&self, device: &Arc<dyn PciDevice>, id: &PciDeviceID) -> Result<(), SystemError>; in probe()
28 fn remove(&self, device: &Arc<dyn PciDevice>) -> Result<(), SystemError>; in remove()
29 fn shutdown(&self, device: &Arc<dyn PciDevice>) -> Result<(), SystemError>; in shutdown()
30 fn suspend(&self, device: &Arc<dyn PciDevice>) -> Result<(), SystemError>; in suspend()
31 fn resume(&self, device: &Arc<dyn PciDevice>) -> Result<(), SystemError>; in resume()
58 fn match_dev(&self, dev: &Arc<dyn PciDevice>) -> Option<Arc<PciDeviceID>> { in match_dev()
75 pub fn register(&self, driver: Arc<dyn PciDriver>) -> Result<(), SystemError> { in register()
76 driver.set_bus(Some(Arc::downgrade(&(pci_bus() as Arc<dyn Bus>)))); in register()
77 return driver_manager().register(driver as Arc<dyn Driver>); in register()
81 pub fn unregister(&self, driver: &Arc<dyn PciDriver>) { in unregister()
[all …]
H A Dsubsys.rs82 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
90 fn probe(&self, device: &Arc<dyn Device>) -> Result<(), SystemError> { in probe()
92 let pci_drv = drv.cast::<dyn PciDriver>().map_err(|_| { in probe()
99 let pci_dev = device.clone().cast::<dyn PciDevice>().map_err(|_| { in probe()
111 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in remove()
115 fn sync_state(&self, _device: &Arc<dyn Device>) { in sync_state()
119 fn shutdown(&self, _device: &Arc<dyn Device>) { in shutdown()
123 fn resume(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in resume()
129 device: &Arc<dyn Device>, in match_device()
130 driver: &Arc<dyn Driver>, in match_device()
[all …]
H A Ddevice.rs45 pub fn device_add(&self, pci_dev: Arc<dyn PciDevice>) -> Result<(), SystemError> { in device_add()
48 pci_dev.set_dev_parent(Some(Arc::downgrade(&(pci_bus_device() as Arc<dyn Device>)))); in device_add()
51 pci_dev.set_bus(Some(Arc::downgrade(&(pci_bus() as Arc<dyn Bus>)))); in device_add()
53 device_manager().device_default_initialize(&(pci_dev.clone() as Arc<dyn Device>)); in device_add()
55 let r = device_manager().add_device(pci_dev.clone() as Arc<dyn Device>); in device_add()
100 pub fn new(parent: Option<Weak<dyn KObject>>) -> Arc<Self> { in new()
125 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref()
129 fn parent(&self) -> Option<alloc::sync::Weak<dyn KObject>> { in parent()
141 fn kobj_type(&self) -> Option<&'static dyn KObjType> { in kobj_type()
145 fn set_kobj_type(&self, ktype: Option<&'static dyn KObjType>) { in set_kobj_type()
[all …]
/DragonOS/kernel/src/driver/base/platform/
H A Dplatform_driver.rs25 fn probe(&self, device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError>; in probe()
26 fn remove(&self, device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError>; in remove()
27 fn shutdown(&self, device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError>; in shutdown()
28 fn suspend(&self, device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError>; in suspend()
29 fn resume(&self, device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError>; in resume()
44 pub fn register(&self, driver: Arc<dyn PlatformDriver>) -> Result<(), SystemError> { in register()
45 driver.set_bus(Some(Arc::downgrade(&(platform_bus() as Arc<dyn Bus>)))); in register()
46 return driver_manager().register(driver as Arc<dyn Driver>); in register()
51 pub fn unregister(&self, driver: &Arc<dyn PlatformDriver>) { in unregister()
52 driver_manager().unregister(&(driver.clone() as Arc<dyn Driver>)); in unregister()
H A Dsubsys.rs38 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new()
53 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
61 fn probe(&self, device: &Arc<dyn Device>) -> Result<(), SystemError> { in probe()
63 let pdrv = drv.cast::<dyn PlatformDriver>().map_err(|_|{ in probe()
68 let pdev = device.clone().cast::<dyn PlatformDevice>().map_err(|_| { in probe()
79 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in remove()
83 fn sync_state(&self, _device: &Arc<dyn Device>) { in sync_state()
87 fn shutdown(&self, _device: &Arc<dyn Device>) { in shutdown()
91 fn resume(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in resume()
122 device: &Arc<dyn Device>, in match_device()
[all …]
/DragonOS/kernel/src/driver/virtio/
H A Dsysfs.rs56 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new()
71 fn dev_groups(&self) -> &'static [&'static dyn AttributeGroup] { in dev_groups()
80 fn probe(&self, device: &Arc<dyn Device>) -> Result<(), SystemError> { in probe()
82 let virtio_drv = drv.cast::<dyn VirtIODriver>().map_err(|_| { in probe()
90 let virtio_dev = device.clone().cast::<dyn VirtIODevice>().map_err(|_| { in probe()
101 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in remove()
105 fn sync_state(&self, _device: &Arc<dyn Device>) { in sync_state()
109 fn shutdown(&self, _device: &Arc<dyn Device>) { in shutdown()
113 fn resume(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in resume()
120 _device: &Arc<dyn Device>, in match_device()
[all …]
/DragonOS/kernel/crates/kprobe/src/arch/
H A Dmod.rs29 fn as_any(&self) -> &dyn Any; in as_any()
58 func: fn(&dyn ProbeArgs),
62 pub fn new(func: fn(&dyn ProbeArgs)) -> Self { in new()
66 pub fn call(&self, trap_frame: &dyn ProbeArgs) { in call()
78 event_callback: Option<Box<dyn CallBackFunc>>,
84 fn call(&self, trap_frame: &dyn ProbeArgs); in call()
92 pre_handler: fn(&dyn ProbeArgs), in new()
93 post_handler: fn(&dyn ProbeArgs), in new()
109 pub fn with_fault_handler(mut self, func: fn(&dyn ProbeArgs)) -> Self { in with_fault_handler()
119 pub fn with_event_callback(mut self, event_callback: Box<dyn CallBackFunc>) -> Self { in with_event_callback()
[all …]
/DragonOS/kernel/src/driver/net/
H A Dsysfs.rs24 pub fn netdev_register_kobject(dev: Arc<dyn NetDevice>) -> Result<(), SystemError> { in netdev_register_kobject()
26 device_manager().device_default_initialize(&(dev.clone() as Arc<dyn Device>)); in netdev_register_kobject()
30 &(sys_class_net_instance().cloned().unwrap() as Arc<dyn Class>), in netdev_register_kobject()
36 device_manager().add_device(dev.clone() as Arc<dyn Device>)?; in netdev_register_kobject()
50 fn attrs(&self) -> &[&'static dyn Attribute] { in attrs()
77 _kobj: Arc<dyn KObject>, in is_visible()
78 attr: &'static dyn Attribute, in is_visible()
105 fn show(&self, kobj: Arc<dyn KObject>, buf: &mut [u8]) -> Result<usize, SystemError> { in show()
106 let net_device = kobj.cast::<dyn NetDevice>().map_err(|_| { in show()
132 fn show(&self, _kobj: Arc<dyn KObject>, _buf: &mut [u8]) -> Result<usize, SystemError> { in show()
[all …]
/DragonOS/kernel/src/driver/input/serio/i8042/
H A Di8042_ports.rs65 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus()
69 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus()
73 fn set_class(&self, class: Option<Weak<dyn Class>>) { in set_class()
77 fn class(&self) -> Option<Arc<dyn Class>> { in class()
86 fn driver(&self) -> Option<Arc<dyn Driver>> { in driver()
90 fn set_driver(&self, driver: Option<Weak<dyn Driver>>) { in set_driver()
108 fn dev_parent(&self) -> Option<Weak<dyn Device>> { in dev_parent()
112 fn set_dev_parent(&self, parent: Option<Weak<dyn Device>>) { in set_dev_parent()
118 fn as_any_ref(&self) -> &dyn core::any::Any { in as_any_ref()
130 fn parent(&self) -> Option<Weak<dyn KObject>> { in parent()
[all …]
H A Di8042_driver.rs55 ktype: Option<&'static dyn KObjType>,
57 parent: Option<Weak<dyn KObject>>,
59 devices: Vec<Arc<dyn Device>>,
60 bus: Option<Weak<dyn Bus>>,
67 fn probe(&self, device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError> { in probe()
81 fn remove(&self, _device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError> { in remove()
86 fn shutdown(&self, _device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError> { in shutdown()
90 fn suspend(&self, _device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError> { in suspend()
95 fn resume(&self, _device: &Arc<dyn PlatformDevice>) -> Result<(), SystemError> { in resume()
106 fn devices(&self) -> Vec<Arc<dyn Device>> { in devices()
[all …]
/DragonOS/kernel/src/driver/acpi/
H A Dbus.rs23 _driver: &Arc<dyn Driver>, in driver_match_device()
24 _device: &Arc<dyn Device>, in driver_match_device()
37 .register(acpi_bus as Arc<dyn Bus>) in bus_init()
57 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new()
72 fn remove(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in remove()
76 fn shutdown(&self, _device: &Arc<dyn Device>) { in shutdown()
80 fn resume(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in resume()
89 _device: &Arc<dyn Device>, in match_device()
90 _driver: &Arc<dyn Driver>, in match_device()
97 fn probe(&self, _device: &Arc<dyn Device>) -> Result<(), SystemError> { in probe()
/DragonOS/kernel/src/driver/rtc/
H A Dsysfs.rs57 class_ops: Option<&'static dyn RtcClassOps>,
87 pub fn set_class_ops(&self, class_ops: &'static dyn RtcClassOps) { in set_class_ops()
91 pub fn class_ops(&self) -> Option<&'static dyn RtcClassOps> { in class_ops()
115 fn class_ops(&self) -> &'static dyn super::RtcClassOps { in class_ops()
129 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus()
133 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus()
137 fn set_class(&self, class: Option<Weak<dyn Class>>) { in set_class()
141 fn class(&self) -> Option<Arc<dyn Class>> { in class()
148 fn driver(&self) -> Option<Arc<dyn Driver>> { in driver()
155 fn set_driver(&self, driver: Option<Weak<dyn Driver>>) { in set_driver()
[all …]
/DragonOS/kernel/src/driver/video/fbdev/base/
H A Dfbmem.rs69 class_manager().class_register(&(graphics_class.clone() as Arc<dyn Class>))?; in fbmem_init()
93 .set_class(Some(Arc::downgrade(&r) as Weak<dyn Class>)); in new()
104 fn dev_kobj(&self) -> Option<Arc<dyn KObject>> { in dev_kobj()
105 Some(sys_dev_char_kset() as Arc<dyn KObject>) in dev_kobj()
108 fn set_dev_kobj(&self, _kobj: Arc<dyn KObject>) { in set_dev_kobj()
126 registered_fbs: [Option<Arc<dyn FrameBuffer>>; FrameBufferManager::FB_MAX],
144 pub fn register_fb(&self, fb: Arc<dyn FrameBuffer>) -> Result<FbId, SystemError> { in register_fb()
147 let fb_device = FbDevice::new(Arc::downgrade(&fb) as Weak<dyn FrameBuffer>, id); in register_fb()
148 device_manager().device_default_initialize(&(fb_device.clone() as Arc<dyn Device>)); in register_fb()
149 fb_device.set_dev_parent(Some(Arc::downgrade(&(fb.clone() as Arc<dyn Device>)))); in register_fb()
[all …]

12345678