linux 驱动异步通知机制
来源:互联网 发布:mac里面照片怎么删除 编辑:程序博客网 时间:2024/06/06 03:27
参考文章:
linux驱动异步通知机制
应用程序:
1)signal(SIGIO, sig_handler);
调用signal函数指定信号SIGIO去处理 sig_handler2)fcntl(fd, F_SET_OWNER, getpid());
指定当前进程,这样内核才知道将信号发给那个进程3)f_flags = fcntl(fd, F_GETFL);
fcntl(fd, F_SETFL, f_flags | FASYNC);
void sig_hanler(int signo)
{
处理相关操作
}
最好利用 sigaction
struct sigaction aciton;
memset(actiton,0,sizeof(action));action.sa_handler = sig_handler;action.sa_flags = 0;sigaction(SIGIO,&action,NULL);
驱动:
struct my_dev{
struct cdev cdev;
struct fasync_struct *async_queue;
}
利用udev自动创建设备节点
int my_fasync (int fd, struct file *filp, int mode)
{
struct my_dev *dev = filp->private_data;
return fasync_helper(fd, filp, mode, &dev->async_queue);
}
当我们的设备可写时,
if (dev->async_queue){
kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
}
当关闭设备时,my_fasync(-1, filp, 0);
在struct file_operations ={
.fasync = my_fasync,
};
0 0
- linux 驱动异步通知机制
- 【Linux 驱动】异步通知机制
- linux设备驱动开发-异步通知机制
- linux驱动的异步同步通知机制
- 驱动中的异步通知机制
- 驱动中的异步通知机制
- fasync驱动异步通知机制
- linux设备驱动--异步通知
- Linux驱动中的异步通知
- linux设备驱动异步通知
- linux 驱动之异步通知
- linux驱动之异步通知
- linux中驱动异步通知
- Linux驱动中的异步通知
- 按键驱动深化-异步通知机制
- 设备驱动之异步通知机制
- 基于异步通知机制的按键驱动
- Linux驱动开发之八-----按键驱动(异步通知机制)
- 黑马程序员--Java面向对象
- 《算法导论》中求最大子数组的C++实现
- POJ 3414 Pots (DFS || BFS)
- 黑马程序员-------Java笔记-------单例模式
- HTML页面跳转的5种方法
- linux 驱动异步通知机制
- org.hibernate.PersistentObjectException: detached entity passed to persist:
- [LeedCode OJ]#53 Maximum Subarray
- Pixhawk---超声波模块添加说明(I2C方式)
- 算法复杂度的计算
- 齐次坐标
- ora-28002:the password will exprire n days 解决方法
- tomcat内存不足
- Android的硬件加速