*参照元 [#h1a40cec]
#backlinks

*説明 [#iaf497d7]
-パス: 複数あり
--CONFIG_PROC_FS 有効: [[linux-4.4.1/fs/proc/generic.c]]
--CONFIG_PROC_FS 無効: [[linux-4.4.1/include/linux/proc_fs.h]]

-FIXME: これは何?
--説明


**引数 [#f11db88c]
-const char *name
--
-umode_t mode
--
--[[linux-4.4.1/umode_t]]
-struct proc_dir_entry *parent
--
--[[linux-4.4.1/proc_dir_entry]]
-const struct file_operations *proc_fops
--
--[[linux-4.4.1/file_operations]]
-void *data
--


**返り値 [#sd67724a]
-struct proc_dir_entry *
--
--[[linux-4.4.1/proc_dir_entry]]


**参考 [#d65e6cf6]


*実装 [#e2879c82]

**CONFIG_PROC_FS 有効: fs/proc/generic.c [#s5de1ddc]
 struct proc_dir_entry *proc_create_data(const char *name, umode_t mode,
                                         struct proc_dir_entry *parent,
                                         const struct file_operations *proc_fops,
                                         void *data)
 {
         struct proc_dir_entry *pde;
         if ((mode & S_IFMT) == 0)
                 mode |= S_IFREG;
 
-
--[[linux-4.4.1/proc_dir_entry]]

         if (!S_ISREG(mode)) {
                 WARN_ON(1);     /* use proc_mkdir() */
                 return NULL;
         }
 
-
--[[linux-4.4.1/S_ISREG()]]
--[[linux-4.4.1/WARN_ON()]]

         BUG_ON(proc_fops == NULL);
 
-
--[[linux-4.4.1/BUG_ON()]]

         if ((mode & S_IALLUGO) == 0)
                 mode |= S_IRUGO;
         pde = __proc_create(&parent, name, mode, 1);
         if (!pde)
                 goto out;
-
--[[linux-4.4.1/__proc_create()]]

         pde->proc_fops = proc_fops;
         pde->data = data;
         pde->proc_iops = &proc_file_inode_operations;
         if (proc_register(parent, pde) < 0)
                 goto out_free;
         return pde;
-
--[[linux-4.4.1/proc_file_inode_operations(global)]]
--[[linux-4.4.1/proc_register()]]

 out_free:
         kfree(pde);
-
--[[linux-4.4.1/kfree()]]

 out:
         return NULL;
 }
 EXPORT_SYMBOL(proc_create_data);
-
--[[linux-4.4.1/EXPORT_SYMBOL()]]


**CONFIG_PROC_FS 無効: include/linux/proc_fs.h [#c204625e]
 #define proc_create_data(name, mode, parent, proc_fops, data) ({NULL;})
-常に失敗する。


*コメント [#u632df9b]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS