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 <av1...@comtv.ru> 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