From nobody Tue Feb 10 19:18:05 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 149571945103574.5397591252513; Thu, 25 May 2017 06:37:31 -0700 (PDT) Received: from localhost ([::1]:60122 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDsxC-0005Mk-BP for importer@patchew.org; Thu, 25 May 2017 09:37:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDsvO-0004ET-MR for qemu-devel@nongnu.org; Thu, 25 May 2017 09:35:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dDsvK-0005QO-9E for qemu-devel@nongnu.org; Thu, 25 May 2017 09:35:34 -0400 Received: from m12-15.163.com ([220.181.12.15]:35923) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dDsvJ-0005PW-2p for qemu-devel@nongnu.org; Thu, 25 May 2017 09:35:30 -0400 Received: from localhost.localdomain (unknown [1.203.183.150]) by smtp11 (Coremail) with SMTP id D8CowADnZC6B3SZZ9rivHA--.14274S7; Thu, 25 May 2017 21:34:59 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=7jPGA xEKeOqKAm/8VyCbCivHh+sJQZFkcNfYBmsEkHo=; b=DSul4x1WbFkAlXbqsYtgH TxnGhvOhL83wG4qTqNPGdXybmVY7qIa9XPpXMoFlfaNUIS4u8NhCGwWeS8AGB3A8 VIsbTDfo4zJjUQl5pNCPHdeLn2HyfFrKbJYdotspWBD+BVv4/BSgL8qsBCBHy6wS 81oiHsJ9cbgIIyULZ4Cx24= From: xiaoqiang zhao To: qemu-devel@nongnu.org Date: Thu, 25 May 2017 21:34:48 +0800 Message-Id: <20170525133451.22459-6-zxq_yx_007@163.com> X-Mailer: git-send-email 2.13.0.rc2.115.g10c78a162 In-Reply-To: <20170525133451.22459-1-zxq_yx_007@163.com> References: <20170525133451.22459-1-zxq_yx_007@163.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: D8CowADnZC6B3SZZ9rivHA--.14274S7 X-Coremail-Antispam: 1Uf129KBjvJXoWxZw4UGFyfZw1DWFW3tr1rtFb_yoW5ZFykpF Z7CF93WrW8JF4DJ393KrWkWas8Jwn5Gw48t3WxGwsakw1UGr95AF1kA3yS9rWUJrZ7ZF4r tay0y343Wa17Cw7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j6MKZUUUUU= X-Originating-IP: [1.203.183.150] X-CM-SenderInfo: 520ts5t0bqili6rwjhhfrp/xtbB0gPixlUMEC16EwAAs4 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 220.181.12.15 Subject: [Qemu-devel] [PATCH v3 5/8] hw/timer: QOM'ify m48txx_sysbus X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: edgar.iglesias@xilinx.com, peter.maydell@linaro.org, mark.cave-ayland@ilande.co.uk, f4bug@amsat.org, pbonzini@redhat.com, atar4qemu@gmail.com, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 * split the old SysBus init function into an instance_init and a Device realize function * use DeviceClass::realize instead of SysBusDeviceClass::init * assign DeviceClass::vmsd instead of using vmstate_register function Signed-off-by: xiaoqiang zhao Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/timer/m48t59.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/hw/timer/m48t59.c b/hw/timer/m48t59.c index 474981a6ac..3a9f541c9b 100644 --- a/hw/timer/m48t59.c +++ b/hw/timer/m48t59.c @@ -640,34 +640,33 @@ void m48t59_realize_common(M48t59State *s, Error **er= rp) s->wd_timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, &watchdog_cb, s); } qemu_get_timedate(&s->alarm, 0); - - vmstate_register(NULL, -1, &vmstate_m48t59, s); } =20 -static int m48t59_init1(SysBusDevice *dev) +static void m48t59_init1(Object *obj) { - M48txxSysBusDeviceClass *u =3D M48TXX_SYS_BUS_GET_CLASS(dev); - M48txxSysBusState *d =3D M48TXX_SYS_BUS(dev); - Object *o =3D OBJECT(dev); + M48txxSysBusDeviceClass *u =3D M48TXX_SYS_BUS_GET_CLASS(obj); + M48txxSysBusState *d =3D M48TXX_SYS_BUS(obj); + SysBusDevice *dev =3D SYS_BUS_DEVICE(obj); M48t59State *s =3D &d->state; - Error *err =3D NULL; =20 s->model =3D u->info.model; s->size =3D u->info.size; sysbus_init_irq(dev, &s->IRQ); =20 - memory_region_init_io(&s->iomem, o, &nvram_ops, s, "m48t59.nvram", + memory_region_init_io(&s->iomem, obj, &nvram_ops, s, "m48t59.nvram", s->size); - memory_region_init_io(&d->io, o, &m48t59_io_ops, s, "m48t59", 4); - sysbus_init_mmio(dev, &s->iomem); - sysbus_init_mmio(dev, &d->io); - m48t59_realize_common(s, &err); - if (err !=3D NULL) { - error_free(err); - return -1; - } + memory_region_init_io(&d->io, obj, &m48t59_io_ops, s, "m48t59", 4); +} + +static void m48t59_realize(DeviceState *dev, Error **errp) +{ + M48txxSysBusState *d =3D M48TXX_SYS_BUS(dev); + M48t59State *s =3D &d->state; + SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); =20 - return 0; + sysbus_init_mmio(sbd, &s->iomem); + sysbus_init_mmio(sbd, &d->io); + m48t59_realize_common(s, errp); } =20 static uint32_t m48txx_sysbus_read(Nvram *obj, uint32_t addr) @@ -696,12 +695,12 @@ static Property m48t59_sysbus_properties[] =3D { static void m48txx_sysbus_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); - SysBusDeviceClass *k =3D SYS_BUS_DEVICE_CLASS(klass); NvramClass *nc =3D NVRAM_CLASS(klass); =20 - k->init =3D m48t59_init1; + dc->realize =3D m48t59_realize; dc->reset =3D m48t59_reset_sysbus; dc->props =3D m48t59_sysbus_properties; + dc->vmsd =3D &vmstate_m48t59; nc->read =3D m48txx_sysbus_read; nc->write =3D m48txx_sysbus_write; nc->toggle_lock =3D m48txx_sysbus_toggle_lock; @@ -725,6 +724,7 @@ static const TypeInfo m48txx_sysbus_type_info =3D { .name =3D TYPE_M48TXX_SYS_BUS, .parent =3D TYPE_SYS_BUS_DEVICE, .instance_size =3D sizeof(M48txxSysBusState), + .instance_init =3D m48t59_init1, .abstract =3D true, .class_init =3D m48txx_sysbus_class_init, .interfaces =3D (InterfaceInfo[]) { --=20 2.13.0.rc2.115.g10c78a162