Lines Matching refs:piolist
120 void portio_list_init(PortioList *piolist, in portio_list_init() argument
131 piolist->ports = callbacks; in portio_list_init()
132 piolist->nr = 0; in portio_list_init()
133 piolist->regions = g_new0(MemoryRegion *, n); in portio_list_init()
134 piolist->address_space = NULL; in portio_list_init()
135 piolist->addr = 0; in portio_list_init()
136 piolist->opaque = opaque; in portio_list_init()
137 piolist->owner = owner; in portio_list_init()
138 piolist->name = name; in portio_list_init()
139 piolist->flush_coalesced_mmio = false; in portio_list_init()
142 void portio_list_set_flush_coalesced(PortioList *piolist) in portio_list_set_flush_coalesced() argument
144 piolist->flush_coalesced_mmio = true; in portio_list_set_flush_coalesced()
147 void portio_list_destroy(PortioList *piolist) in portio_list_destroy() argument
152 for (i = 0; i < piolist->nr; ++i) { in portio_list_destroy()
153 mrpio = container_of(piolist->regions[i], MemoryRegionPortioList, mr); in portio_list_destroy()
157 g_free(piolist->regions); in portio_list_destroy()
226 static void portio_list_add_1(PortioList *piolist, in portio_list_add_1() argument
239 mrpio->portio_opaque = piolist->opaque; in portio_list_add_1()
254 piolist->name, off_high - off_low); in portio_list_add_1()
259 if (!piolist->owner) { in portio_list_add_1()
262 owner = piolist->owner; in portio_list_add_1()
264 name = g_strdup_printf("%s[*]", piolist->name); in portio_list_add_1()
268 if (piolist->flush_coalesced_mmio) { in portio_list_add_1()
271 memory_region_add_subregion(piolist->address_space, in portio_list_add_1()
273 piolist->regions[piolist->nr] = &mrpio->mr; in portio_list_add_1()
274 ++piolist->nr; in portio_list_add_1()
277 void portio_list_add(PortioList *piolist, in portio_list_add() argument
281 const MemoryRegionPortio *pio, *pio_start = piolist->ports; in portio_list_add()
284 piolist->address_space = address_space; in portio_list_add()
285 piolist->addr = start; in portio_list_add()
299 portio_list_add_1(piolist, pio_start, count, start, off_low, in portio_list_add()
312 portio_list_add_1(piolist, pio_start, count, start, off_low, off_high); in portio_list_add()
315 void portio_list_del(PortioList *piolist) in portio_list_del() argument
320 for (i = 0; i < piolist->nr; ++i) { in portio_list_del()
321 mrpio = container_of(piolist->regions[i], MemoryRegionPortioList, mr); in portio_list_del()
322 memory_region_del_subregion(piolist->address_space, &mrpio->mr); in portio_list_del()
326 void portio_list_set_enabled(PortioList *piolist, bool enabled) in portio_list_set_enabled() argument
330 for (i = 0; i < piolist->nr; ++i) { in portio_list_set_enabled()
331 memory_region_set_enabled(piolist->regions[i], enabled); in portio_list_set_enabled()
335 void portio_list_set_address(PortioList *piolist, uint32_t addr) in portio_list_set_address() argument
340 for (i = 0; i < piolist->nr; ++i) { in portio_list_set_address()
341 mrpio = container_of(piolist->regions[i], MemoryRegionPortioList, mr); in portio_list_set_address()
343 mrpio->mr.addr - piolist->addr + addr); in portio_list_set_address()
345 mrpio->ports[j].offset += addr - piolist->addr; in portio_list_set_address()
349 piolist->addr = addr; in portio_list_set_address()