From: Alvise Rigo <a.rigo@virtualopensystems.com>
To: qemu-devel@nongnu.org, rob.herring@linaro.org
Cc: "Alexander Graf" <agraf@suse.de>,
"Marcel Apfelbaum" <marcel.a@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Alvise Rigo" <a.rigo@virtualopensystems.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Anthony Liguori" <aliguori@amazon.com>,
tech@virtualopensystems.com, "Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [RFC PATCH 3/8] QEMUMachine: finalize_dt function
Date: Fri, 11 Jul 2014 09:21:05 +0200 [thread overview]
Message-ID: <1405063270-18902-4-git-send-email-a.rigo@virtualopensystems.com> (raw)
In-Reply-To: <1405063270-18902-1-git-send-email-a.rigo@virtualopensystems.com>
Add a new function to be called after that the init of the generic
devices is concluded. This will allow some platforms, like mach-virt, to
conclude its device tree generation disposing of all the information
about attached devices.
Note: This idea accomplishes what is also done by the recent
"[PATCH 0/7] machvirt dynamic sysbus device instantiation", as soon as
those patches will be accepted, this work will be adapted making use of
them.
Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com>
---
include/hw/boards.h | 4 ++++
vl.c | 5 +++++
2 files changed, 9 insertions(+)
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 2d2e2be..40dd003 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -19,12 +19,15 @@ typedef void QEMUMachineHotAddCPUFunc(const int64_t id, Error **errp);
typedef int QEMUMachineGetKvmtypeFunc(const char *arg);
+typedef void QEMUMachineFinalizeDtFunc(MachineState *ms);
+
struct QEMUMachine {
const char *name;
const char *alias;
const char *desc;
QEMUMachineInitFunc *init;
QEMUMachineResetFunc *reset;
+ QEMUMachineFinalizeDtFunc *finalize_dt;
QEMUMachineHotAddCPUFunc *hot_add_cpu;
QEMUMachineGetKvmtypeFunc *kvm_type;
BlockInterfaceType block_default_type;
@@ -73,6 +76,7 @@ struct MachineClass {
void (*init)(MachineState *state);
void (*reset)(void);
+ void (*finalize_dt)(MachineState *state);
void (*hot_add_cpu)(const int64_t id, Error **errp);
int (*kvm_type)(const char *arg);
diff --git a/vl.c b/vl.c
index ac0e3d7..550a377 100644
--- a/vl.c
+++ b/vl.c
@@ -1596,6 +1596,7 @@ static void machine_class_init(ObjectClass *oc, void *data)
mc->alias = qm->alias;
mc->desc = qm->desc;
mc->init = qm->init;
+ mc->finalize_dt = qm->finalize_dt;
mc->reset = qm->reset;
mc->hot_add_cpu = qm->hot_add_cpu;
mc->kvm_type = qm->kvm_type;
@@ -4456,6 +4457,10 @@ int main(int argc, char **argv, char **envp)
if (qemu_opts_foreach(qemu_find_opts("device"), device_init_func, NULL, 1) != 0)
exit(1);
+ if (machine_class->finalize_dt) {
+ machine_class->finalize_dt(current_machine);
+ }
+
net_check_clients();
ds = init_displaystate();
--
1.9.1
next prev parent reply other threads:[~2014-07-11 7:21 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-11 7:21 [Qemu-devel] [RFC PATCH 0/8] Add Generic PCI host device update Alvise Rigo
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 1/8] mach-virt: move GIC inside mach-virt structure Alvise Rigo
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 2/8] mach-virt: improve PCI memory topology definition Alvise Rigo
2014-07-11 7:21 ` Alvise Rigo [this message]
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 4/8] generic_pci: create header file Alvise Rigo
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 5/8] generic_pci: create own map irq function Alvise Rigo
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 6/8] generic_pci: generate dt node after devices init Alvise Rigo
2014-11-05 12:26 ` Claudio Fontana
2014-11-06 10:27 ` alvise rigo
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 7/8] generic_pci: realize device with machine data Alvise Rigo
2014-07-11 7:21 ` [Qemu-devel] [RFC PATCH 8/8] generic_pci: add interrupt map structures Alvise Rigo
2014-07-11 9:09 ` [Qemu-devel] [RFC PATCH 0/8] Add Generic PCI host device update Peter Maydell
2014-07-11 9:28 ` Alvise Rigo
2014-07-13 14:28 ` Rob Herring
2014-09-09 16:35 ` Claudio Fontana
2014-09-10 7:31 ` alvise rigo
2014-11-05 10:23 ` Claudio Fontana
2014-11-05 11:09 ` alvise rigo
2014-11-07 15:40 ` Claudio Fontana
2014-11-10 10:00 ` alvise rigo
2014-11-11 3:24 ` Ming Lei
2014-11-11 4:22 ` Ming Lei
2014-11-11 10:26 ` Claudio Fontana
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=1405063270-18902-4-git-send-email-a.rigo@virtualopensystems.com \
--to=a.rigo@virtualopensystems.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aliguori@amazon.com \
--cc=armbru@redhat.com \
--cc=marcel.a@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rob.herring@linaro.org \
--cc=tech@virtualopensystems.com \
/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).