2013-01-17 40 views
5

एक साझा इंटरप्ट लाइन के लिए, मेरे पास कई इंटरप्ट हैंडलर हो सकते हैं। कर्नेल अनुक्रमिक रूप से उस विशेष साझा लाइन के लिए सभी हैंडलर को बुलाएगा। जहां तक ​​मुझे पता चलता है कि प्रत्येक हैंडलर को कर्नेल को सूचित किया जाता है कि क्या यह सही हैंडलर लगाया जाना चाहिए या नहीं।एक साझा इंटरप्ट लाइन के लिए मैं कैसे इंटरप्ट हैंडलर का उपयोग करने के लिए खोज सकता हूं?

मेरे प्रश्न यह निर्धारित हैं कि यह कैसे निर्धारित किया जाता है, क्या यह एक मेमोरी मैप किए गए रजिस्टर की जांच करता है जो किसी विशेष डिवाइस की स्थिति बताता है या कोई अन्य हार्डवेयर तंत्र है? हैंडलर कैसे जानता है कि इसी डिवाइस ने बाधा जारी की है या नहीं?

क्या यह जानकारी इंटरप्ट नियंत्रक के माध्यम से रिले किया गया है जो डिवाइस और प्रोसेसर के बीच लाइन को बाधित करती है ??

+0

http://unix.stackexchange.com/questions/47306/how-does-the-linux-kernel-handle-shared-irqs –

उत्तर

3

कर्नेल अनुक्रमिक रूप से उस विशेष साझा लाइन के लिए सभी हैंडलर को बुलाएगा।

बिल्कुल। कहें देव 1 और देव 2 आईआरक्यू 10 साझा करते हैं। जब बाधा उत्पन्न होती है, तो इस लाइन के साथ पंजीकृत आईएसआर एक-एक करके बुलाए जाएंगे।

हमारे स्कैनारियो में, कहें कि देव 2 इंटरप्ट उत्पन्न कर रहा है। यदि देव 1 का आईएसआर पहले पंजीकृत है, तो उस आईएसआर को केवल पहले बुलाया जाता है। उस आईएसआर में, इंटरप्ट स्टेटस रजिस्टर को बाधा के लिए सत्यापित किया जाएगा। यदि कोई इंटरप्ट बिट सेट नहीं किया गया है तो हम पुष्टि कर सकते हैं कि बाधा Dev2 की नहीं है। तो अगला आईएसआर (यानी देव 1 का आईएसआर) कहा जाएगा।

अधिक जानकारी के लिए वापसी मूल्य IRQ_NONE/IRQ_HANDLED देखें।

हैंडलर कैसे जानता है कि इसी डिवाइस ने बाधा जारी की है या नहीं?

केवल इंटरप्ट स्थिति रजिस्टर पढ़कर।

क्या यह जानकारी इंटरप्ट नियंत्रक के माध्यम से रिले किया गया है जो डिवाइस और प्रोसेसर लाइन के बीच है ??

मुझे इस बारे में निश्चित नहीं है। लेकिन ओएस आईएसआर से रिटर्न वैल्यू के आधार पर आईएसआर को कॉल करने का ख्याल रखेगा।

+0

हाय Jeyram, अगर dev1 और dev2 एक ही डिवाइस प्रकार लेकिन अलग से कर रहे हैं डिवाइस (उदाहरण के लिए dev1 एक नियमित माउस है, कहें dev2 एक गेमिंग माउस है)। फिर यह डिवाइस प्रकार को जान सकता है लेकिन dev1 के लिए इंटरप्ट हैंडलर कैसे पुष्टि करेगा कि यह इसके वापसी मूल्य में सही हैंडलर नहीं है? – Rohit

+0

'वही डिवाइस प्रकार' ... आप दोनों उपकरणों के लिए एक ही ड्राइवर का मतलब है ??? – Jeyaram

+0

ओएस द्वारा उपयोग किए गए आईएसआर का वापसी मूल्य। अगली डिवाइस का आईएसआर नहीं। केवल वापसी मूल्य के आधार पर, ओएस तय करेगा कि उस आईआरक्यू लाइन के लिए पंजीकृत आईएसआर को कॉल या कॉल न करें। – Jeyaram