LDD3学习笔记(13):中断处理
来源:互联网 发布:pc游戏优化工具 编辑:程序博客网 时间:2024/05/16 08:35
int request_irq(unsigned int irq, irqreturn_t (*handler)( ), unsigned long flags, const char *dev_name, void
*dev_id);
void free_irq(unsigned int irq, void *dev_id);
调用这个注册和注销一个中断处理.
#include <linux/irq.h.h>
int can_request_irq(unsigned int irq, unsigned long flags);
这个函数, 在 i386 和 x86_64 体系上有, 返回一个非零值如果一个分配给定中断线的企图成功.
#include <asm/signal.h>
SA_INTERRUPT
SA_SHIRQ
SA_SAMPLE_RANDOM
给 request_irq 的标志. SA_INTERRUPT 请求安装一个快速处理者( 相反是一个慢速的).
SA_SHIRQ 安装一个共享的处理者, 并且第 3 个 flag 声称中断时戳可用来产生系统熵.
/proc/interrupts
/proc/stat
报告硬件中断和安装的处理者的文件系统节点.
unsigned long probe_irq_on(void);
int probe_irq_off(unsigned long);
驱动使用的函数, 当它不得不探测来决定哪个中断线被设备在使用. probe_irq_on 的结果必
须传回给 probe_irq_off 在中断产生之后. probe_irq_off 的返回值是被探测的中断号.
IRQ_NONE
IRQ_HANDLED
IRQ_RETVAL(int x)
从一个中断处理返回的可能值, 指示是否一个来自设备的真正的中断出现了.
void disable_irq(int irq);
void disable_irq_nosync(int irq);
void enable_irq(int irq);
驱动可以使能和禁止中断报告. 如果硬件试图在中断禁止时产生一个中断, 这个中断永远丢
失了. 一个使用一个共享处理者的驱动必须不使用这个函数.
void local_irq_save(unsigned long flags);
void local_irq_restore(unsigned long flags);
使用 local_irq_save 来禁止本地处理器的中断并且记住它们之前的状态. flags 可以被传递给
local_irq_restore 来恢复之前的中断状态.
void local_irq_disable(void);
void local_irq_enable(void);
在当前处理器熵无条件禁止和使能中断的函数.
- LDD3学习笔记(13):中断处理
- [LDD3阅读笔记]中断处理
- LDD3学习-第十章-中断处理<一>
- LDD3学习-第十章-中断处理<二>
- ldd3学习之七:中断处理
- ldd3学习之七:中断处理
- LDD3读书笔记----中断处理
- [LDD3速记]_中断处理
- LDD3读书笔记(第7章 中断处理)
- 中断处理学习笔记
- 汇编--学习笔记(十三)-中断及中断处理程序
- LDD3学习笔记(7):调试技术
- LDD3学习笔记(11):内存分配
- LDD3学习笔记(15):PCI驱动
- LDD3学习笔记(16):USB驱动
- LDD3学习笔记(19):块驱动
- LDD3学习笔记(20):网络驱动
- LDD3学习笔记(21):tty驱动
- 实现两个Spinner互相关联
- 装饰器模式
- Android TextView 超链接
- qt model删除选中的记录异常问题
- js 设置窗口为最大化
- LDD3学习笔记(13):中断处理
- 改变自己pc的ip地址
- (hdu 1071)The area
- 主成分分析方法
- WPF Treeview 学习 图标,checkbox,右键菜单
- 小学期项目熬夜完成
- android上安装perl(sl4a)
- NoSQL生态系统
- VC++对话框中添加状态栏的方法