From: "Andreas Färber" <afaerber@suse.de>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-devel@nongnu.org
Cc: mtosatti@redhat.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH 5/5] mc146818rtc: add "rtc" link to "/machine"
Date: Tue, 17 Jun 2014 19:09:21 +0200 [thread overview]
Message-ID: <53A07641.1080906@suse.de> (raw)
In-Reply-To: <1402505369-12526-6-git-send-email-pbonzini@redhat.com>
Am 11.06.2014 18:49, schrieb Paolo Bonzini:
> From: Marcelo Tosatti <mtosatti@redhat.com>
>
> Add a link to rtc under /machine providing a stable
> location for management apps to query "date" field.
>
> {"execute":"qom-get","arguments":{"path":"/machine/rtc","property":"date"} }
>
> Suggested by Paolo Bonzini.
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: mtosatti@redhat.com <mtosatti@redhat.com>
Do those management apps want a generic location for each machine or
just for PC? I know several ARM boards that have different ones on SoC
and on PMIC (I2C) for instance. In that case it may be safer to
implement an interface and to search for that? Or at least give the
"rtc" node a more generic property type for ABI stability? I.e. you only
want "date" here, not any other properties of the mc146818rtc.
> ---
> hw/timer/mc146818rtc.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/hw/timer/mc146818rtc.c b/hw/timer/mc146818rtc.c
> index df54546..8c706e1 100644
> --- a/hw/timer/mc146818rtc.c
> +++ b/hw/timer/mc146818rtc.c
> @@ -893,6 +893,9 @@ static void rtc_realizefn(DeviceState *dev, Error **errp)
>
> object_property_add(OBJECT(s), "date", "struct tm",
> rtc_get_date, NULL, NULL, s, NULL);
> +
> + object_property_add_alias(qdev_get_machine(), "rtc",
> + OBJECT(s), NULL, &error_abort);
Irrespective of the error_abort discussion, realize feels too late for
setting up such a property. My suggestion would be to do it in PC
machine init instead - or if not feasible, here in instance_init with
NULL errp.
> }
>
> ISADevice *rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
> @@ -932,11 +935,17 @@ static void rtc_class_initfn(ObjectClass *klass, void *data)
> dc->cannot_instantiate_with_device_add_yet = true;
> }
>
> +static void rtc_finalize(Object *obj)
> +{
> + object_property_del(qdev_get_machine(), "rtc", NULL);
In Peter's multiple-RTC scenario this means the first RTC unparented(?)
will remove the property, not necessarily the RTC the property points
to. Not really relevant in practice, just pointing out that it's not
just about adding.
Do we need to clean it up at all? And why not just use an
"old-fashioned" link<> property?
Regards,
Andreas
> +}
> +
> static const TypeInfo mc146818rtc_info = {
> .name = TYPE_MC146818_RTC,
> .parent = TYPE_ISA_DEVICE,
> .instance_size = sizeof(RTCState),
> .class_init = rtc_class_initfn,
> + .instance_finalize = rtc_finalize,
> };
>
> static void mc146818rtc_register_types(void)
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2014-06-17 17:09 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-11 16:49 [Qemu-devel] [PATCH 0/5] qom: path resolution, property aliases and more Paolo Bonzini
2014-06-11 16:49 ` [Qemu-devel] [PATCH 1/5] qom: add a generic mechanism to resolve paths Paolo Bonzini
2014-06-17 13:08 ` Peter Crosthwaite
2014-06-17 14:18 ` Andreas Färber
2014-06-17 15:07 ` Paolo Bonzini
2014-06-17 15:19 ` Andreas Färber
2014-06-17 15:25 ` Paolo Bonzini
2014-06-17 15:15 ` Andreas Färber
2014-06-11 16:49 ` [Qemu-devel] [PATCH 2/5] qom: add object_property_add_alias() Paolo Bonzini
2014-06-17 15:42 ` Andreas Färber
2014-06-11 16:49 ` [Qemu-devel] [PATCH 3/5] qom: allow creating an alias of a child<> property Paolo Bonzini
2014-06-17 13:28 ` Peter Crosthwaite
2014-06-17 13:31 ` Paolo Bonzini
2014-06-17 13:33 ` Andreas Färber
2014-06-17 16:37 ` Andreas Färber
2014-06-17 16:46 ` Paolo Bonzini
2014-06-17 16:47 ` Andreas Färber
2014-06-11 16:49 ` [Qemu-devel] [PATCH 4/5] qom: allow creating an alias of an object Paolo Bonzini
2014-06-17 13:55 ` Peter Crosthwaite
2014-06-17 14:06 ` Paolo Bonzini
2014-06-17 14:15 ` Paolo Bonzini
2014-06-17 14:16 ` Peter Crosthwaite
2014-06-17 16:48 ` Paolo Bonzini
2014-06-11 16:49 ` [Qemu-devel] [PATCH 5/5] mc146818rtc: add "rtc" link to "/machine" Paolo Bonzini
2014-06-17 14:09 ` Peter Crosthwaite
2014-06-17 14:12 ` Paolo Bonzini
2014-06-17 14:25 ` Peter Crosthwaite
2014-06-17 15:01 ` Paolo Bonzini
2014-06-17 16:55 ` Andreas Färber
2014-06-17 17:16 ` Paolo Bonzini
2014-06-17 17:09 ` Andreas Färber [this message]
2014-06-17 17:30 ` Paolo Bonzini
2014-06-17 17:38 ` Andreas Färber
2014-06-18 7:11 ` Paolo Bonzini
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=53A07641.1080906@suse.de \
--to=afaerber@suse.de \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.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).