/DragonOS/kernel/src/driver/base/device/ |
H A D | bus.rs | 266 let bus = dev.bus().and_then(|bus| bus.upgrade()); in add_device() localVariable 267 if let Some(bus) = bus { in add_device() 268 device_manager().add_groups(dev, bus.dev_groups())?; in add_device() 271 let bus_devices_kset = bus in add_device() 284 &bus.subsystem().subsys().as_kobject(), in add_device() 287 bus.subsystem().add_device_to_vec(dev)?; in add_device() 296 let bus = driver in add_driver() localVariable 297 .bus() in add_driver() 298 .and_then(|bus| bus.upgrade()) in add_driver() 300 debug!("bus '{}' add driver '{}'", bus.name(), driver.name()); in add_driver() [all …]
|
H A D | dd.rs | 20 bus::BusNotifyEvent, 91 let bus = dev in do_device_attach() localVariable 92 .bus() in do_device_attach() 93 .and_then(|bus| bus.upgrade()) in do_device_attach() 97 for driver in bus.subsystem().drivers().iter() { in do_device_attach() 152 if let Some(bus) = driver.bus().and_then(|bus| bus.upgrade()) { in do_device_attach_driver() 153 let r = bus.match_device(&data.dev, driver); in do_device_attach_driver() 211 } else if let Some(bus) = dev.bus().and_then(|bus| bus.upgrade()) { in device_bind_driver() 212 bus.subsystem().bus_notifier().call_chain( in device_bind_driver() 289 let bus = driver in driver_attach() localVariable [all …]
|
H A D | driver.rs | 2 bus::{bus_manager, Bus}, 7 device::{bus::BusNotifyEvent, dd::DeviceAttrCoredump, device_manager}, 97 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 101 fn set_bus(&self, bus: Option<Weak<dyn Bus>>); in set_bus() 120 pub bus: Option<Weak<dyn Bus>>, field 196 let bus = driver.bus().and_then(|bus| bus.upgrade()).ok_or_else(|| { in register() localVariable 205 let other = bus.find_driver_by_name(&drv_name); in register() 235 if let Some(bus) = dev.bus().and_then(|bus| bus.upgrade()) { in driver_sysfs_add() 236 bus.subsystem() in driver_sysfs_add()
|
H A D | mod.rs | 34 bus::{bus_add_device, bus_probe_device, Bus}, 48 pub mod bus; module 158 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 167 fn set_bus(&self, bus: Option<Weak<dyn Bus>>); in set_bus() 220 pub bus: Option<Weak<dyn Bus>>, field 231 bus: None, in default() 246 driver_base_macros::get_weak_or_clear!(self.bus) in get_bus_weak_or_clear() 541 if let Some(bus) = device.bus().and_then(|bus| bus.upgrade()) { in add_device() 542 bus.subsystem().bus_notifier().call_chain( in add_device() 543 bus::BusNotifyEvent::AddDevice, in add_device() [all …]
|
/DragonOS/docs/kernel/filesystem/ |
H A D | sysfs.md | 91   对于bus设备而言,需要调用bus_register,将bus注册进系统,并在sysfs中可视化。 94 /// @brief: 总线注册,将总线加入全局总线管理器中,并根据id table在sys/bus和sys/devices下生成文件夹 95 /// @parameter bus: Bus设备实体 97 pub fn bus_register<T: Bus>(bus: Arc<T>) -> Result<(), DeviceError> { 98 BUS_MANAGER.add_bus(bus.get_id_table(), bus.clone()); 99 match sys_bus_register(&bus.get_id_table().to_name()) { 102 return device_register(bus); 109   通过bus_register源码可知,该函数不仅在sysfs/bus下生成总线文件夹,同时内部调用device_register,该函数将总线加入设备管理器中,同时在sys/…
|
/DragonOS/kernel/src/driver/base/ |
H A D | subsys.rs | 21 bus::{Bus, BusNotifyEvent}, 36 bus: SpinLock<Option<Weak<dyn Bus>>>, field 68 bus: Option<Weak<dyn Bus>>, in new() 77 bus: SpinLock::new(bus), in new() 96 pub fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 97 return self.bus.lock().clone(); in bus() 100 pub fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 101 *self.bus.lock() = bus; in set_bus() 206 fn bus(&self) -> Option<Weak<dyn Bus>>; in bus() method 207 fn set_bus(&self, bus: Option<Weak<dyn Bus>>); in set_bus()
|
H A D | cpu.rs | 19 bus::{subsystem_manager, Bus}, 64 let bus = Arc::new(Self { in new() localVariable 67 bus.subsystem() in new() 68 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new() 69 return bus; in new() 150 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 151 self.inner.write().device_common.bus = bus; in set_bus() 154 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 155 self.inner.read().device_common.bus.clone() in bus()
|
/DragonOS/kernel/src/driver/acpi/ |
H A D | bus.rs | 3 bus::{bus_manager, Bus}, 53 let bus = Arc::new(Self { in new() localVariable 56 bus.subsystem() in new() 57 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new() 58 return bus; in new()
|
/DragonOS/kernel/src/driver/input/serio/i8042/ |
H A D | i8042_driver.rs | 10 device::{bus::Bus, driver::Driver, Device, IdTable}, 41 bus: None, in new() 60 bus: Option<Weak<dyn Bus>>, field 125 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 126 self.inner.lock().bus = bus; in set_bus() 129 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 130 self.inner.lock().bus.clone() in bus()
|
H A D | i8042_ports.rs | 11 device::{bus::Bus, driver::Driver, Device, DeviceCommonData, DeviceType, IdTable}, 65 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 66 self.inner().device_common.bus.clone() in bus() 69 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 70 self.inner().device_common.bus = bus; in set_bus()
|
H A D | i8042_device.rs | 10 bus::Bus, driver::Driver, Device, DeviceCommonData, DeviceState, DeviceType, IdTable, 69 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 70 self.inner().device_common.bus.clone() in bus() 73 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 74 self.inner().device_common.bus = bus; in set_bus()
|
/DragonOS/kernel/src/driver/input/serio/ |
H A D | subsys.rs | 13 device::{bus::Bus, driver::Driver, Device}, 35 let bus = Arc::new(Self { private }); in new() localVariable 36 bus.subsystem() in new() 37 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new() 39 return bus; in new()
|
/DragonOS/kernel/src/driver/base/platform/ |
H A D | subsys.rs | 15 device::{bus::Bus, driver::Driver, Device}, 36 let bus = Arc::new(Self { private }); in new() localVariable 37 bus.subsystem() in new() 38 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new() 40 return bus; in new()
|
H A D | platform_device.rs | 11 bus::{Bus, BusState}, 284 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 285 self.inner().device_common.bus.clone() in bus() 288 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 289 self.inner().device_common.bus = bus; in set_bus()
|
/DragonOS/kernel/src/driver/pci/test/ |
H A D | pt_driver.rs | 11 bus::Bus, 106 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 107 self.driver_data.write().bus = bus; in set_bus() 110 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 111 self.driver_data.read().bus.clone() in bus()
|
H A D | pt_device.rs | 13 device::{bus::Bus, driver::Driver, Device, DeviceCommonData, DeviceType, IdTable}, 80 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 81 self.device_data.read().bus.clone() in bus() 114 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 115 self.device_data.write().bus = bus in set_bus()
|
/DragonOS/kernel/src/driver/serial/serial8250/ |
H A D | mod.rs | 18 bus::Bus, device_manager, device_number::DeviceNumber, driver::Driver, Device, 214 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 215 self.inner.read().device_common.bus.clone() in bus() 218 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 219 self.inner.write().device_common.bus = bus; in set_bus() 347 bus: Option<Weak<dyn Bus>>, field 358 bus: None, in new() 457 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 458 self.inner.read().bus.clone() in bus() 461 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() [all …]
|
/DragonOS/kernel/src/driver/pci/ |
H A D | device.rs | 10 bus::Bus, device_manager, driver::Driver, Device, DeviceCommonData, DeviceType, IdTable, 193 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 194 self.inner().device_common.bus.clone() in bus() 197 fn set_bus(&self, bus: Option<alloc::sync::Weak<dyn Bus>>) { in set_bus() 198 self.inner().device_common.bus = bus in set_bus()
|
H A D | raw_device.rs | 11 device::{bus::Bus, driver::Driver, Device, DeviceCommonData, DeviceType, IdTable}, 90 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 91 self.inner.read().device_common.bus.clone() in bus() 124 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 125 self.inner.write().device_common.bus = bus; in set_bus()
|
H A D | subsys.rs | 12 bus::{bus_register, Bus}, 38 pub(super) fn set_pci_bus(bus: Arc<PciBus>) { in set_pci_bus() 40 PCI_BUS = Some(bus); in set_pci_bus() 68 let bus = Arc::new(Self { private }); in new() localVariable 69 bus in new()
|
/DragonOS/kernel/src/arch/x86_64/pci/ |
H A D | pci.rs | 23 fn read_config_early(bus: u8, slot: u8, func: u8, offset: u8) -> u8 { in read_config_early() 28 | ((bus as u32) << 16) in read_config_early() 42 let address = ((bus_device_function.bus as u32) << 16) in read_config() 56 let address = ((bus_device_function.bus as u32) << 16) in write_config()
|
/DragonOS/kernel/src/driver/input/ps2_mouse/ |
H A D | ps_mouse_driver.rs | 14 device::{bus::Bus, driver::Driver, Device, DeviceId, IdTable}, 91 bus: None, in new() 122 bus: Option<Weak<dyn Bus>>, field 150 fn set_bus(&self, bus: Option<alloc::sync::Weak<dyn Bus>>) { in set_bus() 151 self.inner.lock().bus = bus; in set_bus() 154 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 155 self.inner.lock().bus.clone() in bus()
|
/DragonOS/kernel/src/driver/virtio/ |
H A D | sysfs.rs | 15 bus::{bus_manager, Bus}, 53 let bus = Arc::new(Self { private }); in new() localVariable 54 bus.subsystem() in new() 55 .set_bus(Some(Arc::downgrade(&(bus.clone() as Arc<dyn Bus>)))); in new() 57 return bus; in new() 153 let bus = VirtIOBus::new(); in virtio_init() localVariable 155 VIRTIO_BUS = Some(bus.clone()); in virtio_init() 158 .register(bus) in virtio_init()
|
H A D | virtio.rs | 4 use crate::driver::base::device::bus::Bus; 46 let bus = pci_bus() as Arc<dyn Bus>; in virtio_probe_pci() localVariable 48 let pci_raw_device = bus.find_device_by_name(name.as_str()); in virtio_probe_pci()
|
/DragonOS/kernel/src/driver/rtc/ |
H A D | rtc_cmos.rs | 18 bus::Bus, 140 fn set_bus(&self, bus: Option<Weak<dyn Bus>>) { in set_bus() 141 self.inner().driver_common.bus = bus; in set_bus() 144 fn bus(&self) -> Option<Weak<dyn Bus>> { in bus() method 145 self.inner().driver_common.bus.clone() in bus()
|