mirror of
https://github.com/mborgerson/xemu.git
synced 2026-03-11 13:54:53 +00:00
hw/core/sysbus: Introduce sysbus_mmio_map_name() helper
Some sysbus devices have conditional mmio regions. This happens for instance with the hw/acpi/ged device. In that case it becomes difficult to predict which index a specific MMIO region corresponds to when one needs to mmio map the region. Introduce a new helper that takes the name of the region instead of its index. If the region is not found this returns -1. Otherwise it maps the corresponding index and returns this latter. Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20250714080639.2525563-31-eric.auger@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
committed by
Michael S. Tsirkin
parent
745315784d
commit
1a10285665
@ -151,6 +151,17 @@ void sysbus_mmio_map(SysBusDevice *dev, int n, hwaddr addr)
|
||||
sysbus_mmio_map_common(dev, n, addr, false, 0);
|
||||
}
|
||||
|
||||
int sysbus_mmio_map_name(SysBusDevice *dev, const char *name, hwaddr addr)
|
||||
{
|
||||
for (int i = 0; i < dev->num_mmio; i++) {
|
||||
if (!strcmp(dev->mmio[i].memory->name, name)) {
|
||||
sysbus_mmio_map(dev, i, addr);
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void sysbus_mmio_map_overlap(SysBusDevice *dev, int n, hwaddr addr,
|
||||
int priority)
|
||||
{
|
||||
|
||||
@ -82,6 +82,7 @@ void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq);
|
||||
bool sysbus_is_irq_connected(SysBusDevice *dev, int n);
|
||||
qemu_irq sysbus_get_connected_irq(SysBusDevice *dev, int n);
|
||||
void sysbus_mmio_map(SysBusDevice *dev, int n, hwaddr addr);
|
||||
int sysbus_mmio_map_name(SysBusDevice *dev, const char*name, hwaddr addr);
|
||||
void sysbus_mmio_map_overlap(SysBusDevice *dev, int n, hwaddr addr,
|
||||
int priority);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user