1.原型
request_threaded_irq(unsigned int irq, irq_handler_t handler,
irq_handler_t thread_fn,
unsigned long flags, const char *name, void *dev);
2.頭文件
linux/interrupt.h
3.功能
將中斷線程化,中斷將作爲內核線程運行,可被賦予不同的實時優先級。在負載較高時,中斷線程可以被掛起,以避免某些更高優先級的實時任務得不到及時響應
4.參數
參數 | 描述 |
---|---|
irq | 中斷號,所申請的中斷向量 |
handler | 中斷處理函數,在驅動中一般這個參數是NULL,爲NULL時使用默認的處理,這個相當於中斷的上半段 |
thread_fn | 中斷髮生時,如果handler爲NULL,就直接將thread_fn扔到內核線程中去執行 |
flags | 指定中斷屬性、中斷觸發方式(一般用宏定義表示)等,定義在linux/interrupt.h中 |
name | 指定中斷名字,用命令cat /proc/interrupts可查看系統中斷申請與使用情況 |
dev | 傳入中斷處理程序的參數,可以爲NULL,但在註冊共享中斷時,此參數不能爲NULL。該參數可作爲共享中斷時的中斷區別參數,還可以把其傳給一個結構體變量,用於保存一個設備的信息,使中斷處理函數可以獲得該設備的信息 |
5.返回值
函數運行正常時返回0,否則返回對應錯誤的負值。