Commit c76bc480 authored by Jan Kiszka's avatar Jan Kiszka Committed by Paolo Bonzini

portio: Allow to mark portio lists as coalesced MMIO flushing

This will enable us to remove all remaining explicit calls of
qemu_flush_coalesced_mmio_buffer in IO handlers.
Signed-off-by: default avatarJan Kiszka <>
Signed-off-by: default avatarPaolo Bonzini <>
parent 518420df
......@@ -64,11 +64,13 @@ typedef struct PortioList {
struct MemoryRegion **regions;
void *opaque;
const char *name;
bool flush_coalesced_mmio;
} PortioList;
void portio_list_init(PortioList *piolist, Object *owner,
const struct MemoryRegionPortio *callbacks,
void *opaque, const char *name);
void portio_list_set_flush_coalesced(PortioList *piolist);
void portio_list_destroy(PortioList *piolist);
void portio_list_add(PortioList *piolist,
struct MemoryRegion *address_space,
......@@ -139,6 +139,12 @@ void portio_list_init(PortioList *piolist,
piolist->opaque = opaque;
piolist->owner = owner;
piolist->name = name;
piolist->flush_coalesced_mmio = false;
void portio_list_set_flush_coalesced(PortioList *piolist)
piolist->flush_coalesced_mmio = true;
void portio_list_destroy(PortioList *piolist)
......@@ -231,6 +237,9 @@ static void portio_list_add_1(PortioList *piolist,
memory_region_init_io(&mrpio->mr, piolist->owner, &portio_ops, mrpio,
piolist->name, off_high - off_low);
if (piolist->flush_coalesced_mmio) {
start + off_low, &mrpio->mr);
piolist->regions[piolist->nr] = &mrpio->mr;
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment