static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, bool line_status) { struct kvm_ioapic *ioapic = kvm->arch.vioapic; return kvm_ioapic_set_irq(ioapic, e->irqchip.pin, irq_source_id, level, line_status); }
static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level) { struct kvm_ioapic *ioapic = kvm->arch.vioapic; level = kvm_irq_line_state(&ioapic->irq_states[e->irqchip.pin], irq_source_id, level); return kvm_ioapic_set_irq(ioapic, e->irqchip.pin, level); }
/* This should be called with the kvm->lock mutex held */ void kvm_set_irq(struct kvm *kvm, int irq, int level) { /* Not possible to detect if the guest uses the PIC or the * IOAPIC. So set the bit in both. The guest will ignore * writes to the unused one. */ kvm_ioapic_set_irq(kvm->arch.vioapic, irq, level); #ifdef CONFIG_X86 kvm_pic_set_irq(pic_irqchip(kvm), irq, level); #endif }
static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int level) { return kvm_ioapic_set_irq(kvm->arch.vioapic, e->irqchip.pin, level); }