From be35694da941168603b09a7420bcc476d745fc41 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Sun, 24 Jul 2011 17:12:11 +0300 Subject: sysbus: add helpers to add and delete memory regions to the system bus Reviewed-by: Richard Henderson Signed-off-by: Avi Kivity --- hw/sysbus.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'hw/sysbus.c') diff --git a/hw/sysbus.c b/hw/sysbus.c index f39768b6a2..f5f0ed219a 100644 --- a/hw/sysbus.c +++ b/hw/sysbus.c @@ -256,3 +256,25 @@ static char *sysbus_get_fw_dev_path(DeviceState *dev) return strdup(path); } + +void sysbus_add_memory(SysBusDevice *dev, target_phys_addr_t addr, + MemoryRegion *mem) +{ + memory_region_add_subregion(get_system_memory(), addr, mem); +} + +void sysbus_del_memory(SysBusDevice *dev, MemoryRegion *mem) +{ + memory_region_del_subregion(get_system_memory(), mem); +} + +void sysbus_add_io(SysBusDevice *dev, target_phys_addr_t addr, + MemoryRegion *mem) +{ + memory_region_add_subregion(get_system_io(), addr, mem); +} + +void sysbus_del_io(SysBusDevice *dev, MemoryRegion *mem) +{ + memory_region_del_subregion(get_system_io(), mem); +} -- cgit v1.2.3-55-g7522 From 28e7796459fbc3609557b34f9a9ad01c82bcff21 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Mon, 25 Jul 2011 15:02:17 +0300 Subject: sysbus: add sysbus_add_memory_overlap() Signed-off-by: Avi Kivity --- hw/sysbus.c | 7 +++++++ hw/sysbus.h | 2 ++ 2 files changed, 9 insertions(+) (limited to 'hw/sysbus.c') diff --git a/hw/sysbus.c b/hw/sysbus.c index f5f0ed219a..6e89f065b4 100644 --- a/hw/sysbus.c +++ b/hw/sysbus.c @@ -263,6 +263,13 @@ void sysbus_add_memory(SysBusDevice *dev, target_phys_addr_t addr, memory_region_add_subregion(get_system_memory(), addr, mem); } +void sysbus_add_memory_overlap(SysBusDevice *dev, target_phys_addr_t addr, + MemoryRegion *mem, unsigned priority) +{ + memory_region_add_subregion_overlap(get_system_memory(), addr, mem, + priority); +} + void sysbus_del_memory(SysBusDevice *dev, MemoryRegion *mem) { memory_region_del_subregion(get_system_memory(), mem); diff --git a/hw/sysbus.h b/hw/sysbus.h index e4d56cfe8e..b3e1f99db5 100644 --- a/hw/sysbus.h +++ b/hw/sysbus.h @@ -59,6 +59,8 @@ void sysbus_connect_irq(SysBusDevice *dev, int n, qemu_irq irq); void sysbus_mmio_map(SysBusDevice *dev, int n, target_phys_addr_t addr); void sysbus_add_memory(SysBusDevice *dev, target_phys_addr_t addr, MemoryRegion *mem); +void sysbus_add_memory_overlap(SysBusDevice *dev, target_phys_addr_t addr, + MemoryRegion *mem, unsigned priority); void sysbus_del_memory(SysBusDevice *dev, MemoryRegion *mem); void sysbus_add_io(SysBusDevice *dev, target_phys_addr_t addr, MemoryRegion *mem); -- cgit v1.2.3-55-g7522