[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 06/24] QEMUMachine: pass address space to machin
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [PATCH 06/24] QEMUMachine: pass address space to machine init function |
Date: |
Wed, 24 Aug 2011 14:18:34 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 |
On 08/24/2011 01:53 PM, Peter Maydell wrote:
> The purpose here is to allow removal of get_system_memory() from
> the general code base.
The right way to remove get_system_memory() from the general code base
is to actually model things correctly, for instance by having machine
models create a container memory region into which they insert the
memory regions for all the devices which currently use sysbus_mmio_map
to map themselves, and then pass the container memory region to the
"master" end of the bus, ie the CPU.
I think you're right. This also allows eventual removal of system_io on
anything non-x86.
So a replacement would look like:
(before)
-static void pc_init_isa(ram_addr_t ram_size,
+static void pc_init_isa(MemoryRegion *address_space_mem,
+ MemoryRegion *address_space_io,
+ ram_addr_t ram_size,
const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
@@ -259,15 +265,17 @@ static void pc_init_isa(ram_addr_t ram_size,
{
if (cpu_model == NULL)
cpu_model = "486";
- pc_init1(get_system_memory(),
- get_system_io(),
+ pc_init1(address_space_mem,
+ address_space_io,
ram_size, boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, cpu_model, 0, 1);
}
(after)
@@ -259,15 +265,17 @@ static void pc_init_isa(ram_addr_t ram_size,
{
+ MemoryRegion *address_space_mem, *address_space_io;
+
+ setup_system_memory(&address_space_mem,&address_space_io);
if (cpu_model == NULL)
cpu_model = "486";
- pc_init1(get_system_memory(),
- get_system_io(),
+ pc_init1(address_space_mem,
+ address_space_io,
ram_size, boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, cpu_model, 0, 1);
}
Later on, we'd refine the setup_system_memory() calls, for example not
to create the io space on non-x86.
A possible complication is whether anything currently uses system_memory
before ->init is called. Anyone know?
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
- [Qemu-devel] [PATCH 03/24] sysbus: add helpers to add and delete memory regions to the system bus, (continued)
- [Qemu-devel] [PATCH 03/24] sysbus: add helpers to add and delete memory regions to the system bus, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH 13/24] cirrus: wrap memory update in a transaction, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH 12/24] leon3: convert to memory API, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH 24/24] milkymist: convert to memory API, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH 15/24] Makefile.hw: allow hw/ files to include glib headers, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH 04/24] pci_host: convert conf index and data ports to memory API, Avi Kivity, 2011/08/24
- [Qemu-devel] [PATCH 06/24] QEMUMachine: pass address space to machine init function, Avi Kivity, 2011/08/24
[Qemu-devel] [PATCH 16/24] pflash_cfi01/pflash_cfi02: convert to memory API, Avi Kivity, 2011/08/24
[Qemu-devel] [PATCH 22/24] milkymist-minimac2: convert to memory API, Avi Kivity, 2011/08/24