释放中断服务函数
void free_irq (unsigned int irq, void *dev_id);
|
变量 |
作用 |
|
irq |
将要注销掉的中断服务函数的中断号; |
|
dev_id |
值指定与"request_irq()"函数中使用的"dev_id"值相同的值 |
中断处理例程的返回值说明
中断处理例程应当返回一个值指示是否真正处理了一个中断.如果处理例程发现设备确实需要处理,应当返回"IRQ_HANDLED"; 否则返回值"IRQ_NONE".
下面是<linux/irqreturn.h>文件的内容,更为详细的说明.
#ifndef _LINUX_IRQRETURN_H
#define _LINUX_IRQRETURN_H
/**
* enum irqreturn
* @IRQ_NONE interrupt was not from this device
* @IRQ_HANDLED interrupt was handled by this device
* @IRQ_WAKE_THREAD handler requests to wake the handler thread
*/
enum irqreturn {
IRQ_NONE,
IRQ_HANDLED,
IRQ_WAKE_THREAD,
};
typedef enum irqreturn irqreturn_t;
#define IRQ_RETVAL(x) ((x) != IRQ_NONE)
#endif