From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH 2/3] kvm tools: Add kvm__trigger_irq() Date: Thu, 11 Aug 2011 15:43:55 +0300 Message-ID: <1313066636-28332-2-git-send-email-levinsasha928@gmail.com> References: <1313066636-28332-1-git-send-email-levinsasha928@gmail.com> Cc: kvm@vger.kernel.org, mingo@elte.hu, asias.hejun@gmail.com, gorcunov@gmail.com, Sasha Levin To: penberg@kernel.org Return-path: Received: from mail-fx0-f46.google.com ([209.85.161.46]:38340 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755713Ab1HKMpF (ORCPT ); Thu, 11 Aug 2011 08:45:05 -0400 Received: by mail-fx0-f46.google.com with SMTP id 19so1631202fxh.19 for ; Thu, 11 Aug 2011 05:45:05 -0700 (PDT) In-Reply-To: <1313066636-28332-1-git-send-email-levinsasha928@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: Add a helper function to trigger an IRQ. This function is usefull when an IRQ line has to be raised and lowered such as when using MSI-X. Signed-off-by: Sasha Levin --- tools/kvm/include/kvm/kvm.h | 1 + tools/kvm/kvm.c | 6 ++++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/tools/kvm/include/kvm/kvm.h b/tools/kvm/include/kvm/kvm.h index 1cbe3c7..ccb20bf 100644 --- a/tools/kvm/include/kvm/kvm.h +++ b/tools/kvm/include/kvm/kvm.h @@ -63,6 +63,7 @@ void kvm__setup_bios(struct kvm *kvm); void kvm__start_timer(struct kvm *kvm); void kvm__stop_timer(struct kvm *kvm); void kvm__irq_line(struct kvm *kvm, int irq, int level); +void kvm__irq_trigger(struct kvm *kvm, int irq); bool kvm__emulate_io(struct kvm *kvm, u16 port, void *data, int direction, int size, u32 count); bool kvm__emulate_mmio(struct kvm *kvm, u64 phys_addr, u8 *data, u32 len, u8 is_write); void kvm__register_mem(struct kvm *kvm, u64 guest_phys, u64 size, void *userspace_addr); diff --git a/tools/kvm/kvm.c b/tools/kvm/kvm.c index 740851d..be4a02a 100644 --- a/tools/kvm/kvm.c +++ b/tools/kvm/kvm.c @@ -676,6 +676,12 @@ void kvm__irq_line(struct kvm *kvm, int irq, int level) die_perror("KVM_IRQ_LINE failed"); } +void kvm__irq_trigger(struct kvm *kvm, int irq) +{ + kvm__irq_line(kvm, irq, 1); + kvm__irq_line(kvm, irq, 0); +} + void kvm__dump_mem(struct kvm *kvm, unsigned long addr, unsigned long size) { unsigned char *p; -- 1.7.6