linux驱动之等待队列
来源:互联网 发布:淘宝网书籍杂志在哪找 编辑:程序博客网 时间:2024/05/17 01:42
linux驱动中,等待某种的事件发生的工作最好不要使用不断循环来完成,而是采用另外一种方法,休眠与唤醒。
等待队列工作过程就是睡眠和唤醒的过程
睡眠和唤醒的过程的基本原理,当驱动程序等待事件发生时候进入休眠状态,当该事件发生后,就会唤醒休眠状态的驱动代码。使用:
wake_up_interruptible(&button_waitq); //唤醒 发出
wait_event_interruptible(button_waitq, ev_press); // 等待事件 从阻塞中脱离ev_press是条件 若为真就不阻塞
例子:
如果读写设备文件的动作函数是dev_read()和dev_write(),在读之前一定要写入数据。
代码如下:
static sszie_t dev_read()
{
// flag=1 代表写入数据,0表示没写入
wait_event_interruptible(button_waitq, flag);
......//处理业务逻辑代码
}
static ssize_t dev_write()
{
.....//处理业务逻辑代码
flag=1;
wake_up_interruptible(&button_waitq);
}
0 0
- linux驱动之等待队列
- Linux设备驱动,等待队列
- linux驱动的等待队列
- linux 之 等待队列
- linux之等待队列
- Linux驱动阻塞与非阻塞IO之等待队列
- linux高级字符设备驱动之 二 内核等待队列
- linux之等待队列--阻塞型驱动学习---学习笔记
- Linux驱动之等待队列和poll使用
- Linux设备驱动之阻塞与非阻塞---等待队列
- linux驱动---等待队列、工作队列、Tasklets
- 内核linux之等待队列
- linux驱动编程--等待队列浅析
- 《Linux设备驱动开发详解》-- 等待队列
- Linux驱动学习——等待队列
- linux驱动中的等待队列头
- linux设备驱动--等待队列实现
- Linux 设备驱动--- 内核等待队列
- 滚动条移动触发事件
- 韩液晶巨擘LGD展示55吋OLED超薄面板
- Django1.6版本的PG数据库定义手动升级
- debian安装chrome出错
- 利用Tabhost做底部选项卡效果,里面含有fragment+viewpage的滑动效果
- linux驱动之等待队列
- Google Guava-缓存
- final的使用
- 赣榆手机GPS卫星定位追踪找人
- 灌南身份证号码户籍地址信息查询
- 灌南手机GPS卫星定位追踪找人
- 嵌入式产品电源设计
- [必藏]Android 最棒的开源集合库
- 淮安身份证号码户籍地址信息查询