From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58246) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTcY9-0002C9-Mc for qemu-devel@nongnu.org; Mon, 06 Jun 2011 12:21:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QTcY6-0002kp-1I for qemu-devel@nongnu.org; Mon, 06 Jun 2011 12:21:09 -0400 Received: from fmmailgate02.web.de ([217.72.192.227]:33101) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTcY5-0002jj-I4 for qemu-devel@nongnu.org; Mon, 06 Jun 2011 12:21:05 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Mon, 6 Jun 2011 18:20:53 +0200 Message-Id: <1307377259-41434-5-git-send-email-andreas.faerber@web.de> In-Reply-To: <1307377259-41434-4-git-send-email-andreas.faerber@web.de> References: <1307377259-41434-1-git-send-email-andreas.faerber@web.de> <1307377259-41434-2-git-send-email-andreas.faerber@web.de> <1307377259-41434-3-git-send-email-andreas.faerber@web.de> <1307377259-41434-4-git-send-email-andreas.faerber@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: andreas.faerber@web.de Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [RFC 04/10] parallel: Allow to reconfigure ISA IRQ List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Andreas=20F=C3=A4rber?= , hpoussin@reactos.org, kraxel@redhat.com Signed-off-by: Andreas F=C3=A4rber --- hw/isa.h | 1 + hw/parallel.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diff --git a/hw/isa.h b/hw/isa.h index 2bd8c82..54698b5 100644 --- a/hw/isa.h +++ b/hw/isa.h @@ -43,6 +43,7 @@ void isa_mmio_init(target_phys_addr_t base, target_phys= _addr_t size); =20 /* parallel.c */ void parallel_isa_reconfigure_iobase(ISADevice *dev, uint32_t base); +void parallel_isa_reconfigure_irq(ISADevice *dev, uint32_t isairq); =20 /* dma.c */ int DMA_get_channel_mode (int nchan); diff --git a/hw/parallel.c b/hw/parallel.c index 5cb3856..a64e7c5 100644 --- a/hw/parallel.c +++ b/hw/parallel.c @@ -493,6 +493,18 @@ void parallel_isa_reconfigure_iobase(ISADevice *dev,= uint32_t base) } } =20 +void parallel_isa_reconfigure_irq(ISADevice *dev, uint32_t isairq) +{ + ISAParallelState *isa =3D DO_UPCAST(ISAParallelState, dev, dev); + ParallelState *s =3D &isa->state; + + if (isairq !=3D isa->isairq) { + isa_discard_irq(dev, isa->isairq); + isa->isairq =3D isairq; + isa_init_irq(dev, &s->irq, isa->isairq); + } +} + static const int isa_parallel_io[MAX_PARALLEL_PORTS] =3D { 0x378, 0x278,= 0x3bc }; =20 static int parallel_isa_initfn(ISADevice *dev) @@ -516,6 +528,7 @@ static int parallel_isa_initfn(ISADevice *dev) index++; =20 isa_init_irq(dev, &s->irq, isa->isairq); + qemu_register_reset(parallel_reset, s); =20 if (qemu_chr_ioctl(s->chr, CHR_IOCTL_PP_READ_STATUS, &dummy) =3D=3D = 0) { --=20 1.7.5.3