Get lost in Fiasco.OC regarding the io-apic IRQ number and CPU interrupt numbers

Chen Tian chen.tian at
Tue Jul 31 02:42:25 CEST 2012


As confirmed by Udo, I thought the vector of an IO-APIC pin is the one used
to index idt, which is from 0x20-0x37. But I just checked the idt using
kernel debugger and found that many entries between 0x20 and 0x37 are
marked as reserved. Several defined ones can be found in entry.S. However,
I noticed that 48 entries from 0x50 to 0x7f are actually defined. Are those
for the 48 pins in my two IO-APICs?  Why have the vectors changed? And
where can I found the corresponding CPU interrupt handlers?

Another thing that confuses me is that th function  "irq_interrupt" in file
"dirq-ia32-ux.cpp". Where does it get called? I found one call site in
entry.S, which seems to use an interrupt number (int - 0x20) as the first
parameter. But why this number is used as a pointer that pointing to an irq

I must have missed something. I would really appreciate it if someone can
answer my questions.  Thanks.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the l4-hackers mailing list