Integrate I/O memory regions into qemu

get_system_io() returns the root I/O memory region.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Avi Kivity 2011-08-08 16:09:03 +03:00 committed by Anthony Liguori
parent 899adf8149
commit 309cb471c8
2 changed files with 15 additions and 0 deletions

View File

@ -28,6 +28,11 @@
*/
MemoryRegion *get_system_memory(void);
/* Get the root I/O port region. This interface should only be used
* temporarily until a proper bus interface is available.
*/
MemoryRegion *get_system_io(void);
/* Set the root memory region. This region is the system memory map. */
void set_system_memory_map(MemoryRegion *mr);

10
exec.c
View File

@ -113,6 +113,7 @@ static int in_migration;
RAMList ram_list = { .blocks = QLIST_HEAD_INITIALIZER(ram_list) };
static MemoryRegion *system_memory;
static MemoryRegion *system_io;
#endif
@ -3830,6 +3831,10 @@ static void memory_map_init(void)
system_memory = qemu_malloc(sizeof(*system_memory));
memory_region_init(system_memory, "system", INT64_MAX);
set_system_memory_map(system_memory);
system_io = qemu_malloc(sizeof(*system_io));
memory_region_init(system_io, "io", 65536);
set_system_io_map(system_io);
}
MemoryRegion *get_system_memory(void)
@ -3837,6 +3842,11 @@ MemoryRegion *get_system_memory(void)
return system_memory;
}
MemoryRegion *get_system_io(void)
{
return system_io;
}
#endif /* !defined(CONFIG_USER_ONLY) */
/* physical memory access (slow version, mainly for debug) */