* Re: [Qemu-devel] [PATCH 4/4] vl: add -late-object to create QOM objects after machine init [not found] ` <1340664222-25098-5-git-send-email-aliguori@us.ibm.com> @ 2012-07-02 12:32 ` Paolo Bonzini 2012-07-02 12:35 ` Andreas Färber 0 siblings, 1 reply; 5+ messages in thread From: Paolo Bonzini @ 2012-07-02 12:32 UTC (permalink / raw) To: Anthony Liguori Cc: Kevin Wolf, Stefan Hajnoczi, qemu-devel, Markus Armbruster, Amit Shah, Andreas Faerber Il 26/06/2012 00:43, Anthony Liguori ha scritto: > In order to create qdev objects via -late-object, we almost always have to > specify the parent_bus which is usually created during machine init. Until we > properly support two stage init, introduce a -late-object option that allows for > creation of objects post-machine init. This is only needed for -device, no? So we can avoid introducing it and just use -device. Paolo ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH 4/4] vl: add -late-object to create QOM objects after machine init 2012-07-02 12:32 ` [Qemu-devel] [PATCH 4/4] vl: add -late-object to create QOM objects after machine init Paolo Bonzini @ 2012-07-02 12:35 ` Andreas Färber 2012-09-18 23:07 ` Anthony Liguori 0 siblings, 1 reply; 5+ messages in thread From: Andreas Färber @ 2012-07-02 12:35 UTC (permalink / raw) To: Anthony Liguori Cc: Kevin Wolf, Stefan Hajnoczi, qemu-devel, Markus Armbruster, Amit Shah, Paolo Bonzini Am 02.07.2012 14:32, schrieb Paolo Bonzini: > Il 26/06/2012 00:43, Anthony Liguori ha scritto: >> In order to create qdev objects via -late-object, we almost always have to >> specify the parent_bus which is usually created during machine init. Until we >> properly support two stage init, introduce a -late-object option that allows for >> creation of objects post-machine init. > > This is only needed for -device, no? So we can avoid introducing it and > just use -device. +1, was thinking along the same lines... Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH 4/4] vl: add -late-object to create QOM objects after machine init 2012-07-02 12:35 ` Andreas Färber @ 2012-09-18 23:07 ` Anthony Liguori 2012-09-19 7:27 ` Paolo Bonzini 0 siblings, 1 reply; 5+ messages in thread From: Anthony Liguori @ 2012-09-18 23:07 UTC (permalink / raw) To: Andreas Färber Cc: Kevin Wolf, Stefan Hajnoczi, qemu-devel, Markus Armbruster, Amit Shah, Paolo Bonzini Andreas Färber <afaerber@suse.de> writes: > Am 02.07.2012 14:32, schrieb Paolo Bonzini: >> Il 26/06/2012 00:43, Anthony Liguori ha scritto: >>> In order to create qdev objects via -late-object, we almost always have to >>> specify the parent_bus which is usually created during machine init. Until we >>> properly support two stage init, introduce a -late-object option that allows for >>> creation of objects post-machine init. >> >> This is only needed for -device, no? So we can avoid introducing it and >> just use -device. > > +1, was thinking along the same lines... Sorry for such a delayed response... The semantics of how -device is different in that it implies realize. Regards, Anthony Liguori > > Andreas > > -- > SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany > GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH 4/4] vl: add -late-object to create QOM objects after machine init 2012-09-18 23:07 ` Anthony Liguori @ 2012-09-19 7:27 ` Paolo Bonzini 0 siblings, 0 replies; 5+ messages in thread From: Paolo Bonzini @ 2012-09-19 7:27 UTC (permalink / raw) To: Anthony Liguori Cc: Kevin Wolf, Stefan Hajnoczi, Markus Armbruster, qemu-devel, Amit Shah, Andreas Färber Il 19/09/2012 01:07, Anthony Liguori ha scritto: >>>> In order to create qdev objects via -late-object, we almost always have to >>>> >>> specify the parent_bus which is usually created during machine init. Until we >>>> >>> properly support two stage init, introduce a -late-object option that allows for >>>> >>> creation of objects post-machine init. >>> >> >>> >> This is only needed for -device, no? So we can avoid introducing it and >>> >> just use -device. >> > >> > +1, was thinking along the same lines... > Sorry for such a delayed response... > > The semantics of how -device is different in that it implies realize. Yes, all I'm saying is, I don't see a need for -late-object since it is only needed for devices and we have a separate method to create them. Paolo ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <1340664222-25098-3-git-send-email-aliguori@us.ibm.com>]
* Re: [Qemu-devel] [PATCH 2/4] qdev: add realized property and make adding child bus implied by realize [not found] ` <1340664222-25098-3-git-send-email-aliguori@us.ibm.com> @ 2012-07-02 12:32 ` Paolo Bonzini 0 siblings, 0 replies; 5+ messages in thread From: Paolo Bonzini @ 2012-07-02 12:32 UTC (permalink / raw) To: Anthony Liguori Cc: Kevin Wolf, Stefan Hajnoczi, qemu-devel, Markus Armbruster, Amit Shah, Andreas Faerber Why does this lack recursive realization? (I'm not top posting, I'm replying to the commit message. :)) Paolo Il 26/06/2012 00:43, Anthony Liguori ha scritto: > Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> > --- > hw/qdev.c | 36 +++++++++++++++++++++++++++++++++++- > 1 files changed, 35 insertions(+), 1 deletions(-) > > diff --git a/hw/qdev.c b/hw/qdev.c > index a6c4c02..d305128 100644 > --- a/hw/qdev.c > +++ b/hw/qdev.c > @@ -101,7 +101,6 @@ static void bus_add_child(BusState *bus, DeviceState *child) > void qdev_set_parent_bus(DeviceState *dev, BusState *bus) > { > dev->parent_bus = bus; > - bus_add_child(bus, dev); > } > > /* Create a new device. This only initializes the device state structure > @@ -157,6 +156,10 @@ int qdev_init(DeviceState *dev) > > assert(dev->state == DEV_STATE_CREATED); > > + if (dev->parent_bus) { > + bus_add_child(dev->parent_bus, dev); > + } > + > rc = dc->init(dev); > if (rc < 0) { > object_unparent(OBJECT(dev)); > @@ -663,6 +666,33 @@ void qdev_property_add_static(DeviceState *dev, Property *prop, > assert_no_error(local_err); > } > > +static bool qdev_prop_get_realized(Object *obj, Error **errp) > +{ > + DeviceState *dev = DEVICE(obj); > + > + return (dev->state == DEV_STATE_INITIALIZED); > +} > + > +static void qdev_prop_set_realized(Object *obj, bool value, Error **errp) > +{ > + DeviceState *dev = DEVICE(obj); > + bool realized = (dev->state == DEV_STATE_INITIALIZED); > + > + if (realized == value) { > + return; > + } > + > + if (realized && !value) { > + error_set(errp, QERR_PERMISSION_DENIED); > + return; > + } > + > + if (qdev_init(dev) < 0) { > + error_set(errp, QERR_DEVICE_INIT_FAILED, ""); > + return; > + } > +} > + > static void device_initfn(Object *obj) > { > DeviceState *dev = DEVICE(obj); > @@ -687,6 +717,10 @@ static void device_initfn(Object *obj) > } while (class != object_class_by_name(TYPE_DEVICE)); > qdev_prop_set_globals(dev); > > + object_property_add_bool(obj, "realized", > + qdev_prop_get_realized, qdev_prop_set_realized, > + NULL); > + > object_property_add_link(OBJECT(dev), "parent_bus", TYPE_BUS, > (Object **)&dev->parent_bus, NULL); > } > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-09-19 7:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1340664222-25098-1-git-send-email-aliguori@us.ibm.com>
[not found] ` <1340664222-25098-5-git-send-email-aliguori@us.ibm.com>
2012-07-02 12:32 ` [Qemu-devel] [PATCH 4/4] vl: add -late-object to create QOM objects after machine init Paolo Bonzini
2012-07-02 12:35 ` Andreas Färber
2012-09-18 23:07 ` Anthony Liguori
2012-09-19 7:27 ` Paolo Bonzini
[not found] ` <1340664222-25098-3-git-send-email-aliguori@us.ibm.com>
2012-07-02 12:32 ` [Qemu-devel] [PATCH 2/4] qdev: add realized property and make adding child bus implied by realize Paolo Bonzini
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.