Create debugfs files directly on debugfs root instead of a subdirectory

This commit is contained in:
Ciro Santilli
2017-07-14 11:24:52 +01:00
parent d4ed593451
commit 1918c4fdfe
10 changed files with 21 additions and 26 deletions

View File

@@ -24,7 +24,7 @@ which reduces namespace pollution.
MODULE_LICENSE("GPL");
static struct dentry *dir;
static struct dentry *debugfs_file;
static ssize_t read(struct file *filp, char __user *buf, size_t len, loff_t *off)
{
@@ -72,14 +72,13 @@ static const struct file_operations fops_ioctl = {
static int myinit(void)
{
dir = debugfs_create_dir("lkmc_anonymous_inode", 0);
debugfs_create_file("f", 0, dir, NULL, &fops_ioctl);
debugfs_file = debugfs_create_file("lkmc_anonymous_inode", 0, NULL, NULL, &fops_ioctl);
return 0;
}
static void myexit(void)
{
debugfs_remove_recursive(dir);
debugfs_remove(debugfs_file);
}
module_init(myinit)

View File

@@ -28,7 +28,7 @@ Here we use debugfs.
MODULE_LICENSE("GPL");
static struct dentry *dir;
static struct dentry *debugfs_file;
static char data[] = {'a', 'b', 'c', 'd'};
static int open(struct inode *inode, struct file *filp)
@@ -143,14 +143,13 @@ static const struct file_operations fops = {
static int myinit(void)
{
dir = debugfs_create_dir("lkmc_fops", 0);
debugfs_create_file("f", S_IRUSR | S_IWUSR, dir, NULL, &fops);
debugfs_file = debugfs_create_file("lkmc_fops", S_IRUSR | S_IWUSR, NULL, NULL, &fops);
return 0;
}
static void myexit(void)
{
debugfs_remove_recursive(dir);
debugfs_remove_recursive(debugfs_file);
}
module_init(myinit)

View File

@@ -28,7 +28,7 @@ Documentation/ioctl/ioctl-number.txt has some info:
MODULE_LICENSE("GPL");
static struct dentry *dir;
static struct dentry *debugfs_file;
static long unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long argp)
{
@@ -76,17 +76,16 @@ static const struct file_operations fops = {
static int myinit(void)
{
dir = debugfs_create_dir("lkmc_ioctl", 0);
/* ioctl permissions are not automatically restricted by rwx as for read / write,
* but we could of course implement that ourselves:
* https://stackoverflow.com/questions/29891803/user-permission-check-on-ioctl-command */
debugfs_create_file("f", 0, dir, NULL, &fops);
debugfs_file = debugfs_create_file("lkmc_ioctl", 0, NULL, NULL, &fops);
return 0;
}
static void myexit(void)
{
debugfs_remove_recursive(dir);
debugfs_remove(debugfs_file);
}
module_init(myinit)

View File

@@ -24,7 +24,7 @@ MODULE_LICENSE("GPL");
static char readbuf[1024];
static size_t readbuflen;
static struct dentry *dir;
static struct dentry *debugfs_file;
static struct task_struct *kthread;
static wait_queue_head_t waitqueue;
@@ -74,8 +74,8 @@ static const struct file_operations fops = {
static int myinit(void)
{
dir = debugfs_create_dir("lkmc_poll", 0);
debugfs_create_file("f", S_IRUSR | S_IWUSR, dir, NULL, &fops);
debugfs_file = debugfs_create_file(
"lkmc_poll", S_IRUSR | S_IWUSR, NULL, NULL, &fops);
init_waitqueue_head(&waitqueue);
kthread = kthread_create(kthread_func, NULL, "mykthread");
wake_up_process(kthread);
@@ -85,7 +85,7 @@ static int myinit(void)
static void myexit(void)
{
kthread_stop(kthread);
debugfs_remove_recursive(dir);
debugfs_remove(debugfs_file);
}
module_init(myinit)

View File

@@ -44,11 +44,7 @@ static int myinit(void)
{
debugfs_file = debugfs_create_file(
"lkmc_seq_file_single", S_IRUSR, NULL, NULL, &fops);
if (debugfs_file) {
return 0;
} else {
return -EINVAL;
}
return 0;
}
static void myexit(void)