*参照元 [#xe3975ab]
#backlinks

*説明 [#i2483f03]
-パス: 複数あり
--CONFIG_PROC_FS が有効な場合: [[linux-2.6.33/fs/proc/generic.c]]
--CONFIG_PROC_FS が無効な場合: [[linux-2.6.33/include/linux/proc_fs.h]]

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


**引数 [#t304840b]
-const char *name
--
-mode_t mode
--
--[[linux-2.6.33/mode_t]]
-struct proc_dir_entry *parent
--
--[[linux-2.6.33/proc_dir_entry]]


**返り値 [#y15a1afe]
-struct proc_dir_entry *
--
--成功時は proc ファイルシステムエントリへのポインタが返ります。
失敗時は NULL が返ります。


**参考 [#b0bceb86]


*実装 [#l55d8705]
**CONFIG_PROC_FS が有効な場合: fs/proc/generic.c [#abeca3fe]
 struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode,
 					 struct proc_dir_entry *parent)
 {
 	struct proc_dir_entry *ent;
 	nlink_t nlink;
 
-
--[[linux-2.6.33/nlink_t]]

 	if (S_ISDIR(mode)) {
 		if ((mode & S_IALLUGO) == 0)
 			mode |= S_IRUGO | S_IXUGO;
 		nlink = 2;
-
--[[linux-2.6.33/S_ISDIR()]]
-
--[[linux-2.6.33/S_IALLUGO]]
-
--[[linux-2.6.33/S_IRUGO]]
-
--[[linux-2.6.33/S_IXUGO]]

 	} else {
 		if ((mode & S_IFMT) == 0)
 			mode |= S_IFREG;
 		if ((mode & S_IALLUGO) == 0)
 			mode |= S_IRUGO;
 		nlink = 1;
-
--[[linux-2.6.33/S_IFMT]]
-
--[[linux-2.6.33/S_IFREG]]

 	}
 
 	ent = __proc_create(&parent, name, mode, nlink);
-
--[[linux-2.6.33/__proc_create()]]

 	if (ent) {
 		if (proc_register(parent, ent) < 0) {
 			kfree(ent);
 			ent = NULL;
 		}
-
--[[linux-2.6.33/proc_register()]]
-
--[[linux-2.6.33/kfree()]]

 	}
 	return ent;
 }


**CONFIG_PROC_FS が無効な場合: include/linux/proc_fs.h [#na87cd74]
 #ifdef CONFIG_PROC_FS
 
-/proc ファイルシステムが有効の場合
--[[linux-2.6.33/CONFIG_PROC_FS]]

 (... 略 ...)
 
 struct proc_dir_entry *proc_create_data(const char *name, mode_t mode,
 				struct proc_dir_entry *parent,
 				const struct file_operations *proc_fops,
 				void *data);
 
-

 #else
 
-/proc ファイルシステムが無効の場合

 (... 略 ...)
 
 static inline struct proc_dir_entry *create_proc_entry(const char *name,
 	mode_t mode, struct proc_dir_entry *parent) { return NULL; }
 
-何もしない。

 (... 略 ...)
 
 #endif

*コメント [#q0fa05ea]

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