On Mon, Aug 20, 2012 at 10:45 AM, swair shah <swairshah@gmail.com> wrote:
I'm trying to understand the use of debugfs with the use of this sample program.
#include <linux/init.h> #include <linux/debugfs.h> #include <linux/module.h> #include <linux/fs.h>
#define len 200 u64 intvalue,hexvalue; struct dentry *dirret,*fileret,*u64int,*u64hex; char ker_buf[len]; int filevalue; /* read file operation */ static ssize_t myreader(struct file *fp, char __user *user_buffer, size_t count, loff_t *position){ return simple_read_from_buffer(user_buffer, count, position, ker_buf, len); }
/* write file operation */ static ssize_t mywriter(struct file *fp, const char __user *user_buffer, size_t count, loff_t *position){ if(count > len ) return -EINVAL;
return simple_write_to_buffer(ker_buf, len, position, user_buffer, count); }
static const struct file_operations fops_debug = { .read = myreader, .write = mywriter, };
static int __init init_debug(void) { /* create a directory by the name dell in /sys/kernel/debugfs */ dirret = debugfs_create_dir("dell", NULL);
/* create a file in the above directory This requires read and write file operations */ fileret = debugfs_create_file("text", 0644, dirret, &filevalue, &fops_debug);
/* create a file which takes in a int(64) value */ u64int = debugfs_create_u64("number", 0644, dirret, &intvalue); if (!u64int) { printk("error creating int file"); return (-ENODEV); } /* takes a hex decimal value */ u64hex = debugfs_create_x64("hexnum", 0644, dirret, &hexvalue ); if (!u64hex) { printk("error creating hex file"); return (-ENODEV); }
return (0); } module_init(init_debug);
static void __exit exit_debug(void){ debugfs_remove_recursive(dirret); } module_exit(exit_debug);
Shouldn't it create a dir named 'dell' in sys/kernel/debug ?. (debugfs is mounted.) Can someone explain the use of debugfs or may be point to some good resources? Documentation/filesystems/debugfs.txt
thanks! swair
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
cheers, marek -- as simple and primitive as possible ------------------------------------------------- Marek Belisko - OPEN-NANDRA Freelance Developer Ruska Nova Ves 219 | Presov, 08005 Slovak Republic Tel: +421 915 052 184 skype: marekwhite twitter: #opennandra web: http://open-nandra.com