From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59410) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuSX-0005Fz-Pi for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTuSS-0006WG-7n for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:21 -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 1TTuSS-00064D-2O for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:16 -0400 Received: by mail-ie0-f173.google.com with SMTP id 17so3616429iea.4 for ; Thu, 01 Nov 2012 06:05:15 -0700 (PDT) Sender: fluxion From: Michael Roth Date: Thu, 1 Nov 2012 08:04:20 -0500 Message-Id: <1351775071-7644-19-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 18/29] piix3: add qom property for PIIX3 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/piix_pci.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/hw/piix_pci.c b/hw/piix_pci.c index 0242399..a867e3f 100644 --- a/hw/piix_pci.c +++ b/hw/piix_pci.c @@ -544,12 +544,37 @@ static const VMStateDescription vmstate_piix3 = { } }; +static void piix3_get_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PCIDevice *pci = PCI_DEVICE(obj); + PIIX3State *s = DO_UPCAST(PIIX3State, dev, pci); + + piix3_pre_save(s); + QIDL_VISIT_TYPE(PIIX3State, v, &s, name, errp); +} + +static void piix3_set_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PCIDevice *pci = PCI_DEVICE(obj); + PIIX3State *s = DO_UPCAST(PIIX3State, dev, pci); + + QIDL_VISIT_TYPE(PIIX3State, v, &s, name, errp); + piix3_post_load(s, -1); +} + static int piix3_initfn(PCIDevice *dev) { PIIX3State *d = DO_UPCAST(PIIX3State, dev, dev); isa_bus_new(&d->dev.qdev, pci_address_space_io(dev)); qemu_register_reset(piix3_reset, d); + + object_property_add(OBJECT(d), "state", "PIIX3State", + piix3_get_state, piix3_set_state, NULL, NULL, NULL); + QIDL_SCHEMA_ADD_LINK(PIIX3State, OBJECT(d), "state_schema", NULL); + return 0; } -- 1.7.9.5