Linux共享irq的實現描述

2022-04-23 01:29:52 字數 843 閱讀 7743

linux可以讓多個裝置共享乙個中斷號,而且共享同一中斷的中斷處理程式形成乙個鍊錶,核心對每個中斷處理程式都要執行,那麼,沒有產生中斷的裝置本

該靠邊站的,它的中斷處理程式也被執行了?到底是怎麼會事?實際上:

共享的處理程式與非共享的處理程式在註冊和執行方式上比較相似,但差異主要有以下三處:

* request_irq()的引數flags必須設定sa_shirq標誌。

* 對每個註冊的中斷處理程式來說,dev_id引數必須唯一。指向任一裝置結構的指標就可以滿足這一要求;通常會選擇裝置結構,因為它是唯一的,而且

中斷處理程式可能會用到它。不能給共享的處理程式傳遞null值。

* 中斷處理程式必須能夠區分它的裝置是否真的產生了中斷。這既需要硬體的支援,也需要處理程式中有相關的處理邏輯。如果硬體不支援這一功能,那中斷處

理程式肯定會束手無策,它根本沒法知道到底是與它對應的裝置發出了這個中斷,還是共享這條中斷線的其他裝置發出了這個中斷。

所有共享中斷線的驅動程式都必須滿足以上要求。只要有任何乙個裝置沒有按規則進行共享,那麼中斷線就無法共享了。指定sa_shirq標誌以呼叫

request_irq()時,只有在以下兩種情況下才可能成功:中斷線當前未被註冊,或者在該線上的所有已註冊處理程式都指定了sa_shirq。注

意,在這一點上2.6與以前的核心是不同的,共享的處理程式可以混用sa_ interrupt。

核心接收乙個中斷後,它將依次呼叫在該中斷線上註冊的每乙個處理程式。因此,乙個處理程式必須知道它是否應該為這個中斷負責。如果與它相關的裝置並沒有

產生中斷,那麼處理程式應該立即退出。這需要硬體裝置提供狀態暫存器(或類似機制),以便中斷處理程式進行檢查。毫無疑問,大多數硬體都提供這種功能。

linux 實現共享檔案共享

linux和winxp資訊共享 samba伺服器的安裝和配置 步驟 1 查詢是否安裝了samba服務 rpm q samba rpm qa grep samba service smb start 2 安裝samba a 掛載映象 mount t iso9660 iso mymedia o loop...

Linux檔案共享的實現方式

前兩天跟老師去北京開了乙個會議,好久沒學習了,今天才回學校,其中的辛酸就不說了。來正文 1 什麼是檔案共享 1 檔案共享就是同乙個檔案 同乙個檔案指的是同乙個inode,同乙個pathname 被多個獨立的讀寫體 幾乎可以理解為多個檔案描述符 去同時 乙個開啟尚未關閉的同時,另乙個去操作 操作。2 ...

Linux之間實現目錄共享

最近專案中需要將一台伺服器上的檔案共享到其他伺服器上 作為筆記記錄一下 在伺服器0.0.0.1中 檔案所在的伺服器ip位址 首先檢查nfs及portmap兩個軟體包是否安裝 ll etc rc.d init.d nfs ll etc rc.d init.d portmap 如果沒有找到,可以用以下命...