• Jan Kiszka's avatar
    ioport: Switch dispatching to memory core layer · b40acf99
    Jan Kiszka authored
    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: default avatarJan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
memory.c 53.6 KB