liunx驱动----异步通知

查询:消耗资源

中断:read 一直要去读
poll :指定起始时间
异步通知
signal 测试程序
include <stdio.h>
include <signal.h>void my_signal(int signum)
{static unsigned int cnt;printf("signum = %d, %d timer\n",signum ,++cnt);//liunx 命令行中是行缓冲的。
}
int main(int argc,char **argv)
{signal(SIGUSR1,my_signal);while(1){sleep(1000);}return 0;
}
kill -USR1 PID  发送信号给进程

 

信号的要点
  1. 先注册一个信号处理函数 signal(SIGUSR1,my_signal);
  2. 谁来发送信号
  3. 发给谁
  4. 谁来接受信号
目标:按下按键时驱动程序通知应用程序
  1. 应用程序注册信号处理函数
  2. 谁发送信号:驱动程序
  3. 发给谁:发给应用程序 app=>告诉驱动自己的PID
  4. 怎么发:kill_fasync()

在应用程序中:

signal(SIGIO,my_signal);//开启异步通知
fcntl(fd, F_SETOWN, getpid());//获取自身的PID getpid() 也就是确定发给谁这个问题
Oflags = fcntl(fd, F_GETFL); //获取当前的flag
fcntl(fd, F_SETFL, Oflags | FASYNC);//修改当前Flag 设置为异步通知的Flag
在驱动程序中
通知应用程序有信号来了
fasync_helper(fd, file, on, &button_signal); 的目的是为了 初始化 button_signal
button_signal 在文件中定义:static struct fasync_struct *button_signal;
 
 
目的:通过驱动程序来通知应用程序 来读某些东西
 

转载于:https://www.cnblogs.com/hjxzjp/p/10493119.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试官: 用css实现android系统的loading动画

源码: github.com/any86/any-u… ios/android web常用的loading图标有2种, 一种是ios的"菊花", 一种是android的"环". 今天我们用svg实现android的"环"动画, 下节课实现ios的"菊花". 注意: gif帧数少的原因, 实际动画效果是很平滑的.d…

2018-06-29 西游记主题Python入门示例尝试-数据结构 5.1-5.1.2

(见前: 中文代码示例视频演示Python入门第五章 数据结构 仍然基于官方文档, 欢迎建议(尤其是如何取材). 5. Data Structures - More on Lists 列表详述 >>> 人物 [佛, 妖, 凡人, 菩萨, 妖, 凡人] >>> 人物.count(妖) 2 >>> 人物.count(圣人) 0 >…

Niginx 集群负载均衡策略

Niginx 集群负载均衡策略 所需物料 1.Nginx服务 步骤略 本人 nginx version: nginx/1.16.0 2.Java Servlet 测试项目 新建java web 项目&#xff0c;项目名称为&#xff1a;tt import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annot…

C#循环给多个控件赋值

需要给 多个 文本框重新赋值 1 textBox1.Text"ss"; 2 3 textBox2.Text"ss"; 4 5 textBox999.Text"ss"; 6 7 textBox99999.Text"ss"; 这样太麻烦&#xff0c;控件过多不方便写 通过遍历 一次性赋值&#xff0c;再多也不怕了 将所有T…

记号一次更换IBM X3650M4主板后RAID无法启动的解决

https://wenku.baidu.com/view/9d503ef367ec102de2bd89d7.html 强烈感谢上面分享文档的大侠&#xff01;&#xff01; 1、更换主板后&#xff0c;linux系统&#xff0c;无法加载引导。需要设置主板的启动项 2、选择boot manager&#xff0c;进到下面的画面 3、选择add boot opt…

关于REST API设计的一些小经验

版权声明&#xff1a;转载时请以超链接形式标明文章原始出处和作者信息及本声明http://phoenixtoday.blogbus.com/logs/45855234.html 最近小组里有一些关于REST API设计的讨论&#xff0c;有些收获&#xff0c;打算在这里写一下。通常来讲设计第一个版本的REST API并不难&…

1037 在霍格沃茨找零钱

题目传送门&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232 题解&#xff1a; #include<iostream> using namespace std;int main() {int Galleon1, Sickle1, Knut1, Galleon2, Sickle2, Knut2;char c;cin >> Galleon…

我对创业和管理的一些看法

创业&#xff0c;对于刚工作的人&#xff0c;会比较兴奋&#xff0c;因为创业充满想象力&#xff1b;对于工作几年的人&#xff0c;会比较向往&#xff0c;因为压抑得太久。其实&#xff0c;创业和就业一样&#xff0c;只是实现自己人生价值的两种方式&#xff0c;关键是心态问…

关于Anaconda的环境和包管理

Anaconda相对于原生python解释器具有更好的包管理功能&#xff0c;它有一个env文件夹&#xff0c;里面包含所要管理的所有环境&#xff1b;日常操作时我们可能会使用pytorch、Tensorflow等多个环境&#xff0c;由于每个环境对Python的包的兼容性都不一样&#xff0c;所以我们可…

WCF basicHttpBinding之Message Security Mode

原创地址&#xff1a;http://www.cnblogs.com/jfzhu/p/4067873.html 转载请注明出处 前面的文章《WCF Security基本概念》介绍了WCF的security mode&#xff0c;简单说Transport是transport级别上的加密&am…

战略游戏

题目描述 Bob喜欢玩电脑游戏&#xff0c;特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡&#xff0c;城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵&#xff0c;使得这些士兵能了望到所有的路。 注意&#xff0…

Vue语法学习第三课——计算属性

模板内的表达式非常便利&#xff0c;但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。对于任何复杂逻辑&#xff0c;都应当使用计算属性。 <div id"example"><p>original message : "{{message}}"</p&…

云计算学习资料分享:type查看命令

type 查看命令类型&#xff0c;例如该命令是alias&#xff0c;还是内置命令&#xff0c;还是某个文件&#xff0c;还是关键字 哪种神仙&#xff1a;天上还是地上&#xff0c;还是水里游的 [roottianyun ~]# type ll ll is aliased to ls -l --colorauto [roottianyun ~]# type …

neo4j删除所有节点

MATCH (n)OPTIONAL MATCH (n)-[r]-()DELETE n,r转载于:https://www.cnblogs.com/luoganttcc/p/10525189.html

Hadoop RPC实例

本文发表于本人博客。 上次写了个hadoop伪分布环境搭建的笔记了&#xff0c;今天来说下hadoop分布式构建的基础RPC&#xff0c;这个RPC在提交Job任务的时候底层就是创建了RPC来实现远程过程调用服务端。 我们首先可以通过Job的waitForCompletion(boolean verbose)方法来跟踪代码…

Django 模板语言 标签

前言&#xff1a;django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。 &#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;深度变量的查找&#xff08;万能的句点号&#xff09; 在 Django 模板中遍历复杂数据结构的关键是…

电子书下载:Illustrated C# 2012 4th

下载&#xff1a;http://www.ctdisk.com/file/9015906转载于:https://www.cnblogs.com/MaxWoods/archive/2012/08/26/2657752.html

关于83版射雕英雄传

今天无意中看到网上一群人关于83版射雕的一些争论.或许一些现在的年轻人不喜欢83版射雕,说那太老土了,但想想那个时代的条件,能拍出这样的片子,是非常不错的,而且我觉得83版射雕也是最忠于原著的,跟后来的翻版比较,虽然从画面效果,人物服装方面存在差距,但这都是由于历史原因和…

ZOJ 3735 Josephina and RPG

思路&#xff1a;dp[i][j]:第i轮打完后&#xff0c;决定以j阵容打下一轮 保持原有阵容&#xff1a;dp[ i ][ j ] dp[ i - 1 ][ j ] * p [ j ][ s [ i ] ] 换成第i轮怪的阵容: for(int k0;k<r;k)dp[i][j]max(dp[i][j],dp[i-1][k]*p[k][s[i]]) 优化&#xff1a;用滚动数组&am…

4~20mA电流输出芯片XTR111完整电路(转)

源&#xff1a; 4~20mA电流输出芯片XTR111完整电路转载于:https://www.cnblogs.com/LittleTiger/p/10511115.html