[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] About GSI and IRQ?
Hi all, I am confused by the concept GSI and IRQ. what I figure out is as below, IRQ is for PIC, PIN is for IOAPIC. GSI is short for "Global System Interrupt", it is the unique number of one interrupt. GSI=GSI base + pin. 16 IRQ of ISA are mapped to GSI[0,15] if number > 15, IRQ = GSI. Vector is the concept of CPU, it is the index of IDT. I found one function like int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val) { ... irq = apic_pin_2_gsi_irq(apic, pin); ... } static int apic_pin_2_gsi_irq(int apic, int pin) { int idx; if (apic < 0) return -EINVAL; idx = find_irq_entry(apic, pin, mp_INT); return idx >= 0 ? pin_2_irq(idx, apic, pin) : apic_gsi_base(apic) + pin; } what make me most confued is the function name of "apic_pin_2_gsi_irq", is the returned value a GSI or a IRQ? when to use GSI? when to use IRQ? anyone can explain it for me ? or maybe give me some URL to read. -- Best Regards, yandong _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |