]> git.ipfire.org Git - thirdparty/qemu.git/commit - ioport.c
ioport: Switch dispatching to memory core layer
authorJan Kiszka <jan.kiszka@siemens.com>
Mon, 24 Jun 2013 08:45:09 +0000 (10:45 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Jul 2013 15:42:44 +0000 (17:42 +0200)
commitb40acf99bef69fa8ab0f9092ff162fde945eec12
tree3be0e88794cb67e6e20aa78580572f3babd1d54c
parent962b03fcf509db25c847aa67c4eff574c240dcfe
ioport: Switch dispatching to memory core layer

The current ioport dispatcher is a complex beast, mostly due to the
need to deal with old portio interface users. But we can overcome it
without converting all portio users by embedding the required base
address of a MemoryRegionPortio access into that data structure. That
removes the need to have the additional MemoryRegionIORange structure
in the loop on every access.

To handle old portio memory ops, we simply install dispatching handlers
for portio memory regions when registering them with the memory core.
This removes the need for the old_portio field.

We can drop the additional aliasing of ioport regions and also the
special address space listener. cpu_in and cpu_out now simply call
address_space_read/write. And we can concentrate portio handling in a
single source file.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
exec.c
include/exec/ioport.h
include/exec/memory-internal.h
include/exec/memory.h
ioport.c
memory.c