2013-07-22 63 views
4

期間(由羅伯特·愛的Linux內核開發)讀的書頁號:119我"The interrupt handler is normally marked static because it is never called directly from another file."爲什麼做出中斷處理程序static.is有必要

E,G

static irqreturn_t intr_handler(int irq, void *dev) 

但爲什麼它是這樣的,我懷疑這個函數將會被內核調用,如果我們把它變成靜態的,那麼內核將如何調用它。

回答

5

根據this,函數的使用方式是通過「註冊」它與內核。也就是說,有一個函數,如InstallIntHdlr,您可以調用它並將指針傳遞給您的處理函數。內核然後可以使用該指針來調用函數本身。

我的猜測,雖然我不確定這個,但static被用來強制正確使用中斷處理程序。也就是說,因爲靜態函數不能從其他文件中調用,所以它會強制你傳遞一個指針給它,而不是直接調用它。

+0

感謝您的答覆。我有一些提示 – pradipta

相關問題