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

vnode并不包含文件名,因为 vnode和文件名是 1:N 的关系 更多...

#include <vnode.h>

成员变量

enum VnodeType type
 
int useCount
 
uint32_t hash
 
uint uid
 
uint gid
 
mode_t mode
 
LIST_HEAD parentPathCaches
 
LIST_HEAD childPathCaches
 
struct Vnodeparent
 
struct VnodeOpsvop
 
struct file_operations_vfs * fop
 
voiddata
 
uint32_t flag
 
LIST_ENTRY hashEntry
 
LIST_ENTRY actFreeEntry
 
struct MountoriginMount
 
struct MountnewMount
 
char * filePath
 
struct page_mapping mapping
 

详细描述

vnode并不包含文件名,因为 vnode和文件名是 1:N 的关系

linux下有多种权限控制的机制,常见的有:DAC(Discretionary Access Control)自主式权限控制和MAC(Mandatory Access Control)强制访问控制。
linux 下使用 inode 中文意思是索引节点(index node),从概念层面鸿蒙 Vnode是对标 inode 
这里顺便说一下目录文件的"链接数"。创建目录时,默认会生成两个目录项:"."和".."。前者的inode号码就是当前目录的inode号码,
    等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。
    所以,任何一个目录的"硬链接"总数,总是等于2加上它的子目录总数(含隐藏目录)
    
由于 vnode 是对所有设备的一个抽象,因此不同类型的设备,他们的操作方法也不一样,
因此 vop ,fop 都是接口, data 因设备不同而不同.

如果底层是磁盘存储,Inode结构会保存到磁盘。当需要时从磁盘读取到内存中进行缓存。

在文件 vnode.h164 行定义.

结构体成员变量说明

◆ actFreeEntry

LIST_ENTRY Vnode::actFreeEntry

在文件 vnode.h179 行定义.

◆ childPathCaches

LIST_HEAD Vnode::childPathCaches

在文件 vnode.h172 行定义.

◆ data

void* Vnode::data

在文件 vnode.h176 行定义.

◆ filePath

char* Vnode::filePath

在文件 vnode.h182 行定义.

◆ flag

uint32_t Vnode::flag

在文件 vnode.h177 行定义.

◆ fop

struct file_operations_vfs* Vnode::fop

在文件 vnode.h175 行定义.

◆ gid

uint Vnode::gid

在文件 vnode.h169 行定义.

◆ hash

uint32_t Vnode::hash

在文件 vnode.h167 行定义.

◆ hashEntry

LIST_ENTRY Vnode::hashEntry

在文件 vnode.h178 行定义.

◆ mapping

struct page_mapping Vnode::mapping

在文件 vnode.h183 行定义.

◆ mode

mode_t Vnode::mode

在文件 vnode.h170 行定义.

◆ newMount

struct Mount* Vnode::newMount

在文件 vnode.h181 行定义.

◆ originMount

struct Mount* Vnode::originMount

在文件 vnode.h180 行定义.

◆ parent

struct Vnode* Vnode::parent

在文件 vnode.h173 行定义.

◆ parentPathCaches

LIST_HEAD Vnode::parentPathCaches

在文件 vnode.h171 行定义.

◆ type

enum VnodeType Vnode::type

在文件 vnode.h165 行定义.

◆ uid

uint Vnode::uid

在文件 vnode.h168 行定义.

◆ useCount

int Vnode::useCount

在文件 vnode.h166 行定义.

◆ vop

struct VnodeOps* Vnode::vop

在文件 vnode.h174 行定义.


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