On 29 November 2012 17:16, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: > Courtesy of Christoffer Dall. > > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > --- > arch/arm/kvm/vgic.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/kvm/vgic.c b/arch/arm/kvm/vgic.c > index 184652b..7b8afec 100644 > --- a/arch/arm/kvm/vgic.c > +++ b/arch/arm/kvm/vgic.c > @@ -36,7 +36,8 @@ > * something is pending > * - VGIC pending interrupts are stored on the vgic.irq_state vgic > * bitmap (this bitmap is updated by both user land ioctls and guest > - * mmio ops) and indicate the 'wire' state. > + * mmio ops, and other in-kernel peripherals such as the > + * arch. timers) and indicate the 'wire' state. > * - Every time the bitmap changes, the irq_pending_on_cpu oracle is > * recalculated > * - To calculate the oracle, we need info for each cpu from > @@ -1111,6 +1112,20 @@ out: > return ret; > } > > +/** > + * kvm_vgic_inject_irq - Inject an IRQ from a device to the vgic > + * @kvm: The VM structure pointer > + * @cpuid: The CPU for PPIs > + * @irq_num: The IRQ number that is assigned to the device > + * @level: Edge-triggered: true: to trigger the interrupt > + * false: to ignore the call > + * Level-sensitive true: activates an interrupt > + * false: deactivates an interrupt Is that 'Level-sensitive' line misindented, or is that my mail client being unhelpful with tabs? > + * > + * The GIC is not concerned with devices being active-LOW or active-HIGH for > + * level-sensitive interrupts. You can think of the level parameter as 1 > + * being HIGH and 0 bing LOW and all devices being active-HIGH. bing! > + */ > int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int irq_num, > bool level) > { > -- -- PMM _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm