更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
VnodeOps结构体 参考

#include <vnode.h>

成员变量

int(* Create )(struct Vnode *parent, const char *name, int mode, struct Vnode **vnode)
 创建节点 更多...
 
int(* Lookup )(struct Vnode *parent, const char *name, int len, struct Vnode **vnode)
 查询节点 更多...
 
int(* Open )(struct Vnode *vnode, int fd, int mode, int flags)
 打开节点 更多...
 
ssize_t(* ReadPage )(struct Vnode *vnode, char *buffer, off_t pos)
 
ssize_t(* WritePage )(struct Vnode *vnode, char *buffer, off_t pos, size_t buflen)
 
int(* Close )(struct Vnode *vnode)
 关闭节点 更多...
 
int(* Reclaim )(struct Vnode *vnode)
 回 收节点 更多...
 
int(* Unlink )(struct Vnode *parent, struct Vnode *vnode, const char *fileName)
 取消硬链接 更多...
 
int(* Rmdir )(struct Vnode *parent, struct Vnode *vnode, const char *dirName)
 删除目录节点 更多...
 
int(* Mkdir )(struct Vnode *parent, const char *dirName, mode_t mode, struct Vnode **vnode)
 创建目录节点 更多...
 
int(* Readdir )(struct Vnode *vnode, struct fs_dirent_s *dir)
 读目录节点 更多...
 
int(* Opendir )(struct Vnode *vnode, struct fs_dirent_s *dir)
 打开目录节点 更多...
 
int(* Rewinddir )(struct Vnode *vnode, struct fs_dirent_s *dir)
 定位目录节点 更多...
 
int(* Closedir )(struct Vnode *vnode, struct fs_dirent_s *dir)
 关闭目录节点 更多...
 
int(* Getattr )(struct Vnode *vnode, struct stat *st)
 获取节点属性 更多...
 
int(* Setattr )(struct Vnode *vnode, struct stat *st)
 设置节点属性 更多...
 
int(* Chattr )(struct Vnode *vnode, struct IATTR *attr)
 改变节点属性(change attr) 更多...
 
int(* Rename )(struct Vnode *src, struct Vnode *dstParent, const char *srcName, const char *dstName)
 重命名 更多...
 
int(* Truncate )(struct Vnode *vnode, off_t len)
 缩减或扩展大小 更多...
 
int(* Truncate64 )(struct Vnode *vnode, off64_t len)
 缩减或扩展大小 更多...
 
int(* Fscheck )(struct Vnode *vnode, struct fs_dirent_s *dir)
 检查功能 更多...
 
int(* Link )(struct Vnode *src, struct Vnode *dstParent, struct Vnode **dst, const char *dstName)
 
int(* Symlink )(struct Vnode *parentVnode, struct Vnode **newVnode, const char *path, const char *target)
 
ssize_t(* Readlink )(struct Vnode *vnode, char *buffer, size_t bufLen)
 

详细描述

虚拟节点操作接口,具体的文件系统只需实现这些接口函数来操作vnode. VnodeOps 系列函数是对节点本身的操作.

在文件 vnode.h189 行定义.

结构体成员变量说明

◆ Chattr

int(* VnodeOps::Chattr) (struct Vnode *vnode, struct IATTR *attr)

改变节点属性(change attr)

在文件 vnode.h214 行定义.

◆ Close

int(* VnodeOps::Close) (struct Vnode *vnode)

关闭节点

在文件 vnode.h196 行定义.

◆ Closedir

int(* VnodeOps::Closedir) (struct Vnode *vnode, struct fs_dirent_s *dir)

关闭目录节点

在文件 vnode.h211 行定义.

◆ Create

int(* VnodeOps::Create) (struct Vnode *parent, const char *name, int mode, struct Vnode **vnode)

创建节点

在文件 vnode.h190 行定义.

◆ Fscheck

int(* VnodeOps::Fscheck) (struct Vnode *vnode, struct fs_dirent_s *dir)

检查功能

在文件 vnode.h218 行定义.

◆ Getattr

int(* VnodeOps::Getattr) (struct Vnode *vnode, struct stat *st)

