1.self_inum:是一个唯一的proc inode number. 虽然它是从proc 文件系统中分配的inode number, 但仅用在nsfs中, 它被用做nsfs的inode number, 只需要保证这个number在nsfs中唯一就可以了.
2.__xlate_proc_name:This function parses a name such as “tty/driver/serial”, and returns the struct proc_dir_entry for “/proc/tty/driver”, and returns “serial” in residual.
当ret 为空的时候返回proc_root
This is the root “inode” in the /proc tree..
struct proc_dir_entry proc_root = {
.low_ino = PROC_ROOT_INO,
.namelen = 5,
.mode = S_IFDIR | S_IRUGO | S_IXUGO,
.nlink = 2,
.count = ATOMIC_INIT(1),
.proc_iops = &proc_root_inode_operations,
.proc_fops = &proc_root_operations,
.parent = &proc_root,
.name = “/proc”,
};
3:__proc_create,分配并初始化struct proc_dir_entry 结构的ent
4.proc_symlink:将传入额参数复制到ent->data 中,并调用proc_register 注册ent 到proc 文件系统中
5.proc_register:函数首先分配一个inode number,然后根据entry的类型对其进行操作函数赋值,主要分为目录、链接、文件。这里我们只关注文件,文件的操作函数一般由用户自己定义,即上面我们设置的ops,这里仅仅是设置inode操作函数表,设置成了全局的proc_file_inode_operations,然后插入到父目录的子文件链表中,注意是头插法。基本结构如下,其中每个子节点都有指向父节点的指针。
6.在/proc 下创建的目录
/mounts,/net,/sysvipc,/fs,/driver,/fs/nfsd,/openprom,/tty(并在TTY下面创建tty 相关的文件),/device-tree,/bus,/sys
7.对于/proc/sys、/proc/${PID}/等特定目录下的文件时需要时动态生成的,有其自己的内部实现.
proc_root_init
最新推荐文章于 2024-08-18 13:43:06 发布