From mboxrd@z Thu Jan 1 00:00:00 1970 From: muli@il.ibm.com Subject: [PATCH 3/6] device assignment: introduce functions to correlate pin number and irq Date: Tue, 28 Oct 2008 12:06:47 +0200 Message-ID: <1225188410-2222-4-git-send-email-muli@il.ibm.com> References: <1225188410-2222-1-git-send-email-muli@il.ibm.com> <1225188410-2222-2-git-send-email-muli@il.ibm.com> <1225188410-2222-3-git-send-email-muli@il.ibm.com> Cc: kvm@vger.kernel.org, anthony@codemonkey.ws, weidong.han@intel.com, benami@il.ibm.com, muli@il.ibm.com, amit.shah@redhat.com, allen.m.kay@intel.com To: avi@redhat.com Return-path: Received: from mtagate2.de.ibm.com ([195.212.17.162]:35924 "EHLO mtagate2.de.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751650AbYJ1KG4 (ORCPT ); Tue, 28 Oct 2008 06:06:56 -0400 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate2.de.ibm.com (8.13.1/8.13.1) with ESMTP id m9SA6sRn002746 for ; Tue, 28 Oct 2008 10:06:54 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id m9SA6rwG3477514 for ; Tue, 28 Oct 2008 11:06:54 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m9SA6roU014603 for ; Tue, 28 Oct 2008 11:06:53 +0100 In-Reply-To: <1225188410-2222-3-git-send-email-muli@il.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: From: Amit Shah Signed-off-by: Amit Shah Signed-off-by: Muli Ben-Yehuda --- qemu/hw/pc.h | 3 +++ qemu/hw/piix_pci.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 0 deletions(-) diff --git a/qemu/hw/pc.h b/qemu/hw/pc.h index 1f63678..3edf62f 100644 --- a/qemu/hw/pc.h +++ b/qemu/hw/pc.h @@ -112,6 +112,9 @@ void i440fx_init_memory_mappings(PCIDevice *d); int piix4_init(PCIBus *bus, int devfn); +int piix3_get_pin(int pic_irq); +int piix_get_irq(int pin); + /* vga.c */ enum vga_retrace_method { VGA_RETRACE_DUMB, diff --git a/qemu/hw/piix_pci.c b/qemu/hw/piix_pci.c index 6fbf47b..dc12c8a 100644 --- a/qemu/hw/piix_pci.c +++ b/qemu/hw/piix_pci.c @@ -243,6 +243,25 @@ static void piix3_set_irq(qemu_irq *pic, int irq_num, int level) } } +int piix3_get_pin(int pic_irq) +{ + int i; + for (i = 0; i < 4; i++) + if (piix3_dev->config[0x60+i] == pic_irq) + return i; + return -1; +} + +int piix_get_irq(int pin) +{ + if (piix3_dev) + return piix3_dev->config[0x60+pin]; + if (piix4_dev) + return piix4_dev->config[0x60+pin]; + + return 0; +} + static void piix3_reset(PCIDevice *d) { uint8_t *pci_conf = d->config; -- 1.5.6.5