From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59333) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuSS-0005Bg-9n for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTuSP-0006VD-NZ for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:15 -0400 Received: from mail-ia0-f173.google.com ([209.85.210.173]:60542) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTuSP-000627-HA for qemu-devel@nongnu.org; Thu, 01 Nov 2012 09:05:13 -0400 Received: by mail-ia0-f173.google.com with SMTP id m10so1965034iam.4 for ; Thu, 01 Nov 2012 06:05:12 -0700 (PDT) Sender: fluxion From: Michael Roth Date: Thu, 1 Nov 2012 08:04:18 -0500 Message-Id: <1351775071-7644-17-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 16/29] i440fx: a qom property for i440FX 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 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hw/piix_pci.c b/hw/piix_pci.c index a4c32aa..563ded6 100644 --- a/hw/piix_pci.c +++ b/hw/piix_pci.c @@ -32,6 +32,8 @@ #include "xen.h" #include "qidl.h" +QIDL_ENABLE() + /* * I440FX chipset data sheet. * http://download.intel.com/design/chipsets/datashts/29054901.pdf @@ -241,6 +243,23 @@ static int i440fx_pcihost_initfn(SysBusDevice *dev) return 0; } +static void i440fx_get_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PCIDevice *pci = PCI_DEVICE(obj); + PCII440FXState *s = DO_UPCAST(PCII440FXState, dev, pci); + QIDL_VISIT_TYPE(PCII440FXState, v, &s, name, errp); +} + +static void i440fx_set_state(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + PCIDevice *pci = PCI_DEVICE(obj); + PCII440FXState *s = DO_UPCAST(PCII440FXState, dev, pci); + QIDL_VISIT_TYPE(PCII440FXState, v, &s, name, errp); + i440fx_post_load(s, -1); +} + static int i440fx_initfn(PCIDevice *dev) { PCII440FXState *d = DO_UPCAST(PCII440FXState, dev, dev); @@ -248,6 +267,11 @@ static int i440fx_initfn(PCIDevice *dev) d->dev.config[I440FX_SMRAM] = 0x02; cpu_smm_register(&i440fx_set_smm, d); + + object_property_add(OBJECT(d), "state", "PCII440FXState", + i440fx_get_state, i440fx_set_state, NULL, NULL, NULL); + QIDL_SCHEMA_ADD_LINK(PCII440FXState, OBJECT(d), "state_schema", NULL); + return 0; } -- 1.7.9.5