首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Linux内核中的proc文件系统(2)

Linux内核中的proc文件系统(2)

关键结构体
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)
参数:
       
  • name
要创建的目录名称
       
  • 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)
参数:
       
  • name
要创建的目录名称
       
  • mode
指定要创建目录的权限
       
  • parent
父目录,如果为NULL,表示直接在/proc下面创建目录。
       
  • data
proc_create_data
说明:创建proc虚拟文件系统文件
函数原型:
  • struct proc_dir_entry *proc_create_data(const char *name, umode_t mode, struct proc_dir_entr
继承事业,薪火相传
返回列表