最近看的一个问题,消息队列可以创建,但是不能获取属性,也不能发消息,返回错误为:EBADF Bad file descriptor 经过打点,确认走入了这个流程: 这个分支判断按道理也没什么问题,因为既然是消息队列,那么file->f_op就应该是 mqueue_file_operations 。 ...
分类:
其他好文 时间:
2019-06-11 17:43:04
阅读次数:
156
关于如何编写linux设备驱动1)首先确定硬件接口使用的总线,2)然后确定要实现的功能,是网卡、sensor还是什么?再确定对上层应用暴露的接口,从而选择子系统,例如iio、input子系统等。由于linux只有字符设备、块设备、网络设备三种设备,其实iio、input子系统都是字符设备,只是它们帮你封装好了字符设备的file_operations和Major设备号了,另外提供统一的sysfs接口
分类:
系统相关 时间:
2019-03-24 00:27:56
阅读次数:
237
字符设备驱动框架 #include <linux/init.h> //定义了module_init#include <linux/module.h> //最基本的头文件,其中定义了MODULE_LICENSE这一类宏#include <linux/fs.h> // file_operations结构 ...
分类:
其他好文 时间:
2019-02-26 11:49:35
阅读次数:
205
Table of Contents 1. "Basic Operations" 1.1. "File Operations" 1.2. "Text Operations" 1.3. "Directory Operations" 1.4. "SSH, System Info & Network Ope ...
分类:
其他好文 时间:
2019-02-10 12:28:21
阅读次数:
133
1:只读(‘r' 和 ’rb'以字节读) 相对路径 2:读写('r+'和‘r+b'以bytes字节读写) 3:只写('w'和'wb') 先将源文件的内容全部清除,再写。 4:写读 w+ , w+b 5:追加 'a' 6:文件操作其他功能 f = open('log',mode='a',encodin ...
分类:
其他好文 时间:
2019-02-03 22:13:15
阅读次数:
177
一、驱动中的poll机制 1.简介:select()和poll()系统调用的本质一样,前者在 BSD UNIX 中引入的,后者在 System V 中引入的。 应用程序使用 select() 或 poll() 调用设备驱动程序的 file_operations 的 poll() 函数。 2.实现(1 ...
分类:
系统相关 时间:
2019-01-13 12:22:40
阅读次数:
227
目前暂时无法做到直接路径加载同时满足不生成redo,同时又写一份到buffer cache,这只能依赖于操作系统缓存,但是过多的并发append会导Disk file operations I/O致等待事件。 This event is used to wait for disk file oper ...
分类:
移动开发 时间:
2018-12-01 18:24:40
阅读次数:
225
最近学习到了Linux驱动章节的课程,对设备的对应驱动的注册有些困惑,看了下发现是把设备的所有操作方法封装到结构体 file_operations 中,这个结构体为所有的设备文件都提供了统一的操作函数接口。然后把这个结构体连同设备的主设备号、名字(没啥用)一起,通过函数 register_chrde ...
分类:
其他好文 时间:
2018-10-27 19:56:49
阅读次数:
194
前言 poll机制用于实现IO多路复用。所谓IO多路复用,通俗的讲,其实就是线程复用,使其能在一个线程上处理多个IO。 用户空间 用户通过调用用户空间的poll函数使用该机制。 驱动部分的实现 用户如果要在自己的驱动中实现poll机制,则必须实现: struct file_operations中的 ...
分类:
系统相关 时间:
2018-10-13 19:50:47
阅读次数:
192
ORALCE的等待事件有很多,今天在一个数据库的awr报告中发现了一个新的等待事件:Disk file operations I/O,官方解释如下: This event is used to wait for disk file operations (for example, open, clo ...
分类:
其他好文 时间:
2018-10-11 15:10:35
阅读次数:
153