#include<linux/interrupt.h>
intrequest_irq(unsignedintirq,irqreturn_t(*handler)(),unsignedlongflags,constchar*dev_name,void
*dev_id);
voidfree_irq(unsignedintirq,void*dev_id);
调用这个注册和注销一个中断处理.
#include<linux/irq.h.h>
intcan_request_irq(unsignedintirq,unsignedlongflags);
这个函数,在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
报告硬件中断和安装的处理者的文件系统节点.
unsignedlongprobe_irq_on(void);
intprobe_irq_off(unsignedlong);
驱动使用的函数,当它不得不探测来决定哪个中断线被设备在使用.probe_irq_on的结果必
须传回给probe_irq_off在中断产生之后.probe_irq_off的返回值是被探测的中断号.
IRQ_NONE
IRQ_HANDLED
IRQ_RETVAL(intx)
从一个中断处理返回的可能值,指示是否一个来自设备的真正的中断出现了.
voiddisable_irq(intirq);
voiddisable_irq_nosync(intirq);
voidenable_irq(intirq);
驱动可以使能和禁止中断报告.如果硬件试图在中断禁止时产生一个中断,这个中断永远丢
失了.一个使用一个共享处理者的驱动必须不使用这个函数.
voidlocal_irq_save(unsignedlongflags);
voidlocal_irq_restore(unsignedlongflags);
使用local_irq_save来禁止本地处理器的中断并且记住它们之前的状态.flags可以被传递给
local_irq_restore来恢复之前的中断状态.
voidlocal_irq_disable(void);
voidlocal_irq_enable(void);
在当前处理器熵无条件禁止和使能中断的函数.
分享到:
相关推荐
LDD3学习笔记设备模型之底层实现(kobject,kset)[汇编].pdf
ldd code ldd3驱动源代码 ldd code ldd3驱动源代码
ldd3中文版、chmldd3中文版chm
LDD-LinuxDeviceDrivers#1书籍-一些书中的原始码和范例目录书籍#2 study--本人的linux学习以及驱动代码目录书籍学习Linux内核的设计与实现,包括文档和示例代码,文档与同步更新自己实现的一些linux内核的驱动代码...
本资源为ldd3详解,该书中详细介绍了ldd3的使用以及各种驱动的设置
LDD3配套源码,配合我的百度云分享的虚拟机可以直接编译运行(虚拟机另行在我上传的资源里下载,相关可以参考我的LDD3系列博客)
ldd3 中文
LDD2+LDD3 linux设备驱动
Linux 设备驱动 Edition 3 - LDD3中文版,学习linux必备之书,pdf格式
ldd3-examples-3.x, 在 linux 3.x 之后,端口LDD3源代码示例 ldd3-examples-3.xlinux 3 。x 之后LDD3源代码示例的端口背景LDD3是Linux设备驱动程序,第三版。 这是一本关于如何编写linux设备驱动程序的。 你可以从 ...
经典 LDD3,linux驱动开发 linux驱动开发
由于对Linux设备驱动程序设计的需求,所以前段时间在网上下载了LDD3的HTML格式文档,在看的时候感觉不太好看,同时为了打印方便,把它转化为PDF格式,所以在此与大家一起分享。 由于本资料不是本人自创,也是来自于...
这是ldd3的英文原版书以及相应例程的源码,希望对正在学习linux驱动的朋友们有所帮助
LDD3是linux驱动开发的基础入门级图书,适合刚接触linux驱动的新手学习。
主要是对LDD3中的实例进行测试,修改,调试。
linux device driver\ldd3英文版附源码.rar
LDD6410 S3C6410开发板原理图
linux LDD 3 LINUX设备驱动程序源码。。
由于ldd3 源码是基于linux-2.6.10编写的,最新内核接口以及数据结构都有变化,因此对于新手来说,书中源码无法编译正常通过,给学习增加了不少难度,本源码是结合网上修改以及个人整理的,能够在linux-2.6.32-21,...