前言:

看了很多网上的 wait_event_interruptible(queue, condition)介绍文字,感觉没有几个真正搞懂他的两个参数是怎么用的。

wait_event_interruptible 是linux驱动设计中断的重要函数,他有什么用呢?

1 有什么用?

就是进程休眠,等待中断:

用在驱动里面会休眠当前的进程。

2 两个参数怎么用?

wait_event_interruptible(queue, condition)

1 queue 的中断队列里面有对应的中断产生

在linux kernel 里面 , wait.h 里面有个宏定义 : DECLARE_WAIT_QUEUE_HEAD  就是一个wait 等待的队列结构体

DECLARE_WAIT_QUEUE_HEAD queue 就是定义了一个等待的队列

2 condition设定条件符合

然后,呢被休眠的进程如何重新启动呢?

3 如何唤醒

在中断进程里加入,或者别的进程里面加入
wake_up_interruptible(&queue) 

ref:

1    wait_event_interruptible(queue, condition) 使用方法

http://blog.csdn.net/allen6268198/article/details/8112551

by makin email to : 28044280@qq.com for discusstion.

wait_event_interruptible 在驱动中的应用相关推荐

  1. Linux设备驱动开发-linux驱动中的阻塞访问方式

    阻塞与非阻塞是设备访问的两种不同的模式.什么是阻塞操作呢?其是指在执行设备操作的时候,如果不能获得资源,则挂起进程直到满足可操作的条件后再进行操作.而非阻塞操作则是在进程不能进行设备操作时,并不挂起到 ...

  2. Linux 设备驱动中的 I/O模型(一)—— 阻塞和非阻塞I/O

    在前面学习网络编程时,曾经学过I/O模型 Linux 系统应用编程--网络编程(I/O模型),下面学习一下I/O模型在设备驱动中的应用. 回顾一下在Unix/Linux下共有五种I/O模型,分别是: ...

  3. 设备驱动中的中断问题及实例解析

    1.关于设备驱动中的中断问题 操作系统为了使得快速设备和慢速设备合适工作,需要中断来提高效率,一个外设要使用一个中断就必须注册中断号,获得跟这个中断号相关的一些资源,并且在中断发生的时候内核可以进行一 ...

  4. linux write引起进程挂起,Linux设备驱动中的阻塞与非阻塞总结

    Linux设备驱动中的阻塞与非阻塞总结 阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作. 非阻塞操作的进程在不能进行设备操作时,并不挂起.被挂起的进程进入sl ...

  5. linux 设备驱动阻塞,详解Linux设备驱动中的阻塞与非阻塞

    「阻塞与非阻塞定义」阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作.被挂起的进程进入sleep 状态,被从调度器的运行队列移走,直到等待的条件被满足. 非阻塞 ...

  6. Linux 设备驱动中的阻塞与非阻塞 I/O

    阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作.被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足.而非阻塞操作的进程在不能进行设备操作时 ...

  7. linux设备驱动中的阻塞与非阻塞(一)

    这两天在搞linux驱动的阻塞和非阻塞,困扰了两天,看了不少博客,有了点自己的想法,也不知是否对错,但还是写写吧,让各位大神给我指点指点.       首先说说什么是阻塞和非阻塞的概念:阻塞操作就是指 ...

  8. Linux设备驱动中的阻塞和非阻塞IO

    这篇文章我们来了解下Linux设备驱动中阻塞和非阻塞. 阻塞:阻塞是指执行设备操作时,如果不能获得设备资源,则挂起进程,是进程进入休眠模式,直到设备资源可以获取. 非阻塞:非阻塞是在不能获取设备资源时 ...

  9. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

    前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...

最新文章

  1. 19.Linux_Jni多线程操作
  2. 【linux基础】重命名文件和文件夹
  3. java.math.BigDecimal保留两位小数,保留小数,精确位数
  4. java 创建日程到期提醒_苹果“快捷指令”日程播报完美版
  5. img.item()跟img[x,y]
  6. Eclipse调试Android开发工具ADB
  7. Python学习--最完整的基础知识大全
  8. ELK+Kafka 企业日志收集平台(二)
  9. 使用bash判断PATH中是否存在某个路径
  10. activiti利弊_事件驱动的安全性的利弊
  11. 速芯科技完成1亿元人民币融资
  12. 图与图算法在实际中的应用
  13. 13、细说装饰器与闭包
  14. 上传excel,并保存excel内容
  15. ABAP function group和Tomcat library重复加载问题 1
  16. 第二十四章 异常和错误处理 6异常类与模板的关系
  17. 企业数字化转型,运营人员如何构建数字化运营能力?
  18. 图片去水印Inpaint5.2汉化破解便携版
  19. PDF文件不能打印的五种解决方案
  20. 阿里巴巴大数据实践:大数据建设方法论OneData

热门文章

  1. 面试刷题29:mysql事务隔离实现原理?
  2. java中的lambda表达式学习
  3. C# web项目中sql数据库转sqlite数据库
  4. HTML常用meta大全
  5. UC神马数据采集api
  6. 微信小程序开发---页面生命周期
  7. 【C语言】请输入一个n(n=10)并输出一个n行n列的杨辉三角
  8. nodejs的一些玩法
  9. Django module学习之模板
  10. phpstudy创建wordpress