#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/debugfs.h>
#include<linux/pci.h>
#include<linux/init.h>
#include<linux/debugfs.h>
#include<linux/dim.h>
static struct dentry *dir = NULL;
static unsigned int debugfs_hello;
static u32 sum = 0;
static int
add_write(void *data, u64 value)
{
sum += value;
return 0;
}
DEFINE_SIMPLE_ATTRIBUTE(add_ops, NULL, add_write, "%llu\n");
static __init int init(void)
{
struct dentry *tmp_dir = NULL;
dir = debugfs_create_dir("debugfs_hello", NULL);
if (!dir) {
printk(KERN_ALERT "debugfs_create_dir failed\n");
return -1;
}
/*mode: rw*/
debugfs_create_u32("hello", 0666, dir, &debugfs_hello);
/*mode: w*/
debugfs_create_file("add", 0222, dir, NULL, &add_ops);
/*mode: r*/
debugfs_create_u32("sum", 0444, dir, &sum);
return 0;
}
static void __exit exit(void)
{
printk(KERN_INFO "Exit debugfs_hello module\n");
debugfs_remove_recursive(dir);
dir = NULL;
}
module_init(init);
module_exit(exit);
MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("Debugfs hello examle");
/*
0666:
第一位0表示是一个8进制数
第二个数6是文件拥有者的读写,执行权限。
第三个数6是文件拥有者同组用户读写,执行权限
第三个数6是其它用户读写,执行权限
6:
二进制0110
第一位在权限中总是0,
第二位在权限中为0表示文件不可以被读,为1表示可以被读。
第三位在权限中为0表示文件不可以被写,为1表示可以被写。
第四位在权限中为0表示文件不可以被执行,为1表示可以被执行。
*/
debugfs调试学习
最新推荐文章于 2024-05-17 16:41:20 发布