#include <linux/debugfs.h>
struct dbg_fs {
struct dentry *fs_dir;
struct dentry *fs_file;
//......; //others param
};
struct dbg_fs mydfs;
static const struct file_operations my_debugfs_dbg = {
.owner = THIS_MODULE,
.open = simple_open,
.read = my_debugfs_read,
.write = my_debugfs_write,
};
void mydfs_create(void) {
if (!debugfs_initialized()) {
return;
}
// create dir
if (!mydfs.fs_dir) {
mydfs.fs_dir= debugfs_create_dir(KBUILD_MODNAME, NULL);
}
// create file
if (!mydfs.fs_file) {
/* Create file with permissions S_IRUSR */
debugfs_create_file("dbg", 0400, mydfs.fs_dir, &mydfs,
&my_debugfs_dbg);
}
}
void mydfs_free(void)
{
// 清除此目录,递归地遍历路径中的每个文件和子目录, 并使用 remove 系统调用将其删除
// debugfs_remove_recursive 函数是专门用于调试目的的
debugfs_remove_recursive(mydfs.fs_dir);
mydfs.fs_dir = NULL;
}
linux kernel debugfs代码实例
于 2024-03-01 15:10:15 首次发布