xref: /DragonOS/kernel/src/filesystem/sysfs/symlink.rs (revision 06d5e247267cb65b84a80f219853ccd0f384b16e)
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