From nobody Tue Apr 16 08:05:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.51 as permitted sender) client-ip=209.85.208.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1617817994; cv=none; d=zohomail.com; s=zohoarc; b=cP0r7Qc0SEIQiQVFuIvDW0zm0UfK5/REtFFEGRfu33A7vcDYQraZ38SC4/ttDb9/Zoaodt9i7U8Mq5BMy5ZI3uwRBEHiuxSMV1TUqzXE95PzLB9Ylg9+WV6vOWr4BWavV3HS93ypcMwJojfpMIUKHt5HyCfRsElEay2B99Lv2Oo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617817994; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=xckbXOAUz4gEWTqUWQhhtwYLH97HX8wVamKgf16jiqI=; b=gosg3MtFsVowzPT21dU91pM8Xe0Fotlm6CdisklpD8cXMTYTc84P91fHsGKWnooKLJxq12TK79FLYOkg0hVkIdkAPQSB5bpGn+fV+rq/E+rQsSWPFXN60useiRM0wE/c5iNXeslusWcYNCBmhzC3CQ8MgHRJzb3qdoRGZPYr74o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by mx.zohomail.com with SMTPS id 1617817994414723.8303015579423; Wed, 7 Apr 2021 10:53:14 -0700 (PDT) Received: by mail-ed1-f51.google.com with SMTP id w23so10674591edx.7 for ; Wed, 07 Apr 2021 10:53:13 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id r17sm16492760edx.1.2021.04.07.10.53.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Apr 2021 10:53:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xckbXOAUz4gEWTqUWQhhtwYLH97HX8wVamKgf16jiqI=; b=ggZyGL6UYGt9XCFFhigw2XFxzz54RtGMesmQTO7s3QrzQizfM/+yleec64u3RMN7vA UQEvh+364DsdDsMcvIGpwtRX7g4cSH0j9Qi/22i3QUpLJZvC1xLMFt0OEuGWp6kVzSZJ VTBhARUPOQ5E63pYqO4YmusdTskEk9MQF775FVSr5vddFd4gtSwx38mLKoE6uIpULIh4 ODnKLsbqqfULv/TueRV7bGPROqioZH66oj51nm5/OxumrHvhByRF5DcqgNqkw6+Kd3JR ZjOW5ZvN0sQKmv75FM4zK5gf2tgv3vFbc6Sg3GBAGaFfC+3E86iaRLoEhDYNM5e6ML/A x0Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=xckbXOAUz4gEWTqUWQhhtwYLH97HX8wVamKgf16jiqI=; b=OqiiMVv2kERfmpO1/bOoebiqfmgyJkC4hEDZdkCMH+Yo98H1n9ZxOD3zb3cT3pamlt HW7/QNL9clkcjr04gVOFfGa2FDeQMSLehlCQ1XT8yhiR3SSV18I87pFtHunZEOute5lW rzLRFTdHT/2VMCjfruhABtWUu0VqKyl1eLMJyN/PUwAl/99NEFkSgyO3LlkVm63LWpYw nBP4DF19cHBec/gXL7yRjodtTnoX/Li9uhGROAyk4v0dAK3jcbPyHKgmM/9HiOq3p4su RU966CnX3e2KMtmVeJ1gskF3mfcs5hvDA7d1uC6JzTI5qXJhXDyY5gJAr7vCvNr71L6R bLzg== X-Gm-Message-State: AOAM5323riU62leM4Rot9fBCyuP7jzdjlhmDKe9XYA3jYAKN45uHUI9O 046GDE4lJTEQ8ahrMRv4y2o= X-Google-Smtp-Source: ABdhPJz3QPeCXZovw/QFaH+4jnkmKVnUXw1rxjewj5gYcIk1vgsWzVxz1ywLfboNEAZzuKgXwcN3+g== X-Received: by 2002:a05:6402:42d1:: with SMTP id i17mr5717278edc.131.1617817992555; Wed, 07 Apr 2021 10:53:12 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Artyom Tarasenko , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-6.1 1/3] hw/sparc/sun4m: Introduce TYPE_SUN4M_MACHINE and Sun4mMachineClass Date: Wed, 7 Apr 2021 19:53:03 +0200 Message-Id: <20210407175305.1771069-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210407175305.1771069-1-f4bug@amsat.org> References: <20210407175305.1771069-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) All sun4m machines use a const sun4m_hwdef structure entry. We want to have the common machine code to access this const entry. The QOM way is to have it in the MachineClass. Introduce the Sun4mMachineClass which expands MachineClass. All sun4m machines inherit the TYPE_SUN4M_MACHINE. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sparc/sun4m.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 1a00816d9a8..543a52a8fc8 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -107,6 +107,16 @@ struct sun4m_hwdef { uint8_t nvram_machine_id; }; =20 +struct Sun4mMachineClass { + /*< private >*/ + MachineClass parent_obj; + /*< public >*/ +}; +typedef struct Sun4mMachineClass Sun4mMachineClass; + +#define TYPE_SUN4M_MACHINE MACHINE_TYPE_NAME("sun4m-common") +DECLARE_CLASS_CHECKERS(Sun4mMachineClass, SUN4M_MACHINE, TYPE_SUN4M_MACHIN= E) + const char *fw_cfg_arch_key_name(uint16_t key) { static const struct { @@ -1433,7 +1443,7 @@ static void ss5_class_init(ObjectClass *oc, void *dat= a) =20 static const TypeInfo ss5_type =3D { .name =3D MACHINE_TYPE_NAME("SS-5"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D ss5_class_init, }; =20 @@ -1453,7 +1463,7 @@ static void ss10_class_init(ObjectClass *oc, void *da= ta) =20 static const TypeInfo ss10_type =3D { .name =3D MACHINE_TYPE_NAME("SS-10"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D ss10_class_init, }; =20 @@ -1473,7 +1483,7 @@ static void ss600mp_class_init(ObjectClass *oc, void = *data) =20 static const TypeInfo ss600mp_type =3D { .name =3D MACHINE_TYPE_NAME("SS-600MP"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D ss600mp_class_init, }; =20 @@ -1493,7 +1503,7 @@ static void ss20_class_init(ObjectClass *oc, void *da= ta) =20 static const TypeInfo ss20_type =3D { .name =3D MACHINE_TYPE_NAME("SS-20"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D ss20_class_init, }; =20 @@ -1512,7 +1522,7 @@ static void voyager_class_init(ObjectClass *oc, void = *data) =20 static const TypeInfo voyager_type =3D { .name =3D MACHINE_TYPE_NAME("Voyager"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D voyager_class_init, }; =20 @@ -1531,7 +1541,7 @@ static void ss_lx_class_init(ObjectClass *oc, void *d= ata) =20 static const TypeInfo ss_lx_type =3D { .name =3D MACHINE_TYPE_NAME("LX"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D ss_lx_class_init, }; =20 @@ -1550,7 +1560,7 @@ static void ss4_class_init(ObjectClass *oc, void *dat= a) =20 static const TypeInfo ss4_type =3D { .name =3D MACHINE_TYPE_NAME("SS-4"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D ss4_class_init, }; =20 @@ -1569,7 +1579,7 @@ static void scls_class_init(ObjectClass *oc, void *da= ta) =20 static const TypeInfo scls_type =3D { .name =3D MACHINE_TYPE_NAME("SPARCClassic"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D scls_class_init, }; =20 @@ -1588,12 +1598,21 @@ static void sbook_class_init(ObjectClass *oc, void = *data) =20 static const TypeInfo sbook_type =3D { .name =3D MACHINE_TYPE_NAME("SPARCbook"), - .parent =3D TYPE_MACHINE, + .parent =3D TYPE_SUN4M_MACHINE, .class_init =3D sbook_class_init, }; =20 +static const TypeInfo sun4m_typeinfo =3D { + .name =3D TYPE_SUN4M_MACHINE, + .parent =3D TYPE_MACHINE, + .class_size =3D sizeof(Sun4mMachineClass), + .abstract =3D true, +}; + static void sun4m_register_types(void) { + type_register_static(&sun4m_typeinfo); + type_register_static(&idreg_info); type_register_static(&afx_info); type_register_static(&prom_info); --=20 2.26.3 From nobody Tue Apr 16 08:05:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.50 as permitted sender) client-ip=209.85.208.50; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f50.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1617817999; cv=none; d=zohomail.com; s=zohoarc; b=RapRtg82jz8Xsv0v/JgoN3ISHxEFyRyv9MjD2h3nL8eO19g8O9QNz4WYtgOzZqFQU35wlVGTlAbOG7ebGCUz45EdHuqEHUEKjvRoKQ2iql3MKB9cC+ZQExi+pNS3SbUedyTIWwJ0K+U4YgldD+BSjd18KCzgtp1F0o0MjvzJi4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617817999; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EyWTFFAUlShQplxLUre4Wbxf2t/EIZLRggDuT70Acx8=; b=jVbaxCrSBhScIVaOtxuaYsnP24Y+kXwodIUOK8LfyrHTVIyOyajar55gRxROwMqdgceuTNTr61RdgjYrrh714HxDMqHCyyqs5vk2y/Buud4QNYmE/Xd2vjkXbD2tF37XufXHtY4GOr93GYMg7b8XZRtLZwCWQ7rKBzrZwrOrpU0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by mx.zohomail.com with SMTPS id 1617817999479439.1598719909932; Wed, 7 Apr 2021 10:53:19 -0700 (PDT) Received: by mail-ed1-f50.google.com with SMTP id f8so17905800edd.11 for ; Wed, 07 Apr 2021 10:53:18 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id r19sm12921180ejr.55.2021.04.07.10.53.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Apr 2021 10:53:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EyWTFFAUlShQplxLUre4Wbxf2t/EIZLRggDuT70Acx8=; b=lyHGb6/UuQi4hGlzeeHz7pzT9VcLaijPTSnx6yQ/03L+5LAoDJiW9z0b2gI4CurBKt VkfrX35KB7TAXa1OXepL/qSr19x7lHxQApPEJ2gLlx1kYA3b7+PU4lFYtf4zf4Hf0vqv jOTx+AwjHgBE11NYUBfm1tBiL589a8GA3JgGxXq3D2ilnO/TKB0RdJgNX31jYMita66O BolB9X5EiP1OIkl3KedSaKGarz8zkaU8Oat9IoSYboycqj0QXsAiZupN6i0UlSQlNfLD ij4dpYGPnW2NWQrefjP1zUxXx7q9foJ39zgnCz5dfy8wy91YXey1SVaogS805xakFm3N p2WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=EyWTFFAUlShQplxLUre4Wbxf2t/EIZLRggDuT70Acx8=; b=Paf8ydjg9IBJciicIzLOeOOfmlW9lFn91I9b/Uq4VMGklc9pZUwrVx498ytttdkgTD A+O3k/XDPbQD6pIqTnN4lj0DzNUYJIlMeL2FlqRuqIQcGs9gvxhWtesd2KyJpGWFVIPh QP1VUX6TmHw8rUxqcYGbij3L8gZDEEUryoL50tRtF3vhIr0+1M4+8MLEIZQUTVT3xeJy eRnYEf/U9kobwYnRjnXiSUYvATAZEiWIjdz4L7AODISq5YT12lemz9PVWKInyWyYY1iG htl7oaCKcsCKFCvtH25i230KYQIN1h1WTM6s/2CZYIC5jZoDCxRp1Zce/HRGkVY2DCgb l0dQ== X-Gm-Message-State: AOAM530pkGEA+sLkImh2PHWm6EJSTvyciCFq0m0BDteY17m86DRLST+e ZbAcMiHwjb0UzVoETy6z9lg= X-Google-Smtp-Source: ABdhPJzLmfF8+SCYnSaxcZ/rVN/L78sDPm7fpTi/X9rkVvyK7kO/vaDvWfryYAqNg2YCBEX+/xTIBw== X-Received: by 2002:a05:6402:5113:: with SMTP id m19mr6053058edd.78.1617817997660; Wed, 07 Apr 2021 10:53:17 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Artyom Tarasenko , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-6.1 2/3] hw/sparc/sun4m: Factor out sun4m_machine_class_common_init() Date: Wed, 7 Apr 2021 19:53:04 +0200 Message-Id: <20210407175305.1771069-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210407175305.1771069-1-f4bug@amsat.org> References: <20210407175305.1771069-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Some MachineClass fields are common to all sun4m machines. Factor setting these fields out in a common helper: sun4m_machine_class_common_init(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sparc/sun4m.c | 53 ++++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 36 deletions(-) diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 543a52a8fc8..a0d0624e41b 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -1427,18 +1427,23 @@ static void sbook_init(MachineState *machine) sun4m_hw_init(&sun4m_hwdefs[8], machine); } =20 +static void sun4m_machine_class_common_init(MachineClass *mc) +{ + mc->block_default_type =3D IF_SCSI; + mc->default_boot_order =3D "c"; + mc->default_display =3D "tcx"; + mc->default_ram_id =3D "sun4m.ram"; +} + static void ss5_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation 5"; mc->init =3D ss5_init; - mc->block_default_type =3D IF_SCSI; mc->is_default =3D true; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("Fujitsu-MB86904"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo ss5_type =3D { @@ -1453,12 +1458,9 @@ static void ss10_class_init(ObjectClass *oc, void *d= ata) =20 mc->desc =3D "Sun4m platform, SPARCstation 10"; mc->init =3D ss10_init; - mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-SuperSparc-II"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo ss10_type =3D { @@ -1473,12 +1475,9 @@ static void ss600mp_class_init(ObjectClass *oc, void= *data) =20 mc->desc =3D "Sun4m platform, SPARCserver 600MP"; mc->init =3D ss600mp_init; - mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-SuperSparc-II"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo ss600mp_type =3D { @@ -1493,12 +1492,9 @@ static void ss20_class_init(ObjectClass *oc, void *d= ata) =20 mc->desc =3D "Sun4m platform, SPARCstation 20"; mc->init =3D ss20_init; - mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-SuperSparc-II"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo ss20_type =3D { @@ -1513,11 +1509,8 @@ static void voyager_class_init(ObjectClass *oc, void= *data) =20 mc->desc =3D "Sun4m platform, SPARCstation Voyager"; mc->init =3D vger_init; - mc->block_default_type =3D IF_SCSI; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("Fujitsu-MB86904"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo voyager_type =3D { @@ -1532,11 +1525,8 @@ static void ss_lx_class_init(ObjectClass *oc, void *= data) =20 mc->desc =3D "Sun4m platform, SPARCstation LX"; mc->init =3D ss_lx_init; - mc->block_default_type =3D IF_SCSI; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-MicroSparc-I"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo ss_lx_type =3D { @@ -1551,11 +1541,8 @@ static void ss4_class_init(ObjectClass *oc, void *da= ta) =20 mc->desc =3D "Sun4m platform, SPARCstation 4"; mc->init =3D ss4_init; - mc->block_default_type =3D IF_SCSI; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("Fujitsu-MB86904"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo ss4_type =3D { @@ -1570,11 +1557,8 @@ static void scls_class_init(ObjectClass *oc, void *d= ata) =20 mc->desc =3D "Sun4m platform, SPARCClassic"; mc->init =3D scls_init; - mc->block_default_type =3D IF_SCSI; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-MicroSparc-I"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo scls_type =3D { @@ -1589,11 +1573,8 @@ static void sbook_class_init(ObjectClass *oc, void *= data) =20 mc->desc =3D "Sun4m platform, SPARCbook"; mc->init =3D sbook_init; - mc->block_default_type =3D IF_SCSI; - mc->default_boot_order =3D "c"; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-MicroSparc-I"); - mc->default_display =3D "tcx"; - mc->default_ram_id =3D "sun4m.ram"; + sun4m_machine_class_common_init(mc); } =20 static const TypeInfo sbook_type =3D { --=20 2.26.3 From nobody Tue Apr 16 08:05:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.208.51 as permitted sender) client-ip=209.85.208.51; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-ed1-f51.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1617818004; cv=none; d=zohomail.com; s=zohoarc; b=GIRhGqvX7XdkbN6FmaXEavWZUdcTgH3rDQAYpS+Eb0o5rnEEy7V7wPRtKOLX8VP/SJ9YbpCl+DjnNiPi+9oeEe9ZtiZqMFGtAE58lqvyMZSEzMkh0vt3zYNNC90K6hkrl9CYqtUMo11ugOGarhx4vAjqwbpTTpvK0UEhL/I+jxU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1617818004; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=oWpLJfHMn2RAtJSkAT5BHTjoDVB9WH4yRIEO9hGAFkc=; b=OhLZwxvivg0fIPDla3OEyszs9CVZFWv/rdQVocUaEdbnVOJ7SOPrwuA0pVGDIW+K1bcH8Bzn2iXavAwWtxoiH0MmEHW1cqYQt2ITdz4wbzQAR21ZvGe5cYdzxytREtP0pc5EZvn34bBH0Fh88qqTkNZIdWGHlnz80k8lOgWGXFY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by mx.zohomail.com with SMTPS id 1617818004695128.29549948564784; Wed, 7 Apr 2021 10:53:24 -0700 (PDT) Received: by mail-ed1-f51.google.com with SMTP id w23so10675155edx.7 for ; Wed, 07 Apr 2021 10:53:24 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id um13sm6551324ejb.84.2021.04.07.10.53.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Apr 2021 10:53:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oWpLJfHMn2RAtJSkAT5BHTjoDVB9WH4yRIEO9hGAFkc=; b=XsAQRNuF2lEv9a+QlVnPxPAoFoxk3xIePfvVYdE1kqz8S8+s+mqTzSF48kBeUP1VUi NLYAkahUKTOuifazBkFiOp3NV/SZb1DRz1pP7Q7Al9sklhEOfKAk3LIyXSl6zKOB5/AG z/CjsWSqw2+iGlfi/AT+Wf9dj9GimlRpNc+cUB+XSbnoX/ZAczoUxWVdsML8DL3edKh6 iBY2I6vfMui3q8RrYNzOzZtCkXNWlmTcNp8hGqI/K5y7EqmAYUGX2phZ95rlqxRaVcGQ h1HYeWhZ2JyuQ1TmbGTHsWJ3u/qfm4HUg1YproyP97QiHXCsZbgRwAZa/p3EcR5Ok7ME vO1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=oWpLJfHMn2RAtJSkAT5BHTjoDVB9WH4yRIEO9hGAFkc=; b=PT2yvCFbbv40xQrA+5NuDeBNjlSjh3Mt840OalvPgJ8dcTBfGoeKA/00GpbFpefTyf LpQFmdOo5/qS4KhUk8/hi3Hm1MILh29k+F4B6FK8g+94g8Xd07fXHdWP+5LZZPxfXZvq ir54STiiY3j3MVcAtgKNnsRuIaJeJmuQFcjEk5BTgNle+fJd0eIESnH9pVRoPX7nwC1c /5kQgvuhxB8gaC2kYphTwnuoUszDIPAhZjxhv5xuZ9ifGkyILQc/z080X8otKhGTk5Fh hkqqb729zr7T+3nhnmkS2bYA1MsWqjM10K2gtJDTPaZ2QHCoe1QkDCAhhpD/cGICcYQ1 lY3g== X-Gm-Message-State: AOAM533qlkq2wq9CQ37Jo4F+2rM6c9h7YUi7Lb87V0/YxAJ7WqgKtYvD SA6ZZXhajM+94KYAhLVlp0U= X-Google-Smtp-Source: ABdhPJywUpd61LjoEuKCDbbK5OorXnJ+j+o48e0zCUE4odQ1ASqdweTTpR1rFufp073X819uBFiT4w== X-Received: by 2002:a50:a699:: with SMTP id e25mr5887263edc.276.1617818002816; Wed, 07 Apr 2021 10:53:22 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland , Artyom Tarasenko , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH-for-6.1 3/3] hw/sparc/sun4m: Make sun4m_hwdefs a Sun4mMachineClass field Date: Wed, 7 Apr 2021 19:53:05 +0200 Message-Id: <20210407175305.1771069-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210407175305.1771069-1-f4bug@amsat.org> References: <20210407175305.1771069-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Add a reference to sun4m_hwdefs in Sun4mMachineClass. Set this new field in sun4m_machine_class_common_init(), our QOM class_init() handler. Since sun4m_hwdefs is now accessible from the MachineState, we can simplify sun4m_hw_init() which become our unique machine class_init(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sparc/sun4m.c | 108 +++++++++++++++-------------------------------- 1 file changed, 34 insertions(+), 74 deletions(-) diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index a0d0624e41b..fab56ab3e56 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -111,6 +111,7 @@ struct Sun4mMachineClass { /*< private >*/ MachineClass parent_obj; /*< public >*/ + const struct sun4m_hwdef *hwdef; }; typedef struct Sun4mMachineClass Sun4mMachineClass; =20 @@ -847,9 +848,9 @@ static void dummy_fdc_tc(void *opaque, int irq, int lev= el) { } =20 -static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, - MachineState *machine) +static void sun4m_hw_init(MachineState *machine) { + const struct sun4m_hwdef *hwdef =3D SUN4M_MACHINE_GET_CLASS(machine)->= hwdef; DeviceState *slavio_intctl; unsigned int i; Nvram *nvram; @@ -1373,77 +1374,28 @@ static const struct sun4m_hwdef sun4m_hwdefs[] =3D { }, }; =20 -/* SPARCstation 5 hardware initialisation */ -static void ss5_init(MachineState *machine) +static void sun4m_machine_class_common_init(MachineClass *mc, + const struct sun4m_hwdef *hwde= f) { - sun4m_hw_init(&sun4m_hwdefs[0], machine); -} + Sun4mMachineClass *smc =3D SUN4M_MACHINE_CLASS(mc); =20 -/* SPARCstation 10 hardware initialisation */ -static void ss10_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[1], machine); -} - -/* SPARCserver 600MP hardware initialisation */ -static void ss600mp_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[2], machine); -} - -/* SPARCstation 20 hardware initialisation */ -static void ss20_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[3], machine); -} - -/* SPARCstation Voyager hardware initialisation */ -static void vger_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[4], machine); -} - -/* SPARCstation LX hardware initialisation */ -static void ss_lx_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[5], machine); -} - -/* SPARCstation 4 hardware initialisation */ -static void ss4_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[6], machine); -} - -/* SPARCClassic hardware initialisation */ -static void scls_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[7], machine); -} - -/* SPARCbook hardware initialisation */ -static void sbook_init(MachineState *machine) -{ - sun4m_hw_init(&sun4m_hwdefs[8], machine); -} - -static void sun4m_machine_class_common_init(MachineClass *mc) -{ + mc->init =3D sun4m_hw_init; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; mc->default_display =3D "tcx"; mc->default_ram_id =3D "sun4m.ram"; + smc->hwdef =3D hwdef; } =20 +/* SPARCstation 5 hardware initialisation */ static void ss5_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation 5"; - mc->init =3D ss5_init; mc->is_default =3D true; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("Fujitsu-MB86904"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[0]); } =20 static const TypeInfo ss5_type =3D { @@ -1452,15 +1404,16 @@ static const TypeInfo ss5_type =3D { .class_init =3D ss5_class_init, }; =20 +/* SPARCstation 10 hardware initialisation */ + static void ss10_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation 10"; - mc->init =3D ss10_init; mc->max_cpus =3D 4; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-SuperSparc-II"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[1]); } =20 static const TypeInfo ss10_type =3D { @@ -1469,15 +1422,16 @@ static const TypeInfo ss10_type =3D { .class_init =3D ss10_class_init, }; =20 +/* SPARCserver 600MP hardware initialisation */ + static void ss600mp_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCserver 600MP"; - mc->init =3D ss600mp_init; mc->max_cpus =3D 4; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-SuperSparc-II"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[2]); } =20 static const TypeInfo ss600mp_type =3D { @@ -1486,15 +1440,16 @@ static const TypeInfo ss600mp_type =3D { .class_init =3D ss600mp_class_init, }; =20 +/* SPARCstation 20 hardware initialisation */ + static void ss20_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation 20"; - mc->init =3D ss20_init; mc->max_cpus =3D 4; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-SuperSparc-II"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[3]); } =20 static const TypeInfo ss20_type =3D { @@ -1503,14 +1458,15 @@ static const TypeInfo ss20_type =3D { .class_init =3D ss20_class_init, }; =20 +/* SPARCstation Voyager hardware initialisation */ + static void voyager_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation Voyager"; - mc->init =3D vger_init; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("Fujitsu-MB86904"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[4]); } =20 static const TypeInfo voyager_type =3D { @@ -1519,14 +1475,15 @@ static const TypeInfo voyager_type =3D { .class_init =3D voyager_class_init, }; =20 +/* SPARCstation LX hardware initialisation */ + static void ss_lx_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation LX"; - mc->init =3D ss_lx_init; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-MicroSparc-I"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[5]); } =20 static const TypeInfo ss_lx_type =3D { @@ -1535,14 +1492,15 @@ static const TypeInfo ss_lx_type =3D { .class_init =3D ss_lx_class_init, }; =20 +/* SPARCstation 4 hardware initialisation */ + static void ss4_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCstation 4"; - mc->init =3D ss4_init; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("Fujitsu-MB86904"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[6]); } =20 static const TypeInfo ss4_type =3D { @@ -1551,14 +1509,15 @@ static const TypeInfo ss4_type =3D { .class_init =3D ss4_class_init, }; =20 +/* SPARCClassic hardware initialisation */ + static void scls_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCClassic"; - mc->init =3D scls_init; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-MicroSparc-I"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[7]); } =20 static const TypeInfo scls_type =3D { @@ -1567,14 +1526,15 @@ static const TypeInfo scls_type =3D { .class_init =3D scls_class_init, }; =20 +/* SPARCbook hardware initialisation */ + static void sbook_class_init(ObjectClass *oc, void *data) { MachineClass *mc =3D MACHINE_CLASS(oc); =20 mc->desc =3D "Sun4m platform, SPARCbook"; - mc->init =3D sbook_init; mc->default_cpu_type =3D SPARC_CPU_TYPE_NAME("TI-MicroSparc-I"); - sun4m_machine_class_common_init(mc); + sun4m_machine_class_common_init(mc, &sun4m_hwdefs[8]); } =20 static const TypeInfo sbook_type =3D { --=20 2.26.3