- 博客(25)
- 收藏
- 关注
原创 【Linux】ioctl()方法
应该在专用头文件中生成自己的ioctl编号,这不是强制性的,但建议这样做,因为这个头文件在用户空间中也可以使用。换句话说,应该复制ioctl头文件,以便在内核中有一个,在用户空间中也有一个,该文件可以包含在用户应用程序中。系统内ioctl号码的唯一性可以防止把正确的命令发送到错误的设备,或者将错误的参数传递给正确的命令(给出重复的ioctl号码)。在Documentation/ioctl/ioctl-number.txt中列出,需要创建ioctl命令时,这是一个很好的开始。使用switch …
2024-02-11 07:00:00
1652
原创 【Linux】设备驱动——读写文件操作
(语义检查器,内核用来查找可能的编码错误),让开发人员知道他实际上将要使用不可信指针(也就是在当前虚拟地址映射中可能无效的指针),他不应该间接访问,而应使用专用的内核函数来访问该指针指向的内存。当复制像char和int这样的单个简单变量,而不是像结构和数组这样的大数据类型时,内核会提供专用的宏来快速执行所需的操作。每个函数的返回值是未复制的字节数,如果成功,则返回值应该是0。使用copy_to_user()时,如果某些数据无法复制,则该函数将使用零字节将复制的数据填充到请求的大小。返回值是读取的数据量。
2024-02-10 07:00:00
1753
原创 【Linux】poll()方法
通常的方法是根据select()(或poll())系统调用支持的事件,为每个事件类型使用一个等待队列(一方面是考虑可读性,另一方面是考虑可写性,最后是考虑需要时的异常处理)。(此时调用select或poll),则返回**(* poll)文件操作的返回值必须是POLLIN |POLLRDNORM**;如果驱动程序没有定义这个方法,则设备将被视为总是可读可写的,poll()或select()系统调用立即返回。当用户需要读取时,如果有数据,数据会立即发送到进程,;,为需要接收内核通知的进程注册事件,在。
2024-02-10 07:00:00
947
原创 【Linux】设备驱动——设备文件操作、表示、注册
的指针),它代表打开的文件,并且提供一组函数,它们与底层文件结构上执行的方法相关,这些方法包括open、write、seek、read、select等。是文件系统的数据结构,它只与操作系统相关,用于保存文件(无论它的类型是字符、块、管道等)或目录(从内核的角度来看,目录也是文件,是其他文件的入口点)信息。举个例子,如果想让用户在设备文件上执行write操作,必须在驱动中实现与write函数对应的回调函数,并把它添加到绑定在设备上的。,为用户空间提供一组可以在该设备上执行的操作(函数)。
2024-02-09 23:37:04
833
原创 【Linux内核编译】编译linux4.1内核问题总结
解决linux内核编译时遇到的linux/compiler-gcc11.h:没有那个文件或目录和kernel/bounds.c:1:0: error: code model kernel does not support PIC mode两个问题
2024-02-02 23:51:29
604
原创 Android 集成firefox浏览器内核GeckoView
Android 集成firefox浏览器内核GeckoView代替使用系统自带的浏览器内核,可以大幅度提高app的性能。
2024-01-30 13:42:58
2439
1
Linux设备驱动开发学习笔记(下)
2024-02-16
Linux设备驱动开发学习笔记(上)
2024-02-09
MFC菜单控件设置事件处理程序出现没有消息类型
2022-10-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人