/DragonOS/docs/kernel/filesystem/vfs/ |
H A D | design.md | 49 - IndexNode: 表明某个struct是一个索引节点 51 …sp;一般情况下,FileSystem和IndexNode是一对一的关系,也就是,一个文件系统对应一种IndexNode。但是,对于某些特殊的文件系统,比如DevFS,根据不同的设备类型,会有不同… 55   挂载文件系统虽然实现了FileSystem和IndexNode这两个trait,但它并不是一个“文件系统”,而是一种机制,用于将不同的文件系统挂载到同一个文件系统树上.
|
H A D | index.rst | 13 - 提供IndexNode抽象
|
/DragonOS/kernel/src/filesystem/vfs/ |
H A D | mod.rs | 127 pub trait IndexNode: Any + Sync + Send + Debug + CastFromSync { trait 235 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create() argument 255 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 267 fn link(&self, _name: &str, _other: &Arc<dyn IndexNode>) -> Result<(), SystemError> { in link() 300 _target: &Arc<dyn IndexNode>, in move_to() argument 313 fn find(&self, _name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument 426 fn mount_from(&self, _des: Arc<dyn IndexNode>) -> Result<Arc<MountFS>, SystemError> { in mount_from() 497 ) -> Result<Arc<dyn IndexNode>, SystemError> { in mknod() argument 516 fn mkdir(&self, name: &str, mode: ModeType) -> Result<Arc<dyn IndexNode>, SystemError> { in mkdir() argument 562 fn parent(&self) -> Result<Arc<dyn IndexNode>, SystemError> { in parent() argument [all …]
|
H A D | mount.rs | 29 FilePrivateData, FileSystem, FileType, IndexNode, InodeId, Magic, SuperBlock, 50 #[cast_to([sync] IndexNode)] 53 inner_inode: Arc<dyn IndexNode>, 227 impl IndexNode for MountFSInode { 246 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 312 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create() argument 321 fn link(&self, name: &str, other: &Arc<dyn IndexNode>) -> Result<(), SystemError> { in link() 356 target: &Arc<dyn IndexNode>, in move_to() argument 362 fn find(&self, name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument 368 .map(|inode| inode as Arc<dyn IndexNode>) in find() [all …]
|
H A D | core.rs | 26 IndexNode, InodeId, VFS_MAX_FOLLOW_SYMLINK_TIMES, 42 static mut __ROOT_INODE: Option<Arc<dyn IndexNode>> = None; 47 pub fn ROOT_INODE() -> Arc<dyn IndexNode> { in ROOT_INODE() 162 ) -> Result<Arc<dyn IndexNode>, SystemError> { in do_mkdir_at() argument 188 let parent_inode: Arc<dyn IndexNode> = inode_begin in do_remove_dir() 213 let inode: Result<Arc<dyn IndexNode>, SystemError> = in do_unlink_at() 230 let parent_inode: Arc<dyn IndexNode> = inode_begin in do_unlink_at()
|
H A D | open.rs | 10 FileType, IndexNode, MAX_PATHLEN, ROOT_INODE, VFS_MAX_FOLLOW_SYMLINK_TIMES, 88 let inode: Result<Arc<dyn IndexNode>, SystemError> = inode_begin.lookup_follow_symlink( in do_sys_openat2() 97 let inode: Arc<dyn IndexNode> = match inode { in do_sys_openat2() 107 let parent_inode: Arc<dyn IndexNode> = in do_sys_openat2() 110 let inode: Arc<dyn IndexNode> = parent_inode.create( in do_sys_openat2()
|
H A D | file.rs | 12 use super::{Dirent, FileType, IndexNode, InodeId, Metadata, SpecialNodeData}; 128 inode: Option<Weak<dyn IndexNode>>, 148 pub fn new(inode: Option<Weak<dyn IndexNode>>) -> Arc<PageCache> { in new() 156 pub fn inode(&self) -> Option<Weak<dyn IndexNode>> { in inode() argument 179 pub fn set_inode(&mut self, inode: Weak<dyn IndexNode>) { in set_inode() argument 187 inode: Arc<dyn IndexNode>, 206 pub fn new(inode: Arc<dyn IndexNode>, mode: FileMode) -> Result<Self, SystemError> { in new() argument 429 let inode: &Arc<dyn IndexNode> = &self.inode; in readdir() 446 let sub_inode: Arc<dyn IndexNode> = match inode.find(name) { in readdir() 482 pub fn inode(&self) -> Arc<dyn IndexNode> { in inode() argument
|
H A D | utils.rs | 10 use super::{fcntl::AtFlags, FileType, IndexNode, ROOT_INODE}; 44 ) -> Result<(Arc<dyn IndexNode>, String), SystemError> { in user_path_at() argument
|
/DragonOS/kernel/src/filesystem/devpts/ |
H A D | mod.rs | 32 core::generate_inode_id, FilePrivateData, FileSystem, FsInfo, IndexNode, Metadata, 68 fn root_inode(&self) -> Arc<dyn IndexNode> { in root_inode() argument 145 impl IndexNode for LockedDevPtsFSInode { 222 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 258 fn find(&self, name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument 262 Ok(dev.clone() as Arc<dyn IndexNode>) in find()
|
/DragonOS/kernel/src/filesystem/devfs/ |
H A D | mod.rs | 10 FilePrivateData, FileSystem, FileType, FsInfo, IndexNode, Magic, Metadata, SuperBlock, 44 fn root_inode(&self) -> Arc<dyn super::vfs::IndexNode> { in root_inode() argument 249 children: BTreeMap<DName, Arc<dyn IndexNode>>, 319 pub fn add_dev(&self, name: &str, dev: Arc<dyn IndexNode>) -> Result<(), SystemError> { in add_dev() 349 ) -> Result<Arc<dyn IndexNode>, SystemError> { in do_create_with_data() argument 393 impl IndexNode for LockedDevFSInode { 416 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 423 fn find(&self, name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument 559 fn parent(&self) -> Result<Arc<dyn IndexNode>, SystemError> { in parent() argument 573 pub trait DeviceINode: IndexNode { [all …]
|
H A D | null_dev.rs | 5 core::generate_inode_id, FilePrivateData, FileSystem, FileType, IndexNode, Metadata, 70 impl IndexNode for LockedNullInode {
|
H A D | zero_dev.rs | 5 core::generate_inode_id, FilePrivateData, FileSystem, FileType, IndexNode, Metadata, 70 impl IndexNode for LockedZeroInode {
|
/DragonOS/docs/kernel/filesystem/ |
H A D | sysfs.md | 39 sys_info: Option<Arc<dyn IndexNode>>, // sys information 57 sys_info: Option<Arc<dyn IndexNode>>, // sys information 77 sys_info: Option<Arc<dyn IndexNode>>, // 总线inode
|
H A D | overview.md | 80 - 提供IndexNode抽象
|
/DragonOS/kernel/src/filesystem/ramfs/ |
H A D | mod.rs | 26 IndexNode, InodeId, Metadata, SpecialNodeData, 74 fn root_inode(&self) -> Arc<dyn super::vfs::IndexNode> { in root_inode() argument 161 impl IndexNode for LockedRamFSInode { 296 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 345 fn link(&self, name: &str, other: &Arc<dyn IndexNode>) -> Result<(), SystemError> { in link() 423 target: &Arc<dyn IndexNode>, in move_to() argument 455 target.link(new_name.as_ref(), &(inode_to_move as Arc<dyn IndexNode>))?; in move_to() 467 fn find(&self, name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument 558 ) -> Result<Arc<dyn IndexNode>, SystemError> { in mknod() argument 626 fn parent(&self) -> Result<Arc<dyn IndexNode>, SystemError> { in parent() argument [all …]
|
/DragonOS/kernel/src/filesystem/procfs/ |
H A D | mod.rs | 35 FileSystem, FsInfo, IndexNode, InodeId, Magic, Metadata, SuperBlock, 293 fn root_inode(&self) -> Arc<dyn super::vfs::IndexNode> { in root_inode() argument 405 let inode: Arc<dyn IndexNode> = self.root_inode(); in register_pid() 407 let pid_dir: Arc<dyn IndexNode> = inode.create( in register_pid() 414 let binding: Arc<dyn IndexNode> = pid_dir.create( in register_pid() 435 let proc: Arc<dyn IndexNode> = self.root_inode(); in unregister_pid() 437 let pid_dir: Arc<dyn IndexNode> = proc.find(&pid.to_string())?; in unregister_pid() 451 impl IndexNode for LockedProcFSInode { 598 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 651 fn link(&self, name: &str, other: &Arc<dyn IndexNode>) -> Result<(), SystemError> { in link() [all …]
|
/DragonOS/kernel/src/filesystem/kernfs/ |
H A D | mod.rs | 26 FileType, FsInfo, IndexNode, InodeId, Magic, Metadata, SuperBlock, 48 fn root_inode(&self) -> Arc<dyn IndexNode> { in root_inode() argument 153 impl IndexNode for KernFSInode { 195 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create_with_data() argument 200 fn link(&self, _name: &str, _other: &Arc<dyn IndexNode>) -> Result<(), SystemError> { in link() 218 _target: &Arc<dyn IndexNode>, in move_to() argument 225 fn find(&self, name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument
|
/DragonOS/kernel/src/driver/disk/ahci/ |
H A D | ahci_inode.rs | 7 core::generate_inode_id, FilePrivateData, FileSystem, FileType, IndexNode, Metadata, 75 impl IndexNode for LockedAhciInode {
|
/DragonOS/kernel/src/virt/kvm/ |
H A D | kvm_dev.rs | 7 FilePrivateData, FileSystem, FileType, IndexNode, Metadata, 88 impl IndexNode for LockedKvmInode {
|
H A D | vcpu_dev.rs | 7 core::generate_inode_id, file::FileMode, FilePrivateData, FileSystem, FileType, IndexNode, 96 impl IndexNode for LockedVcpuInode {
|
H A D | vm_dev.rs | 7 FilePrivateData, FileSystem, FileType, IndexNode, Metadata, 94 impl IndexNode for LockedVmInode {
|
/DragonOS/kernel/src/driver/keyboard/ |
H A D | ps2_keyboard.rs | 26 FileSystem, FileType, IndexNode, Metadata, 116 impl IndexNode for LockedPS2KeyBoardInode {
|
/DragonOS/kernel/src/filesystem/ |
H A D | eventfd.rs | 3 use crate::filesystem::vfs::{FilePrivateData, FileSystem, FileType, IndexNode, Metadata}; 80 impl IndexNode for EventFdInode {
|
/DragonOS/kernel/src/filesystem/fat/ |
H A D | fs.rs | 29 FileSystem, FileType, IndexNode, InodeId, Metadata, 229 let page_cache = PageCache::new(Some(Arc::downgrade(&inode) as Weak<dyn IndexNode>)); in new() 262 fn root_inode(&self) -> Arc<dyn crate::filesystem::vfs::IndexNode> { in root_inode() argument 1384 impl IndexNode for LockedFATInode { 1444 ) -> Result<Arc<dyn IndexNode>, SystemError> { in create() argument 1590 fn find(&self, name: &str) -> Result<Arc<dyn IndexNode>, SystemError> { in find() argument 1685 target: &Arc<dyn IndexNode>, in move_to() argument 1797 ) -> Result<Arc<dyn IndexNode>, SystemError> { in mknod() argument 1845 fn parent(&self) -> Result<Arc<dyn IndexNode>, SystemError> { in parent() argument 1850 .map(|item| item as Arc<dyn IndexNode>) in parent()
|
/DragonOS/kernel/src/filesystem/sysfs/ |
H A D | group.rs | 12 vfs::{syscall::ModeType, IndexNode},
|