Received: from eggs.gnu.org ([208.118.235.92]:41697) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UZMNS-0005vQ-Dp for qemu-devel@nongnu.org; Mon, 06 May 2013 10:26:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UZMNQ-0005iT-O1 for qemu-devel@nongnu.org; Mon, 06 May 2013 10:26:54 -0400 Received: from thoth.sbs.de ([192.35.17.2]:23187) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UZMNQ-0005i9-Dh for qemu-devel@nongnu.org; Mon, 06 May 2013 10:26:52 -0400 From: Jan Kiszka Date: Mon, 6 May 2013 16:26:03 +0200 Message-Id: Subject: [Qemu-devel] [RFC][PATCH 00/15] Refactor portio dispatching List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Cc: Paolo Bonzini , Liu Ping Fan , malc , =?UTF-8?q?Andreas=20F=C3=A4rber?= This series converts the remaining users of register_ioport* to portio lists, simplifies the handling of subpages and adds support for unaligned memory region accesses. Then it replaces the current portio dispatcher with the existing one for MMIO and removes several lines of code. This also allows to build BQL-free portio on top once we enhance the memory layer accordingly. Seems to work fine so far but surely requires thorough review. And I would welcome early comments on the direction. Jan CC: malc Jan Kiszka (15): adlib: replace register_ioport* applesmc: replace register_ioport* wdt_ib700: replace register_ioport* i82374: replace register_ioport* prep: replace register_ioport* vt82c686: replace register_ioport* Privatize register_ioport_read/write isa: implement isa_is_ioport_assigned via memory_region_find memory: Introduce address_space_lookup_region memory: Rework sub-page handling memory: Allow unaligned address_space_rw vmware-vga: Accept unaligned I/O accesses ioport: Switch dispatching to memory core layer ioport: Remove unused old dispatching services ioport: Move IOPortRead/WriteFunc typedefs to memory.h cputlb.c | 2 +- exec.c | 273 +++++++++++++------------------------ hw/acpi/piix4.c | 6 +- hw/audio/adlib.c | 20 ++- hw/display/vmware_vga.c | 4 + hw/dma/i82374.c | 17 ++- hw/isa/isa-bus.c | 11 ++ hw/isa/lpc_ich9.c | 8 +- hw/isa/vt82c686.c | 40 ++++-- hw/misc/applesmc.c | 48 +++++-- hw/ppc/prep.c | 23 ++- hw/watchdog/wdt_ib700.c | 12 ++- include/exec/cputlb.h | 2 - include/exec/ioport.h | 19 +--- include/exec/iorange.h | 31 ---- include/exec/memory-internal.h | 2 - include/exec/memory.h | 26 ++-- include/hw/isa/isa.h | 2 + ioport.c | 294 ++++------------------------------------ memory.c | 102 +++++--------- translate-all.c | 3 +- 21 files changed, 311 insertions(+), 634 deletions(-) delete mode 100644 include/exec/iorange.h -- 1.7.3.4