博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
总线置顶[置顶] Linux bus总线
阅读量:5024 次
发布时间:2019-06-12

本文共 1766 字,大约阅读时间需要 5 分钟。

时间紧张,先记一笔,后续优化与完善。

    #include <linux/module.h>

    #include <linux/init.h>

    #include <linux/device.h>

    struct bus_type my_usb_bus = {

    .name = "my_usb",   //总线的名字,注册胜利后会在/sys/bus/目录下看到

    };

    #define COUNT_SIZE  100

    char data[COUNT_SIZE] = "Hello MikeChen";

    /*

    内核到用户空间的数据

    */

    static ssize_t show_bus_data(struct bus_type * bus, char *buf)  

    {

    return snprintf(buf, COUNT_SIZE, "show Bus Data: %s\n", data);

    }

    /*

    用户空间到内核的数据

    */

    static ssize_t store_bus_data(struct bus_type * bus, const char *buf, size_t count)

    {

    return snprintf(data, COUNT_SIZE, "Store Bus Data: %s\n", buf);

    }

    /*

    注意该宏最终返回bus_attr_version

    #define BUS_ATTR(_name, _mode, _show, _store) \

    struct bus_attribute bus_attr_##_name = __ATTR(_name, _mode, _show, _store)

    每日一道理
我把卷子摊在课桌上,恨不得敲一阵锣,叫大家都来看看我这光彩的分数。

    */

    static BUS_ATTR(version, S_IRUGO | S_IWUGO, show_bus_data, store_bus_data);

    static int __init my_usb_bus_init(void)

    {

    int ret;

    ret = bus_register(&my_usb_bus);

    if (ret)

    {

        printk("Bus register failed!, ret: %d\n", ret);

        return ret;

    }

    printk("Usb init commplete\n");

    ret = bus_create_file(&my_usb_bus, &bus_attr_version);

    if (ret)

    {

        printk("Bus Create file failed");

        bus_unregister(&my_usb_bus);

        return 0;

    }

    printk("Bus ATTR Create Commplete\n");

    

    return 0;

    }

    static void __exit my_usb_bus_exit(void)

    {

    bus_remove_file(&my_usb_bus, &bus_attr_version)

    bus_unregister(&my_usb_bus);

    printk("Usb Bus exit\n");

    }

    MODULE_LICENSE("GPL");

    MODULE_AUTHOR("MIKE CHEN");

    module_init(my_usb_bus_init);

    module_exit(my_usb_bus_exit);

    总线和置顶总线和置顶

文章结束给大家分享下程序员的一些笑话语录: AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!

--------------------------------- 原创文章 By

总线和置顶
---------------------------------

转载于:https://www.cnblogs.com/jiangu66/archive/2013/05/29/3106889.html

你可能感兴趣的文章
python selenium向<sapn>标签中写入内容
查看>>
JS常用坐标
查看>>
使用”结构化的思考方式“来编码和使用”流程化的思考方式“来编码,孰优孰劣?...
查看>>
C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
查看>>
关于git的认证方式
查看>>
字符串按照字典序排列
查看>>
IOS 开发调用打电话,发短信
查看>>
CI 框架中的日志处理 以及 404异常处理
查看>>
keepalived介绍
查看>>
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
样式、格式布局
查看>>
ubuntu设计文件权限
查看>>
Vue双向绑定原理详解
查看>>
Android基础总结(5)——数据存储,持久化技术
查看>>
关于DataSet事务处理以及SqlDataAdapter四种用法
查看>>
bootstrap
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
工程经验总结之吹水"管理大境界"
查看>>