On 16.12.14 01:43, David Gibson wrote:
> On x86, the guest's RTC can be read with QMP via the "rtc-time" property
> on the /machine object.  This is due to an explicit QOM alias being set up
> by the mc146818rtc driver, and doesn't work on other targets.
> 
> This extends the pseries RTAS RTC to populate that property, for improved
> management compatibility with x86 guests.
> 
> Signed-off-by: David Gibson <da...@gibson.dropbear.id.au>

Yeah, this really should happen inside an rtc device.

> ---
>  hw/ppc/spapr_rtc.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
> 
> diff --git a/hw/ppc/spapr_rtc.c b/hw/ppc/spapr_rtc.c
> index fac0017..13e74f1 100644
> --- a/hw/ppc/spapr_rtc.c
> +++ b/hw/ppc/spapr_rtc.c
> @@ -28,6 +28,7 @@
>  #include "cpu.h"
>  #include "hw/ppc/spapr.h"
>  #include "qapi-event.h"
> +#include "qapi/visitor.h"
>  
>  void spapr_rtc_read(sPAPREnvironment *spapr, struct tm *tm, uint32_t *ns)
>  {
> @@ -87,10 +88,58 @@ static void rtas_set_time_of_day(PowerPCCPU *cpu, 
> sPAPREnvironment *spapr,
>      rtas_st(rets, 0, RTAS_OUT_SUCCESS);
>  }
>  
> +static void spapr_qom_rtc_time(Object *obj, Visitor *v, void *opaque,
> +                               const char *name, Error **errp)

Also this function is mostly copy&paste from the mc14foo driver. Do you
think you can share this somehow?

I also think the alias should get created by the machine, not the device
itself.


Alex

Reply via email to