सेट अप करना मैं अपने कर्नेल सेट अप करने की कोशिश कर रहे कई ट्यूटोरियल और संदर्भों का पालन कर रहा हूं। मैं एक ऐसे ट्यूटोरियल में कुछ अपरिचित कोड में आया हूं जो इसे समझा नहीं रहा है। यह कोड सीधे मुझे बताया गया हूँ नक्शे है 16 IRQs (0-15)
ISR करने के लिए स्थानों 32-47
:आईआरक्यू मैपिंग
void irq_remap(void)
{
outportb(0x20, 0x11);
outportb(0xA0, 0x11);
outportb(0x21, 0x20);
outportb(0xA1, 0x28);
outportb(0x21, 0x04);
outportb(0xA1, 0x02);
outportb(0x21, 0x01);
outportb(0xA1, 0x01);
outportb(0x21, 0x0);
outportb(0xA1, 0x0);
}
outportb()
के लिए कोड इस प्रकार है, लेकिन मैं पहले से ही क्या अपने कर का एक स्पष्ट समझ है:
void outPortB(unsigned short port, unsigned char data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (port), "a" (data));
}
मैं उल्लेख करना चाहिए कि यह सुरक्षित मोड में x86 आर्किटेक्चर पर है। यह स्रोत कोड ठीक काम करता है और मैं समझता हूं कि यह क्या करता है, लेकिन मुझे नहीं पता कि यह कैसे करता है। क्या कोई मुझे बता सकता है कि यहां क्या हो रहा है, ताकि अगर मुझे इस पर विस्तार करने की ज़रूरत है तो मुझे पता चलेगा कि मैं क्या कर रहा हूं?
वाह, यह वही है जो मुझे चाहिए। धन्यवाद बंच! –