Proc文件系统

#include <linux/proc_fs.h>

static struct proc_dir_entry *proc_xxx = NULL;

int xxx_read_proc(char *page, char **start, off_t off,int count, int *eof, void *data)
{
    int len = 0;

    if(off > 0)
    {
        *eof = 1;
        return 0;
    }

    len = sprintf(page + len,"Debug  Mode: echo 1 >/proc/driver/xxx \n");
    len += sprintf(page + len,"Normal Mode: echo 0 >/proc/driver/xxx \n");

    return len;
}

static int xxx_write_proc(struct file *file, const char __user *buffer, unsigned long count, void *data)
{
    char CommandLine[20] = {0};

    if (0 != copy_from_user(CommandLine, buffer, 20))
    {
        printk("copy_from_user failed\r\n");
        return -1;
    }

    sscanf(CommandLine, "%x", &DebugFlag);

    return count;
}


static int __init xxx_init(void)
{
    proc_xxx = create_proc_entry(MODULE_NAME, 0644,proc_root_driver);
    if(proc_xxx != NULL)
    {
        proc_xxx->owner = THIS_MODULE;
        proc_xxx->read_proc = xxx_read_proc;
        proc_xxx->write_proc = xxx_write_proc;
    }
    else
    {
        printk("create_proc_entry for xxx failed!\n");
        goto unregister_chrdev;
    }

    return 0;
}

static void __exit xxx_exit(void)
{
    remove_proc_entry(MODULE_NAME,proc_root_driver);
}

module_init(xxx_init);
module_exit(xxx_exit);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值