From patchwork Mon Sep 3 10:03:20 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 181386 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id CF7952C008A for ; Tue, 4 Sep 2012 02:27:59 +1000 (EST) Received: from localhost ([::1]:47022 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8ZVF-0004rm-Pu for incoming@patchwork.ozlabs.org; Mon, 03 Sep 2012 12:27:57 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42388) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8ZUr-0004Tm-Nz for qemu-devel@nongnu.org; Mon, 03 Sep 2012 12:27:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T8ZUn-0003if-PH for qemu-devel@nongnu.org; Mon, 03 Sep 2012 12:27:33 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:11499) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8ZUn-0003hd-Kd for qemu-devel@nongnu.org; Mon, 03 Sep 2012 12:27:29 -0400 X-IronPort-AV: E=Sophos;i="4.80,360,1344211200"; d="scan'208";a="206949215" Received: from ftlpmailmx01.citrite.net ([10.13.107.65]) by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5; 03 Sep 2012 16:27:29 +0000 Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012 12:27:28 -0400 From: Julien Grall To: avi@redhat.com, jan.kiszka@siemens.com Date: Mon, 3 Sep 2012 11:03:20 +0100 Message-ID: <503f4717bc2795578e5fe43b6fcceb2d74dfdc16.1346665074.git.julien.grall@citrix.com> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: References: MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 66.165.176.63 Cc: Julien Grall , kraxel@redhat.com, qemu-devel@nongnu.org, afaerber@suse.de, Stefano.Stabellini@eu.citrix.com Subject: [Qemu-devel] [PATCH V7 6/8] hw/serial.c: replace register_ioport* X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org This patch replaces all register_ioport* with a MemoryRegion. It permits to use the new Memory stuff like listener. For more flexibility, the IO address space is passed as an argument. Signed-off-by: Julien Grall --- hw/mips_mipssim.c | 3 ++- hw/pc.h | 2 +- hw/serial.c | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c index 830f635..a204ab1 100644 --- a/hw/mips_mipssim.c +++ b/hw/mips_mipssim.c @@ -215,7 +215,8 @@ mips_mipssim_init (ram_addr_t ram_size, /* A single 16450 sits at offset 0x3f8. It is attached to MIPS CPU INT2, which is interrupt 4. */ if (serial_hds[0]) - serial_init(0x3f8, env->irq[4], 115200, serial_hds[0]); + serial_init(0x3f8, env->irq[4], 115200, serial_hds[0], + get_system_io()); if (nd_table[0].used) /* MIPSnet uses the MIPS CPU INT0, which is interrupt 2. */ diff --git a/hw/pc.h b/hw/pc.h index e4db071..f2b7af5 100644 --- a/hw/pc.h +++ b/hw/pc.h @@ -15,7 +15,7 @@ /* serial.c */ SerialState *serial_init(int base, qemu_irq irq, int baudbase, - CharDriverState *chr); + CharDriverState *chr, MemoryRegion *system_io); SerialState *serial_mm_init(MemoryRegion *address_space, target_phys_addr_t base, int it_shift, qemu_irq irq, int baudbase, diff --git a/hw/serial.c b/hw/serial.c index a421d1e..4ed20c0 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -28,6 +28,7 @@ #include "pc.h" #include "qemu-timer.h" #include "sysemu.h" +#include "exec-memory.h" //#define DEBUG_SERIAL @@ -810,7 +811,7 @@ static const VMStateDescription vmstate_isa_serial = { }; SerialState *serial_init(int base, qemu_irq irq, int baudbase, - CharDriverState *chr) + CharDriverState *chr, MemoryRegion *system_io) { SerialState *s; @@ -823,8 +824,9 @@ SerialState *serial_init(int base, qemu_irq irq, int baudbase, vmstate_register(NULL, base, &vmstate_serial, s); - register_ioport_write(base, 8, 1, serial_ioport_write, s); - register_ioport_read(base, 8, 1, serial_ioport_read, s); + memory_region_init_io(&s->io, &serial_io_ops, s, "serial", 8); + memory_region_add_subregion(system_io, base, &s->io); + return s; }