From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59254) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuSJ-0004xL-IW for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTuS9-0006ED-OF for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:07 -0400 Received: from mail-ie0-f173.google.com ([209.85.223.173]:62691) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuS9-00064D-J4 for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:04:57 -0400 Received: by mail-ie0-f173.google.com with SMTP id 17so3616429iea.4 for ; Thu, 01 Nov 2012 06:04:57 -0700 (PDT) Sender: fluxion From: Michael Roth Date: Thu, 1 Nov 2012 08:04:08 -0500 Message-Id: <1351775071-7644-7-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1351775071-7644-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1351775071-7644-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH 06/29] rtc: add qom property for RTCState state List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, peter.maydell@linaro.org, aliguori@us.ibm.com, quintela@redhat.com, blauwirbel@gmail.com, pbonzini@redhat.com Signed-off-by: Michael Roth --- hw/mc146818rtc.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c index 10492a1..d5c0b5a 100644 --- a/hw/mc146818rtc.c +++ b/hw/mc146818rtc.c @@ -807,6 +807,23 @@ static void rtc_get_date(Object *obj, Visitor *v, void *opaque, visit_end_struct(v, errp); } +static void rtc_get_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + ISADevice *isa = ISA_DEVICE(obj); + RTCState *s = DO_UPCAST(RTCState, dev, isa); + QIDL_VISIT_TYPE(RTCState, v, &s, name, errp); +} + +static void rtc_set_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + ISADevice *isa = ISA_DEVICE(obj); + RTCState *s = DO_UPCAST(RTCState, dev, isa); + QIDL_VISIT_TYPE(RTCState, v, &s, name, errp); + rtc_post_load(s, 3); +} + static int rtc_initfn(ISADevice *dev) { RTCState *s = DO_UPCAST(RTCState, dev, dev); @@ -834,6 +851,7 @@ static int rtc_initfn(ISADevice *dev) #ifdef TARGET_I386 switch (s->lost_tick_policy) { case LOST_TICK_SLEW: + s->has_coalesced_timer = true; s->coalesced_timer = qemu_new_timer_ns(rtc_clock, rtc_coalesced_timer, s); break; @@ -861,7 +879,10 @@ static int rtc_initfn(ISADevice *dev) qemu_register_reset(rtc_reset, s); object_property_add(OBJECT(s), "date", "struct tm", - rtc_get_date, NULL, NULL, s, NULL); + rtc_get_date, rtc_get_date, NULL, s, NULL); + object_property_add(OBJECT(s), "state", "RTCState", + rtc_get_state, rtc_set_state, NULL, s, NULL); + QIDL_SCHEMA_ADD_LINK(RTCState, OBJECT(s), "state_schema", NULL); return 0; } -- 1.7.9.5