A message for Linux.com registered users: We are in the process of making changes to the Linux forums. Starting Monday, 8/13/18 at 6:00 PM PT, you will be unable to access the forums. They will re-launch as soon as possible on Wednesday, 8/15/18 with new features and improved functionality. Thank you for your patience and stay tuned for the new improved forums.

April 28, 2014

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.

Click Here!