|
@@ -99,7 +99,7 @@ impl From<BusState> for DeviceState {
|
|
|
/// 总线子系统的trait,所有总线都应实现该trait
|
|
|
///
|
|
|
/// 请注意,这个trait是用于实现总线子系统的,而不是总线驱动/总线设备。
|
|
|
-/// https://opengrok.ringotek.cn/xref/linux-6.1.9/include/linux/device/bus.h#84
|
|
|
+/// https://code.dragonos.org.cn/xref/linux-6.1.9/include/linux/device/bus.h#84
|
|
|
pub trait Bus: Debug + Send + Sync {
|
|
|
fn name(&self) -> String;
|
|
|
/// Used for subsystems to enumerate devices like ("foo%u", dev->id).
|
|
@@ -256,7 +256,7 @@ impl BusManager {
|
|
|
/// - 在bus和设备文件夹下,创建软链接
|
|
|
/// - 把设备添加到它的总线的设备列表中
|
|
|
///
|
|
|
- /// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_add_device#441
|
|
|
+ /// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_add_device#441
|
|
|
///
|
|
|
/// ## 参数
|
|
|
///
|
|
@@ -290,7 +290,7 @@ impl BusManager {
|
|
|
|
|
|
/// 在总线上添加一个驱动
|
|
|
///
|
|
|
- /// 参考 https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_add_driver#590
|
|
|
+ /// 参考 https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_add_driver#590
|
|
|
pub fn add_driver(&self, driver: &Arc<dyn Driver>) -> Result<(), SystemError> {
|
|
|
let bus = driver
|
|
|
.bus()
|
|
@@ -350,7 +350,7 @@ impl BusManager {
|
|
|
/// infrastructure, then register the children subsystems it has:
|
|
|
/// the devices and drivers that belong to the subsystem.
|
|
|
///
|
|
|
- /// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_register#783
|
|
|
+ /// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_register#783
|
|
|
///
|
|
|
/// todo: 增加错误处理逻辑
|
|
|
pub fn register(&self, bus: Arc<dyn Bus>) -> Result<(), SystemError> {
|
|
@@ -468,7 +468,7 @@ impl BusManager {
|
|
|
///
|
|
|
/// - `driver` - 驱动实例
|
|
|
///
|
|
|
- /// 参考 https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_remove_driver#666
|
|
|
+ /// 参考 https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_remove_driver#666
|
|
|
pub fn remove_driver(&self, _driver: &Arc<dyn Driver>) {
|
|
|
todo!("BusManager::remove_driver")
|
|
|
}
|
|
@@ -487,7 +487,7 @@ impl BusManager {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#684
|
|
|
+/// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#684
|
|
|
fn rescan_devices_helper(dev: &Arc<dyn Device>) -> Result<(), SystemError> {
|
|
|
if dev.driver().is_none() {
|
|
|
let need_parent_lock = dev
|
|
@@ -562,7 +562,7 @@ pub fn buses_init() -> Result<(), SystemError> {
|
|
|
/// - 在bus和设备文件夹下,创建软链接
|
|
|
/// - 把设备添加到它的总线的设备列表中
|
|
|
///
|
|
|
-/// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_add_device#441
|
|
|
+/// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_add_device#441
|
|
|
///
|
|
|
/// ## 参数
|
|
|
///
|
|
@@ -579,7 +579,7 @@ pub fn bus_add_device(dev: &Arc<dyn Device>) -> Result<(), SystemError> {
|
|
|
///
|
|
|
/// - `dev` - 要被添加的设备
|
|
|
///
|
|
|
-/// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_probe_device#478
|
|
|
+/// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=bus_probe_device#478
|
|
|
pub fn bus_probe_device(dev: &Arc<dyn Device>) {
|
|
|
kinfo!("bus_probe_device: dev: {:?}", dev.name());
|
|
|
bus_manager().probe_device(dev);
|
|
@@ -601,7 +601,7 @@ impl Attribute for BusAttrDriversProbe {
|
|
|
return SysFSOpsSupport::STORE;
|
|
|
}
|
|
|
|
|
|
- /// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#241
|
|
|
+ /// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#241
|
|
|
fn store(&self, kobj: Arc<dyn KObject>, buf: &[u8]) -> Result<usize, SystemError> {
|
|
|
let kset: Arc<KSet> = kobj.arc_any().downcast().map_err(|_| SystemError::EINVAL)?;
|
|
|
let bus = bus_manager()
|
|
@@ -639,7 +639,7 @@ impl Attribute for BusAttrDriversAutoprobe {
|
|
|
return SysFSOpsSupport::STORE | SysFSOpsSupport::SHOW;
|
|
|
}
|
|
|
|
|
|
- /// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#231
|
|
|
+ /// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#231
|
|
|
fn store(&self, kobj: Arc<dyn KObject>, buf: &[u8]) -> Result<usize, SystemError> {
|
|
|
if buf.len() == 0 {
|
|
|
return Ok(0);
|
|
@@ -659,7 +659,7 @@ impl Attribute for BusAttrDriversAutoprobe {
|
|
|
return Ok(buf.len());
|
|
|
}
|
|
|
|
|
|
- /// 参考: https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#226
|
|
|
+ /// 参考: https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?r=&mo=5649&fi=241#226
|
|
|
fn show(&self, kobj: Arc<dyn KObject>, buf: &mut [u8]) -> Result<usize, SystemError> {
|
|
|
let kset: Arc<KSet> = kobj.arc_any().downcast().map_err(|_| SystemError::EINVAL)?;
|
|
|
let bus = bus_manager()
|
|
@@ -841,7 +841,7 @@ impl SubSystemManager {
|
|
|
/// - `fake_root_dev` - 该子系统的伪根设备
|
|
|
/// - `parent_of_root` - 该子系统的伪根设备的父级节点
|
|
|
///
|
|
|
- /// 参考 https://opengrok.ringotek.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=subsys_system_register#1078
|
|
|
+ /// 参考 https://code.dragonos.org.cn/xref/linux-6.1.9/drivers/base/bus.c?fi=subsys_system_register#1078
|
|
|
pub fn subsys_register(
|
|
|
&self,
|
|
|
subsys: &Arc<dyn Bus>,
|