From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59568) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuSj-0005Gg-5R for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTuSi-0006cU-0Q for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:33 -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 1TTuSh-00064D-Rp for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:31 -0400 Received: by mail-ie0-f173.google.com with SMTP id 17so3616429iea.4 for ; Thu, 01 Nov 2012 06:05:31 -0700 (PDT) Sender: fluxion From: Michael Roth Date: Thu, 1 Nov 2012 08:04:31 -0500 Message-Id: <1351775071-7644-30-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 29/29] hpet: add qom property for hpet 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/hpet.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/hw/hpet.c b/hw/hpet.c index 3beb61e..e1b8881 100644 --- a/hw/hpet.c +++ b/hw/hpet.c @@ -34,6 +34,8 @@ #include "i8254.h" #include "qidl.h" +QIDL_ENABLE() + //#define HPET_DEBUG #ifdef HPET_DEBUG #define DPRINTF printf @@ -682,6 +684,24 @@ static void hpet_handle_legacy_irq(void *opaque, int n, int level) } } + +static void hpet_get_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + HPETState *s = FROM_SYSBUS(HPETState, SYS_BUS_DEVICE(obj)); + hpet_pre_save(s); + QIDL_VISIT_TYPE(HPETState, v, &s, name, errp); +} + +static void hpet_set_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + HPETState *s = FROM_SYSBUS(HPETState, SYS_BUS_DEVICE(obj)); + hpet_pre_load(s); + QIDL_VISIT_TYPE(HPETState, v, &s, name, errp); + hpet_post_load(s, -1); +} + static int hpet_init(SysBusDevice *dev) { HPETState *s = FROM_SYSBUS(HPETState, dev); @@ -727,6 +747,11 @@ static int hpet_init(SysBusDevice *dev) /* HPET Area */ memory_region_init_io(&s->iomem, &hpet_ram_ops, s, "hpet", 0x400); sysbus_init_mmio(dev, &s->iomem); + + object_property_add(OBJECT(s), "state", "HPETState", + hpet_get_state, hpet_set_state, + NULL, NULL, NULL); + QIDL_SCHEMA_ADD_LINK(HPETState, OBJECT(s), "state_schema", NULL); return 0; } -- 1.7.9.5