From: Avi Kivity <avi@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 06/24] QEMUMachine: pass address space to machine init function
Date: Wed, 24 Aug 2011 14:18:34 +0300 [thread overview]
Message-ID: <4E54DE0A.7010502@redhat.com> (raw)
In-Reply-To: <CAFEAcA9Gn_b=YwzEbjaqwyNNLYh87jO9f=U3tm0DLHG2WUwiKQ@mail.gmail.com>
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.
next prev parent reply other threads:[~2011-08-24 11:18 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-24 10:10 [Qemu-devel] [PATCH 00/24] Memory API conversions, batch 5 Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 01/24] arm_sysctl: convert to memory API Avi Kivity
2011-08-24 10:23 ` Peter Maydell
2011-08-24 10:42 ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 02/24] stellaris_enet: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 03/24] sysbus: add helpers to add and delete memory regions to the system bus Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 04/24] pci_host: convert conf index and data ports to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 05/24] ReadWriteHandler: remove Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 06/24] QEMUMachine: pass address space to machine init function Avi Kivity
2011-08-24 10:32 ` Peter Maydell
2011-08-24 10:46 ` Avi Kivity
2011-08-24 10:53 ` Peter Maydell
2011-08-24 11:18 ` Avi Kivity [this message]
2011-08-24 12:26 ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 07/24] an5206: convert to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 08/24] armv7m: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 09/24] axis_dev88: convert to memory API (RAM only) Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 10/24] sysbus: add sysbus_add_memory_overlap() Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 11/24] integratorcp: convert to memory API (RAM/flash only) Avi Kivity
2011-08-24 11:22 ` Peter Maydell
2011-08-24 11:26 ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 12/24] leon3: convert to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 13/24] cirrus: wrap memory update in a transaction Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 14/24] piix_pci: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 15/24] Makefile.hw: allow hw/ files to include glib headers Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 16/24] pflash_cfi01/pflash_cfi02: convert to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 17/24] dummy_m68k: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 18/24] g364fb: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 19/24] lm32_boards: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 20/24] mainstone: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 21/24] mcf5208: " Avi Kivity
2011-08-24 10:35 ` Peter Maydell
2011-08-24 10:47 ` Avi Kivity
2011-08-24 11:38 ` Peter Maydell
2011-08-24 11:39 ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 22/24] milkymist-minimac2: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 23/24] milkymist-softusb: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 24/24] milkymist: " Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E54DE0A.7010502@redhat.com \
--to=avi@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).