繁体   English   中英

从Linux内核模块写入debugfs

[英]Write to debugfs from Linux Kernel Module

我已经成功地在匹配路径中创建了一个dentry ,但是现在我该如何实际编写呢?

struct dentry* log_dir = debugfs_create_dir ("my_module", NULL);
struct dentry* log_file = debugfs_create_dir ("log", 0777, log_dir, NULL, NULL);

我想说,关于您需要做什么的最佳参考是内核源代码树中的debugfs.txt文档文件。

我还假设您在此处的代码示例中犯了一个错误:

struct dentry* log_file = debugfs_create_dir ("log", 0777, log_dir, NULL, NULL);

由于看起来您正在尝试创建一个文件,而不是另一个目录。 所以我想您想做的更多是这样的:

struct dentry* log_file = debugfs_create_file("log", 0777, log_dir, NULL, &log_fops);

其中log_fops可能是这样的:

static const struct file_operations log_fops = {
    .owner  =   THIS_MODULE,
    .read   =   log_read,
    .write  =   log_write, /* maybe you don't need this */
};

并且,当然,您还需要实现log_read和log_write函数:

ssize_t log_read(struct file *file, char __user *buff, size_t count, loff_t *offset);

ssize_t log_write(struct file *file, const char __user *buff, size_t count, loff_t *offset);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM