error message:原因: 从2.6.36开始,file_operations结构发生了重大变化具体看 xx../include/linux/fs.h定义:取消了原先的int (*ioctl)(struct inode*, struct file*, unsigned int, unsign...
分类:
其他好文 时间:
2014-07-31 16:19:37
阅读次数:
275
信号驱动式I/O的本质就是:进程预先告知内核当某个描述符发生事件时,内核会向该进程发送SIGIO信号通知进程,进程可在信号处理函数中进行处理
进程可以通过fcntl打开O_ASYNC标志或ioctl打开FIOASYNC标志来通知内核,二者的区别是一些系统不支持fcntl,所以应尽量使用ioctl
对于TCP套接字产生SIGIO信号的条件:
1.监听套接字上有新连接请求完成
...
分类:
其他好文 时间:
2014-07-23 00:04:48
阅读次数:
223
Linux C/C++编程时常会遇到“error: expected expression before ‘struct’”错误,此错误一般是由未定义的宏(宏里套宏)或参量引起,导致编译器判断当前语句为非法语句,可能有如下几种情况。1、缺少ioctl.h头文件调用ioctl函数,用到参数VIDIOC...
分类:
其他好文 时间:
2014-07-21 23:30:23
阅读次数:
215
ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。ioctl(keyFd, FIONREAD, &b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就能...
分类:
其他好文 时间:
2014-07-18 18:21:55
阅读次数:
245
背景:
在多媒体和图像处理等应用中,经常用到大块内存,尤其是硬件编解码,需要内核分配大块的物理连续内存。
这里希望通过把从内核分配的连续物理内存映射到用户空间,在用户空间经过处理,又可以入队到驱动中。
前提:
Kernel Config中 根据需求配置和调整CMA的大小。
方法:
(一)
1、驱动注册misc设备;
2、驱动实现IOCTL的内存分配,使用dma_alloc_writ...
分类:
其他好文 时间:
2014-07-18 11:30:45
阅读次数:
256
摘要:
相对于上一篇测试程序CMA连续物理内存用户空间映射---(一)
增加功能:
1、分配和映射统一放在IOCTL,一次完成,可以连续多次分配并映射到用户空间,提高操作性;
2、驱动增加链表,使分配的多块内存在链表中管理,方便添加删除;
3、增加内存释放和解除映射;
4、使用rmmod删除驱动模块时,将释放所有内存;
映射流程:
1、用户通过IOCTL分配大小传给驱动ioctl-...
分类:
其他好文 时间:
2014-07-18 11:09:20
阅读次数:
386
目标:1. 完成最终的设备驱动,增加具体的watchdog设备操作的代码。测试代码:代码最终实现见cwd_demo.c代码只实现了read与write. 没有实现ioctl.因此,我们可以通过shell指令直接操作我们的watchdog.read函数,只读取watchdog的0x01 和0x02寄存...
分类:
其他好文 时间:
2014-07-08 00:52:03
阅读次数:
245
ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。ioctl(keyFd, FIONREAD, &b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就能...
分类:
其他好文 时间:
2014-07-06 22:22:58
阅读次数:
212
/*
本文章由 莫灰灰 编写,转载请注明出处。
作者:莫灰灰 邮箱: minzhenfei@163.com
*/
1. 漏洞描述
在处理DIAG设备的ioctl系统调用参数时,一些未经验证的引用自用户层的不可信指针被使用了。对于本地安装的应用程序来说,可以使用这个漏洞来实施拒绝服务攻击,或者在内核下执行任意代码。
2. 漏洞分析
} else if ...
分类:
移动开发 时间:
2014-07-02 07:04:37
阅读次数:
290
/*
本文章由 莫灰灰 编写,转载请注明出处。
作者:莫灰灰 邮箱: minzhenfei@163.com
*/
1. 漏洞描述
音频驱动acdb提供了一个ioctl的系统接口让应用层调用,然而,其在处理传进来的参数时没有做有效的边界检查。应用程序可以通过/dev/msm_acdb设备文件就能达到提升权限的目的。
2. 漏洞分析
原始代码如下
if...
分类:
数据库 时间:
2014-07-01 09:04:04
阅读次数:
355