Thanks for the reply. Then what is the irq number that is assigned to an io-apic pin? When writing a driver for a PCi device, how can I use the value in pci irq field to find the right irq no. for this device so I can call attach function in driver?

Chen

On Jul 28, 2012 10:24 AM, "Udo Steinberg" <udo@hypervisor.org> wrote:
On Fri, 27 Jul 2012 16:34:12 -0800 Chen Tian (CT) wrote:

CT> I have some basic questions about IO-APIC.  In the boot-up message, I can
CT> see this:
CT>
CT> IO-APIC[ 0]: pins 23
CT>   PIN[ 0m]: vector=20, del=0, dm=physical, dest=0 (high, edge)
CT>   PIN[ 1m]: vector=21, del=0, dm=physical, dest=0 (high, edge)
CT>   PIN[ 2m]: vector=22, del=0, dm=physical, dest=0 (high, edge)
CT>
CT> I understand this info is from IO-APIC redirection table. My question is
CT> what does vector means? Is that the interrupt number CPU is going to see
CT> when an interrupt request is sent from a pin? Or it's an irq number
CT> assigned to an IO-APIC pin?

It is the interrupt vector that the IOAPIC will send to the CPU when there
is interrupt activity on the respective pin. The vector is then used as an
index into the IDT, which tells the CPU where the interrupt handler can be
found. Which is why it starts at 0x20, because vectors 0x0-0x1f are reserved
for exceptions.

Cheers,
Udo

_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers