1*06d5e247SLoGin use alloc::{string::String, sync::Arc}; 2*06d5e247SLoGin 3*06d5e247SLoGin use crate::{driver::base::kobject::KObject, syscall::SystemError}; 4*06d5e247SLoGin 5*06d5e247SLoGin use super::SysFS; 6*06d5e247SLoGin 7*06d5e247SLoGin impl SysFS { 8*06d5e247SLoGin /// 在sysfs中创建一个符号链接 9*06d5e247SLoGin /// 10*06d5e247SLoGin /// ## 参数 11*06d5e247SLoGin /// 12*06d5e247SLoGin /// - `kobj`: 要创建符号链接的kobject 13*06d5e247SLoGin /// - `target`: 符号链接的目标(在目标目录下创建) 14*06d5e247SLoGin /// - `name`: 符号链接的名称 15*06d5e247SLoGin /// 16*06d5e247SLoGin /// 参考:https://opengrok.ringotek.cn/xref/linux-6.1.9/fs/sysfs/symlink.c#89 17*06d5e247SLoGin pub fn create_link( 18*06d5e247SLoGin &self, 19*06d5e247SLoGin _kobj: &Arc<dyn KObject>, 20*06d5e247SLoGin _target: &Arc<dyn KObject>, 21*06d5e247SLoGin _name: String, 22*06d5e247SLoGin ) -> Result<(), SystemError> { 23*06d5e247SLoGin todo!("sysfs create link") 24*06d5e247SLoGin } 25*06d5e247SLoGin 26*06d5e247SLoGin /// 在sysfs中删除一个符号链接 27*06d5e247SLoGin /// 28*06d5e247SLoGin /// ## 参数 29*06d5e247SLoGin /// 30*06d5e247SLoGin /// - `kobj`: 要删除符号链接的kobject(符号链接所在目录) 31*06d5e247SLoGin /// - `name`: 符号链接的名称 32*06d5e247SLoGin /// 33*06d5e247SLoGin /// 34*06d5e247SLoGin /// 参考:https://opengrok.ringotek.cn/xref/linux-6.1.9/fs/sysfs/symlink.c#143 35*06d5e247SLoGin pub fn remove_link(&self, _kobj: &Arc<dyn KObject>, _name: String) -> Result<(), SystemError> { 36*06d5e247SLoGin todo!("sysfs remove link") 37*06d5e247SLoGin } 38*06d5e247SLoGin } 39