Welcome to the Linux Foundation Forum!

Doubt in Interrupt subsystem initialization.



I am trying to understand interrupts for x86 architecture, I have few doubts while checking init_IRQ() function @ arch/x86/kernel/irqinit.c.

1) init_IRQ() function is calling native_init_IRQ() function at the end. Inside native_init_IRQ() function following code is updating the IDT with interrupt array entry.

if (!test_bit(i, used_vectors))

set_intr_gate(i, interrupt[i-FIRST_EXTERNAL_VECTOR]);

I have following doubts after seeing the above code snippet.

Doubt 1) Where this interrupt array was declared/defined?

Doubt 2) While registering ISR using request_irq, how the ISR will be updated in the interrupt array?

Could you please help me to understand interrupt subsystem initialization.

Thanks in advance.


Upcoming Training