[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState
From: |
Cédric Le Goater |
Subject: |
[Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState |
Date: |
Fri, 3 Mar 2017 14:37:34 +0100 |
Also use an 'Object *' under the sPAPR machine to hold the RTC
object. Overall, these changes remove an unnecessary and implicit
dependency on SysBus.
Signed-off-by: Cédric Le Goater <address@hidden>
---
hw/ppc/spapr.c | 12 +++++++-----
hw/ppc/spapr_rtc.c | 10 +++++-----
include/hw/ppc/spapr.h | 6 +++---
include/hw/ppc/xics.h | 2 +-
4 files changed, 16 insertions(+), 14 deletions(-)
Index: qemu-dgibson-for-2.9.git/include/hw/ppc/xics.h
===================================================================
--- qemu-dgibson-for-2.9.git.orig/include/hw/ppc/xics.h
+++ qemu-dgibson-for-2.9.git/include/hw/ppc/xics.h
@@ -28,7 +28,7 @@
#ifndef XICS_H
#define XICS_H
-#include "hw/sysbus.h"
+#include "hw/qdev.h"
#define XICS_IPI 0x2
#define XICS_BUID 0x1
Index: qemu-dgibson-for-2.9.git/hw/ppc/spapr_rtc.c
===================================================================
--- qemu-dgibson-for-2.9.git.orig/hw/ppc/spapr_rtc.c
+++ qemu-dgibson-for-2.9.git/hw/ppc/spapr_rtc.c
@@ -39,11 +39,11 @@
typedef struct sPAPRRTCState sPAPRRTCState;
struct sPAPRRTCState {
/*< private >*/
- SysBusDevice parent_obj;
+ DeviceState parent_obj;
int64_t ns_offset;
};
-void spapr_rtc_read(DeviceState *dev, struct tm *tm, uint32_t *ns)
+void spapr_rtc_read(Object *dev, struct tm *tm, uint32_t *ns)
{
sPAPRRTCState *rtc = SPAPR_RTC(dev);
int64_t host_ns = qemu_clock_get_ns(rtc_clock);
@@ -63,7 +63,7 @@ void spapr_rtc_read(DeviceState *dev, st
}
}
-int spapr_rtc_import_offset(DeviceState *dev, int64_t legacy_offset)
+int spapr_rtc_import_offset(Object *dev, int64_t legacy_offset)
{
sPAPRRTCState *rtc;
@@ -155,7 +155,7 @@ static void rtas_set_time_of_day(PowerPC
static void spapr_rtc_qom_date(Object *obj, struct tm *current_tm, Error
**errp)
{
- spapr_rtc_read(DEVICE(obj), current_tm, NULL);
+ spapr_rtc_read(obj, current_tm, NULL);
}
static void spapr_rtc_realize(DeviceState *dev, Error **errp)
@@ -200,7 +200,7 @@ static void spapr_rtc_class_init(ObjectC
static const TypeInfo spapr_rtc_info = {
.name = TYPE_SPAPR_RTC,
- .parent = TYPE_SYS_BUS_DEVICE,
+ .parent = TYPE_DEVICE,
.instance_size = sizeof(sPAPRRTCState),
.class_init = spapr_rtc_class_init,
};
Index: qemu-dgibson-for-2.9.git/hw/ppc/spapr.c
===================================================================
--- qemu-dgibson-for-2.9.git.orig/hw/ppc/spapr.c
+++ qemu-dgibson-for-2.9.git/hw/ppc/spapr.c
@@ -1333,13 +1333,15 @@ static void spapr_create_nvram(sPAPRMach
static void spapr_rtc_create(sPAPRMachineState *spapr)
{
- DeviceState *dev = qdev_create(NULL, TYPE_SPAPR_RTC);
+ Object *obj = object_new(TYPE_SPAPR_RTC);
- qdev_init_nofail(dev);
- spapr->rtc = dev;
+ object_property_add_child(OBJECT(spapr), "rtc", obj, &error_fatal);
+ object_property_set_bool(obj, true, "realized", &error_fatal);
- object_property_add_alias(qdev_get_machine(), "rtc-time",
- OBJECT(spapr->rtc), "date", NULL);
+ spapr->rtc = obj;
+
+ object_property_add_alias(OBJECT(spapr), "rtc-time", spapr->rtc, "date",
+ &error_fatal);
}
/* Returns whether we want to use VGA or not */
Index: qemu-dgibson-for-2.9.git/include/hw/ppc/spapr.h
===================================================================
--- qemu-dgibson-for-2.9.git.orig/include/hw/ppc/spapr.h
+++ qemu-dgibson-for-2.9.git/include/hw/ppc/spapr.h
@@ -59,7 +59,7 @@ struct sPAPRMachineState {
QLIST_HEAD(, sPAPRPHBState) phbs;
struct sPAPRNVRAM *nvram;
ICSState *ics;
- DeviceState *rtc;
+ Object *rtc;
void *htab;
uint32_t htab_shift;
@@ -633,8 +633,8 @@ void spapr_ccs_reset_hook(void *opaque);
#define TYPE_SPAPR_RTC "spapr-rtc"
#define TYPE_SPAPR_RNG "spapr-rng"
-void spapr_rtc_read(DeviceState *dev, struct tm *tm, uint32_t *ns);
-int spapr_rtc_import_offset(DeviceState *dev, int64_t legacy_offset);
+void spapr_rtc_read(Object *obj, struct tm *tm, uint32_t *ns);
+int spapr_rtc_import_offset(Object *obj, int64_t legacy_offset);
int spapr_rng_populate_dt(void *fdt);
- [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState,
Cédric Le Goater <=
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, Thomas Huth, 2017/03/03
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, Cédric Le Goater, 2017/03/03
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, Thomas Huth, 2017/03/03
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, Cédric Le Goater, 2017/03/03
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, David Gibson, 2017/03/05
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, Cédric Le Goater, 2017/03/06
- Re: [Qemu-ppc] [PATCH] ppc/spapr: QOM'ify sPAPRRTCState, David Gibson, 2017/03/06