Re: In kernel PIC support: kernel patch

Avi Kivity
2007-06-21T16:31:59Z

Gregory Haskins wrote:
> 1) KVM_ISA_INTERRUPT: In level-1 mode, this API allows the userspace
> pic to dispatch a vector to the kernel. In level-2 mode, this allows
> any userspace app to tickle an isa based irq line (which feeds into the
> inputs of the PIC and IOAPIC. In other words, a level-2 based userspace
> would substitute KVM_ISA_INTERRUPT for pic_set_irq().
>
>

Wait. Looks like APIs are changing meaning according to some mode.
Confusion.

How about:

KVM_INTERRUPT == inject this vector now
KVM_EXTINT == drives the processor's interrupt pin (this is handled by
the lapic code). input is a vector and type
KVM_ISA_INTERRUPT == drives the irq inputs to the PIC. Input is line number.
KVM_IOAPIC_INTERRUPT == drives the irq inputs to the IOAPIC. Input is
line number.
KVM_APIC_MESSAGE == do something to the apic

That way, there is no mode (at least in the code), and the APIs keep
their meaning.

Note that if an irq line is wired to both the ioapic and the PIC, we may
be better off having a single ioctl that can combine the ISA and IOAPIC
variants (driving two inputs at once).

Eddie, is that what you were driving at in your simplification attempt?

--
error compiling committee.c: too many arguments to function