From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44311) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UjmHF-0005zC-RJ for qemu-devel@nongnu.org; Tue, 04 Jun 2013 04:07:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UjmHC-0007dx-Rz for qemu-devel@nongnu.org; Tue, 04 Jun 2013 04:07:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60927) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UjmHC-0007cO-8u for qemu-devel@nongnu.org; Tue, 04 Jun 2013 04:07:30 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r5487TAg008227 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 4 Jun 2013 04:07:29 -0400 Received: from redhat.com (vpn-203-14.tlv.redhat.com [10.35.203.14]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with SMTP id r5487RGS020004 for ; Tue, 4 Jun 2013 04:07:28 -0400 Date: Tue, 4 Jun 2013 11:08:02 +0300 From: "Michael S. Tsirkin" Message-ID: <1370202787-3712-8-git-send-email-mst@redhat.com> References: <1370202787-3712-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1370202787-3712-1-git-send-email-mst@redhat.com> Subject: [Qemu-devel] [PULL 7/9] fw_cfg: add API to find FW cfg object List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Remove some code duplication by adding a function to look up the fw cfg file. This way, we don't need to duplicate same strings everywhere. Use by both fw cfg and pvpanic device. Signed-off-by: Michael S. Tsirkin --- hw/misc/pvpanic.c | 2 +- hw/nvram/fw_cfg.c | 15 ++++++++++++--- include/hw/nvram/fw_cfg.h | 2 ++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/hw/misc/pvpanic.c b/hw/misc/pvpanic.c index 31e1b1d..159340f 100644 --- a/hw/misc/pvpanic.c +++ b/hw/misc/pvpanic.c @@ -96,7 +96,7 @@ static int pvpanic_isa_initfn(ISADevice *dev) isa_register_ioport(dev, &s->io, s->ioport); if (!port_configured) { - fw_cfg = object_resolve_path("/machine/fw_cfg", NULL); + fw_cfg = fw_cfg_find(); if (fw_cfg) { fw_cfg_add_file(fw_cfg, "etc/pvpanic-port", g_memdup(&s->ioport, sizeof(s->ioport)), diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 479113b..df3f089 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -32,6 +32,9 @@ #define FW_CFG_SIZE 2 #define FW_CFG_DATA_SIZE 1 +#define TYPE_FW_CFG "fw_cfg" +#define FW_CFG_NAME "fw_cfg" +#define FW_CFG_PATH "/machine/" FW_CFG_NAME typedef struct FWCfgEntry { uint32_t len; @@ -493,8 +496,8 @@ FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port, s = DO_UPCAST(FWCfgState, busdev.qdev, dev); - if (!object_resolve_path("/machine/fw_cfg", NULL)) { - object_property_add_child(qdev_get_machine(), "fw_cfg", OBJECT(s), + if (!object_resolve_path(FW_CFG_PATH, NULL)) { + object_property_add_child(qdev_get_machine(), FW_CFG_NAME, OBJECT(s), NULL); } @@ -553,6 +556,12 @@ static Property fw_cfg_properties[] = { DEFINE_PROP_END_OF_LIST(), }; +FWCfgState *fw_cfg_find(void) +{ + return OBJECT_CHECK(FWCfgState, object_resolve_path(FW_CFG_PATH, NULL), + TYPE_FW_CFG); +} + static void fw_cfg_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -566,7 +575,7 @@ static void fw_cfg_class_init(ObjectClass *klass, void *data) } static const TypeInfo fw_cfg_info = { - .name = "fw_cfg", + .name = TYPE_FW_CFG, .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(FWCfgState), .class_init = fw_cfg_class_init, diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h index f37714e..f60dd67 100644 --- a/include/hw/nvram/fw_cfg.h +++ b/include/hw/nvram/fw_cfg.h @@ -73,6 +73,8 @@ void fw_cfg_add_file(FWCfgState *s, const char *filename, void *data, FWCfgState *fw_cfg_init(uint32_t ctl_port, uint32_t data_port, hwaddr crl_addr, hwaddr data_addr); +FWCfgState *fw_cfg_find(void); + #endif /* NO_QEMU_PROTOS */ #endif -- MST