摘要: 本文接下来将围绕一个实作来看看如何创建自己的kobj_attribute,sample code可以从这里下载。这个sample code是基于上篇文章kobject中的例子修改而来的,看过那个例子的读者应该会比较轻松。 首先,我们需要定义自己的attribute: 1 2 3 4 5 6 7 st 阅读全文
posted @ 2016-04-13 15:50 OracleLoyal 阅读(136) 评论(0) 推荐(0) 编辑
摘要: linux下bus,device,driver三者关系 1.bus: 总线作为主机和外设的连接通道,有些总线是比较规范的,形成了很多协议。如 PCI,USB,1394,IIC等。任何设备都可以选择合适的总线连接到主机。当然主机也可能就是CPU本身。内存也是通过BUS连接到主机的,可内存 使用的总线不 阅读全文
posted @ 2016-04-13 11:14 OracleLoyal 阅读(657) 评论(0) 推荐(0) 编辑
摘要: linux内核中的get_user和put_user 在 内核空间和用户空间交换数据时,get_user和put_user是两个两用的函数。相对于copy_to_user和 copy_from_user(将在另一篇博客中分析),这两个函数主要用于完成一些简单类型变量(char、int、long等)的 阅读全文
posted @ 2016-04-13 11:13 OracleLoyal 阅读(2454) 评论(0) 推荐(0) 编辑
摘要: access_ok() 函数是用来代替老版本的 verify_area() 函数的。它的作用也是检查用户空间指针是否可用。 函数原型: access_ok (type, addr, size); 变量说明: type : 访问类型,其值可为 VERIFY_READ 或者 VERIFY_WRITE 。 阅读全文
posted @ 2016-04-13 11:12 OracleLoyal 阅读(993) 评论(0) 推荐(0) 编辑
摘要: 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域: bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。 bit2 阅读全文
posted @ 2016-04-13 11:07 OracleLoyal 阅读(268) 评论(0) 推荐(0) 编辑