获取节点属性

在文件 vnode.h212 行定义.

◆ Link

int(* VnodeOps::Link) (struct Vnode *src, struct Vnode *dstParent, struct Vnode **dst, const char *dstName)

在文件 vnode.h219 行定义.

◆ Lookup

int(* VnodeOps::Lookup) (struct Vnode *parent, const char *name, int len, struct Vnode **vnode)

查询节点

在文件 vnode.h191 行定义.

◆ Mkdir

int(* VnodeOps::Mkdir) (struct Vnode *parent, const char *dirName, mode_t mode, struct Vnode **vnode)

创建目录节点

在文件 vnode.h200 行定义.

◆ Open

int(* VnodeOps::Open) (struct Vnode *vnode, int fd, int mode, int flags)

打开节点

在文件 vnode.h193 行定义.

◆ Opendir

int(* VnodeOps::Opendir) (struct Vnode *vnode, struct fs_dirent_s *dir)

打开目录节点

在文件 vnode.h209 行定义.

◆ Readdir

int(* VnodeOps::Readdir) (struct Vnode *vnode, struct fs_dirent_s *dir)

读目录节点

创建一个目录时,实际做了3件事:在其“父目录文件”中增加一个条目;分配一个inode;再分配一个存储块, 用来保存当前被创建目录包含的文件与子目录。被创建的“目录文件”中自动生成两个子目录的条目,名称分别是:“.”和“..”。 前者与该目录具有相同的inode号码,因此是该目录的一个“硬链接”。后者的inode号码就是该目录的父目录的inode号码。 所以,任何一个目录的"硬链接"总数,总是等于它的子目录总数(含隐藏目录)加2。即每个“子目录文件”中的“..”条目, 加上它自身的“目录文件”中的“.”条目,再加上“父目录文件”中的对应该目录的条目。

在文件 vnode.h208 行定义.

◆ Readlink

ssize_t(* VnodeOps::Readlink) (struct Vnode *vnode, char *buffer, size_t bufLen)

在文件 vnode.h221 行定义.

◆ ReadPage

ssize_t(* VnodeOps::ReadPage) (struct Vnode *vnode, char *buffer, off_t pos)

在文件 vnode.h194 行定义.

◆ Reclaim

int(* VnodeOps::Reclaim) (struct Vnode *vnode)

回 收节点

在文件 vnode.h197 行定义.

◆ Rename

int(* VnodeOps::Rename) (struct Vnode *src, struct Vnode *dstParent, const char *srcName, const char *dstName)

重命名

在文件 vnode.h215 行定义.

◆ Rewinddir

int(* VnodeOps::Rewinddir) (struct Vnode *vnode, struct fs_dirent_s *dir)

定位目录节点

在文件 vnode.h210 行定义.

◆ Rmdir

int(* VnodeOps::Rmdir) (struct Vnode *parent, struct Vnode *vnode, const char *dirName)

删除目录节点

在文件 vnode.h199 行定义.

◆ Setattr

int(* VnodeOps::Setattr) (struct Vnode *vnode, struct stat *st)

设置节点属性

在文件 vnode.h213 行定义.

◆ Symlink

int(* VnodeOps::Symlink) (struct Vnode *parentVnode, struct Vnode **newVnode, const char *path, const char *target)

在文件 vnode.h220 行定义.

◆ Truncate

int(* VnodeOps::Truncate) (struct Vnode *vnode, off_t len)

缩减或扩展大小

在文件 vnode.h216 行定义.

◆ Truncate64

int(* VnodeOps::Truncate64) (struct Vnode *vnode, off64_t len)

缩减或扩展大小

在文件 vnode.h217 行定义.

◆ Unlink

int(* VnodeOps::Unlink) (struct Vnode *parent, struct Vnode *vnode, const char *fileName)

取消硬链接

在文件 vnode.h198 行定义.

◆ WritePage

ssize_t(* VnodeOps::WritePage) (struct Vnode *vnode, char *buffer, off_t pos, size_t buflen)

在文件 vnode.h195 行定义.


该结构体的文档由以下文件生成: