From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59328) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuSS-0005A8-1s for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTuSJ-0006Qw-0D for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:14 -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 1TTuSI-00064D-SK for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:06 -0400 Received: by mail-ie0-f173.google.com with SMTP id 17so3616429iea.4 for ; Thu, 01 Nov 2012 06:05:06 -0700 (PDT) Sender: fluxion From: Michael Roth Date: Thu, 1 Nov 2012 08:04:14 -0500 Message-Id: <1351775071-7644-13-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 12/29] cirrus: add qom property for cirrus-vga 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/cirrus_vga.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index f9c8b46..9b27317 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -33,6 +33,8 @@ #include "loader.h" #include "qidl.h" +QIDL_ENABLE() + /* * TODO: * - destination write mask support not complete (bits 5..7) @@ -2939,6 +2941,23 @@ static TypeInfo isa_cirrus_vga_info = { * ***************************************/ +static void pci_cirrus_vga_get_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PCIDevice *pci = PCI_DEVICE(obj); + PCICirrusVGAState *s = DO_UPCAST(PCICirrusVGAState, dev, pci); + QIDL_VISIT_TYPE(PCICirrusVGAState, v, &s, name, errp); +} + +static void pci_cirrus_vga_set_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PCIDevice *pci = PCI_DEVICE(obj); + PCICirrusVGAState *s = DO_UPCAST(PCICirrusVGAState, dev, pci); + QIDL_VISIT_TYPE(PCICirrusVGAState, v, &s, name, errp); + cirrus_post_load(&s->cirrus_vga, -1); +} + static int pci_cirrus_vga_initfn(PCIDevice *dev) { PCICirrusVGAState *d = DO_UPCAST(PCICirrusVGAState, dev, dev); @@ -2971,6 +2990,11 @@ static int pci_cirrus_vga_initfn(PCIDevice *dev) if (device_id == CIRRUS_ID_CLGD5446) { pci_register_bar(&d->dev, 1, 0, &s->cirrus_mmio_io); } + + object_property_add(OBJECT(d), "state", "PCICirrusVGAState", + pci_cirrus_vga_get_state, pci_cirrus_vga_set_state, + NULL, NULL, NULL); + QIDL_SCHEMA_ADD_LINK(PCICirrusVGAState, OBJECT(d), "state_schema", NULL); return 0; } -- 1.7.9.5