- UID
- 1029342
- 性别
- 男
|
关键结构体
struct proc_dir_entry代表的是/proc目录下的一个目录或者文件,他是procfs文件系统的主要结构体,它的定义在/fs/internal.h中:
- /*
- * This is
not completely implemented yet. The idea is
to
- * create an in-memory tree (like the actual /proc filesystem
- * tree) of these proc_dir_entries, so that we can dynamically
- * add new files to /proc.
- *
- * The "next" pointer creates a linked list of one /proc directory,
- * while parent/subdir create the directory structure (every
- * /proc file has a parent, but "subdir"
is
NULL
for
all
- * non-directory entries).
- */
- struct proc_dir_entry {
- unsigned int low_ino;
- umode_t mode;
- nlink_t nlink;
- kuid_t uid;
- kgid_t gid;
- loff_t size;
- const struct inode_operations *proc_iops;
- const struct file_operations *proc_fops;
- struct proc_dir_entry *next, *parent, *subdir;
- void *data;
- atomic_t count; /* use count */
- atomic_t in_use; /* number of callers into module in progress; */
- /* negative -> it's going away RSN */
- struct completion *pde_unload_completion;
- struct list_head pde_openers; /* who did ->open, but not ->release */
- spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
- u8 namelen;
- char
name[]; - };
主要接口
procfs应该包含的头文件<linux/proc_fs.h>。
在3.x内核中procfs主要接口有:
- proc_symlink
- proc_mkdir
- proc_mkdir_data
- proc_mkdir_mode
- proc_create_data
- proc_create
- proc_set_size
- proc_set_user
- PDE_DATA
- proc_get_parent_data
- proc_remove
- remove_proc_entry
- remove_proc_subtree
proc_mkdir
说明:在/proc下创建目录
函数原型:
- struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent)
参数:
要创建的目录名称
父目录,如果为NULL,表示直接在/proc下面创建目录。
proc_mkdir_data
说明:在/proc下创建目录
函数原型:
- struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode, struct proc_dir_entry *parent, void *data)
参数:
要创建的目录名称
指定要创建目录的权限
父目录,如果为NULL,表示直接在/proc下面创建目录。
proc_create_data
说明:创建proc虚拟文件系统文件
函数原型:
- struct proc_dir_entry *proc_create_data(const char *name, umode_t mode, struct proc_dir_entr
|
|