Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1197476/?format=api
{ "id": 1197476, "url": "http://patchwork.ozlabs.org/api/patches/1197476/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20191119141211.25716-14-clg@kaod.org/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20191119141211.25716-14-clg@kaod.org>", "list_archive_url": null, "date": "2019-11-19T14:12:07", "name": "[13/17] aspeed: Remove AspeedBoardConfig array and use AspeedMachineClass", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "b63da5c2a3798595d3c30a26278d1398cda72117", "submitter": { "id": 68548, "url": "http://patchwork.ozlabs.org/api/people/68548/?format=api", "name": "Cédric Le Goater", "email": "clg@kaod.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20191119141211.25716-14-clg@kaod.org/mbox/", "series": [ { "id": 143789, "url": "http://patchwork.ozlabs.org/api/series/143789/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=143789", "date": "2019-11-19T14:11:54", "name": "aspeed: extensions and fixes", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/143789/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1197476/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1197476/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org; spf=pass (sender SPF authorized)\n\tsmtp.mailfrom=nongnu.org (client-ip=209.51.188.17;\n\thelo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=kaod.org" ], "Received": [ "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 47HSfZ2m06z9sPn\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Nov 2019 01:20:54 +1100 (AEDT)", "from localhost ([::1]:46016 helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1iX4N9-0005TK-Rz\n\tfor incoming@patchwork.ozlabs.org; Tue, 19 Nov 2019 09:20:51 -0500", "from eggs.gnu.org ([2001:470:142:3::10]:42193)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <clg@kaod.org>) id 1iX4Gg-0007XI-D1\n\tfor qemu-devel@nongnu.org; Tue, 19 Nov 2019 09:14:13 -0500", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <clg@kaod.org>) id 1iX4Ge-0005jx-5h\n\tfor qemu-devel@nongnu.org; Tue, 19 Nov 2019 09:14:10 -0500", "from 19.mo5.mail-out.ovh.net ([46.105.35.78]:47639)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <clg@kaod.org>) id 1iX4Gd-0005jO-PT\n\tfor qemu-devel@nongnu.org; Tue, 19 Nov 2019 09:14:08 -0500", "from player795.ha.ovh.net (unknown [10.108.54.119])\n\tby mo5.mail-out.ovh.net (Postfix) with ESMTP id 3E45C25ABE0\n\tfor <qemu-devel@nongnu.org>; Tue, 19 Nov 2019 15:14:06 +0100 (CET)", "from kaod.org (deibp9eh1--blueice1n4.emea.ibm.com [195.212.29.166])\n\t(Authenticated sender: clg@kaod.org)\n\tby player795.ha.ovh.net (Postfix) with ESMTPSA id E8376C18AE91;\n\tTue, 19 Nov 2019 14:13:58 +0000 (UTC)" ], "From": "=?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@kaod.org>", "To": "Peter Maydell <peter.maydell@linaro.org>", "Subject": "[PATCH 13/17] aspeed: Remove AspeedBoardConfig array and use\n\tAspeedMachineClass", "Date": "Tue, 19 Nov 2019 15:12:07 +0100", "Message-Id": "<20191119141211.25716-14-clg@kaod.org>", "X-Mailer": "git-send-email 2.21.0", "In-Reply-To": "<20191119141211.25716-1-clg@kaod.org>", "References": "<20191119141211.25716-1-clg@kaod.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "X-Ovh-Tracer-Id": "17919259971289058065", "X-VR-SPAMSTATE": "OK", "X-VR-SPAMSCORE": "-100", "X-VR-SPAMCAUSE": "gggruggvucftvghtrhhoucdtuddrgedufedrudegkedgiedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdqfffguegfifdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkffojghfgggtgfesthekredtredtjeenucfhrhhomhepveorughrihgtucfnvgcuifhorghtvghruceotghlgheskhgrohgurdhorhhgqeenucfkpheptddrtddrtddrtddpudelhedrvdduvddrvdelrdduieeinecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejleehrdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheptghlgheskhgrohgurdhorhhgpdhrtghpthhtohepqhgvmhhuqdguvghvvghlsehnohhnghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpeeh", "Content-Transfer-Encoding": "quoted-printable", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "46.105.35.78", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.23", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "Andrew Jeffery <andrew@aj.id.au>, =?utf-8?q?C=C3=A9dric_Le_Goater?=\n\t<clg@kaod.org>, qemu-arm@nongnu.org, Joel Stanley <joel@jms.id.au>,\n\tqemu-devel@nongnu.org", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "AspeedBoardConfig is a redundant way to define class attributes and it\ncomplexifies the machine definition and initialization.\n\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\nReviewed-by: Joel Stanley <joel@jms.id.au>\nSigned-off-by: Cédric Le Goater <clg@kaod.org>\n---\n include/hw/arm/aspeed.h | 24 ++---\n hw/arm/aspeed.c | 231 ++++++++++++++++++++++------------------\n 2 files changed, 137 insertions(+), 118 deletions(-)", "diff": "diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h\nindex f49bc7081e4d..4423cd0cda71 100644\n--- a/include/hw/arm/aspeed.h\n+++ b/include/hw/arm/aspeed.h\n@@ -13,19 +13,6 @@\n \n typedef struct AspeedBoardState AspeedBoardState;\n \n-typedef struct AspeedBoardConfig {\n- const char *name;\n- const char *desc;\n- const char *soc_name;\n- uint32_t hw_strap1;\n- uint32_t hw_strap2;\n- const char *fmc_model;\n- const char *spi_model;\n- uint32_t num_cs;\n- void (*i2c_init)(AspeedBoardState *bmc);\n- uint32_t ram;\n-} AspeedBoardConfig;\n-\n #define TYPE_ASPEED_MACHINE MACHINE_TYPE_NAME(\"aspeed\")\n #define ASPEED_MACHINE(obj) \\\n OBJECT_CHECK(AspeedMachine, (obj), TYPE_ASPEED_MACHINE)\n@@ -41,7 +28,16 @@ typedef struct AspeedMachine {\n \n typedef struct AspeedMachineClass {\n MachineClass parent_obj;\n- const AspeedBoardConfig *board;\n+\n+ const char *name;\n+ const char *desc;\n+ const char *soc_name;\n+ uint32_t hw_strap1;\n+ uint32_t hw_strap2;\n+ const char *fmc_model;\n+ const char *spi_model;\n+ uint32_t num_cs;\n+ void (*i2c_init)(AspeedBoardState *bmc);\n } AspeedMachineClass;\n \n \ndiff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c\nindex 028191ff36fc..e34e6787430b 100644\n--- a/hw/arm/aspeed.c\n+++ b/hw/arm/aspeed.c\n@@ -167,10 +167,10 @@ static void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,\n }\n }\n \n-static void aspeed_board_init(MachineState *machine,\n- const AspeedBoardConfig *cfg)\n+static void aspeed_machine_init(MachineState *machine)\n {\n AspeedBoardState *bmc;\n+ AspeedMachineClass *amc = ASPEED_MACHINE_GET_CLASS(machine);\n AspeedSoCClass *sc;\n DriveInfo *drive0 = drive_get(IF_MTD, 0, 0);\n ram_addr_t max_ram_size;\n@@ -182,18 +182,18 @@ static void aspeed_board_init(MachineState *machine,\n UINT32_MAX);\n \n object_initialize_child(OBJECT(machine), \"soc\", &bmc->soc,\n- (sizeof(bmc->soc)), cfg->soc_name, &error_abort,\n+ (sizeof(bmc->soc)), amc->soc_name, &error_abort,\n NULL);\n \n sc = ASPEED_SOC_GET_CLASS(&bmc->soc);\n \n object_property_set_uint(OBJECT(&bmc->soc), ram_size, \"ram-size\",\n &error_abort);\n- object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap1, \"hw-strap1\",\n+ object_property_set_int(OBJECT(&bmc->soc), amc->hw_strap1, \"hw-strap1\",\n &error_abort);\n- object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap2, \"hw-strap2\",\n+ object_property_set_int(OBJECT(&bmc->soc), amc->hw_strap2, \"hw-strap2\",\n &error_abort);\n- object_property_set_int(OBJECT(&bmc->soc), cfg->num_cs, \"num-cs\",\n+ object_property_set_int(OBJECT(&bmc->soc), amc->num_cs, \"num-cs\",\n &error_abort);\n object_property_set_int(OBJECT(&bmc->soc), machine->smp.cpus, \"num-cpus\",\n &error_abort);\n@@ -230,8 +230,8 @@ static void aspeed_board_init(MachineState *machine,\n \"max_ram\", max_ram_size - ram_size);\n memory_region_add_subregion(&bmc->ram_container, ram_size, &bmc->max_ram);\n \n- aspeed_board_init_flashes(&bmc->soc.fmc, cfg->fmc_model, &error_abort);\n- aspeed_board_init_flashes(&bmc->soc.spi[0], cfg->spi_model, &error_abort);\n+ aspeed_board_init_flashes(&bmc->soc.fmc, amc->fmc_model, &error_abort);\n+ aspeed_board_init_flashes(&bmc->soc.spi[0], amc->spi_model, &error_abort);\n \n /* Install first FMC flash content as a boot rom. */\n if (drive0) {\n@@ -255,8 +255,8 @@ static void aspeed_board_init(MachineState *machine,\n aspeed_board_binfo.loader_start = sc->memmap[ASPEED_SDRAM];\n aspeed_board_binfo.nb_cpus = bmc->soc.num_cpus;\n \n- if (cfg->i2c_init) {\n- cfg->i2c_init(bmc);\n+ if (amc->i2c_init) {\n+ amc->i2c_init(bmc);\n }\n \n for (i = 0; i < ARRAY_SIZE(bmc->soc.sdhci.slots); i++) {\n@@ -383,118 +383,141 @@ static void witherspoon_bmc_i2c_init(AspeedBoardState *bmc)\n 0x60);\n }\n \n-static void aspeed_machine_init(MachineState *machine)\n-{\n- AspeedMachineClass *amc = ASPEED_MACHINE_GET_CLASS(machine);\n-\n- aspeed_board_init(machine, amc->board);\n-}\n-\n static void aspeed_machine_class_init(ObjectClass *oc, void *data)\n {\n MachineClass *mc = MACHINE_CLASS(oc);\n- AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n- const AspeedBoardConfig *board = data;\n \n- mc->desc = board->desc;\n mc->init = aspeed_machine_init;\n mc->max_cpus = ASPEED_CPUS_NUM;\n mc->no_floppy = 1;\n mc->no_cdrom = 1;\n mc->no_parallel = 1;\n- if (board->ram) {\n- mc->default_ram_size = board->ram;\n- }\n- amc->board = board;\n }\n \n-static const TypeInfo aspeed_machine_type = {\n- .name = TYPE_ASPEED_MACHINE,\n- .parent = TYPE_MACHINE,\n- .instance_size = sizeof(AspeedMachine),\n- .class_size = sizeof(AspeedMachineClass),\n- .abstract = true,\n+static void aspeed_machine_palmetto_class_init(ObjectClass *oc, void *data)\n+{\n+ MachineClass *mc = MACHINE_CLASS(oc);\n+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n+\n+ mc->desc = \"OpenPOWER Palmetto BMC (ARM926EJ-S)\";\n+ amc->soc_name = \"ast2400-a1\";\n+ amc->hw_strap1 = PALMETTO_BMC_HW_STRAP1;\n+ amc->fmc_model = \"n25q256a\";\n+ amc->spi_model = \"mx25l25635e\";\n+ amc->num_cs = 1;\n+ amc->i2c_init = palmetto_bmc_i2c_init;\n+ mc->default_ram_size = 256 * MiB;\n+};\n+\n+static void aspeed_machine_ast2500_evb_class_init(ObjectClass *oc, void *data)\n+{\n+ MachineClass *mc = MACHINE_CLASS(oc);\n+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n+\n+ mc->desc = \"Aspeed AST2500 EVB (ARM1176)\";\n+ amc->soc_name = \"ast2500-a1\";\n+ amc->hw_strap1 = AST2500_EVB_HW_STRAP1;\n+ amc->fmc_model = \"w25q256\";\n+ amc->spi_model = \"mx25l25635e\";\n+ amc->num_cs = 1;\n+ amc->i2c_init = ast2500_evb_i2c_init;\n+ mc->default_ram_size = 512 * MiB;\n+};\n+\n+static void aspeed_machine_romulus_class_init(ObjectClass *oc, void *data)\n+{\n+ MachineClass *mc = MACHINE_CLASS(oc);\n+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n+\n+ mc->desc = \"OpenPOWER Romulus BMC (ARM1176)\";\n+ amc->soc_name = \"ast2500-a1\";\n+ amc->hw_strap1 = ROMULUS_BMC_HW_STRAP1;\n+ amc->fmc_model = \"n25q256a\";\n+ amc->spi_model = \"mx66l1g45g\";\n+ amc->num_cs = 2;\n+ amc->i2c_init = romulus_bmc_i2c_init;\n+ mc->default_ram_size = 512 * MiB;\n };\n \n-static const AspeedBoardConfig aspeed_boards[] = {\n+static void aspeed_machine_swift_class_init(ObjectClass *oc, void *data)\n+{\n+ MachineClass *mc = MACHINE_CLASS(oc);\n+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n+\n+ mc->desc = \"OpenPOWER Swift BMC (ARM1176)\";\n+ amc->soc_name = \"ast2500-a1\";\n+ amc->hw_strap1 = SWIFT_BMC_HW_STRAP1;\n+ amc->fmc_model = \"mx66l1g45g\";\n+ amc->spi_model = \"mx66l1g45g\";\n+ amc->num_cs = 2;\n+ amc->i2c_init = swift_bmc_i2c_init;\n+ mc->default_ram_size = 512 * MiB;\n+};\n+\n+static void aspeed_machine_witherspoon_class_init(ObjectClass *oc, void *data)\n+{\n+ MachineClass *mc = MACHINE_CLASS(oc);\n+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n+\n+ mc->desc = \"OpenPOWER Witherspoon BMC (ARM1176)\";\n+ amc->soc_name = \"ast2500-a1\";\n+ amc->hw_strap1 = WITHERSPOON_BMC_HW_STRAP1;\n+ amc->fmc_model = \"mx25l25635e\";\n+ amc->spi_model = \"mx66l1g45g\";\n+ amc->num_cs = 2;\n+ amc->i2c_init = witherspoon_bmc_i2c_init;\n+ mc->default_ram_size = 512 * MiB;\n+};\n+\n+static void aspeed_machine_ast2600_evb_class_init(ObjectClass *oc, void *data)\n+{\n+ MachineClass *mc = MACHINE_CLASS(oc);\n+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);\n+\n+ mc->desc = \"Aspeed AST2600 EVB (Cortex A7)\";\n+ amc->soc_name = \"ast2600-a0\";\n+ amc->hw_strap1 = AST2600_EVB_HW_STRAP1;\n+ amc->hw_strap2 = AST2600_EVB_HW_STRAP2;\n+ amc->fmc_model = \"w25q512jv\";\n+ amc->spi_model = \"mx66u51235f\";\n+ amc->num_cs = 1;\n+ amc->i2c_init = ast2600_evb_i2c_init;\n+ mc->default_ram_size = 1 * GiB;\n+};\n+\n+static const TypeInfo aspeed_machine_types[] = {\n {\n- .name = MACHINE_TYPE_NAME(\"palmetto-bmc\"),\n- .desc = \"OpenPOWER Palmetto BMC (ARM926EJ-S)\",\n- .soc_name = \"ast2400-a1\",\n- .hw_strap1 = PALMETTO_BMC_HW_STRAP1,\n- .fmc_model = \"n25q256a\",\n- .spi_model = \"mx25l25635e\",\n- .num_cs = 1,\n- .i2c_init = palmetto_bmc_i2c_init,\n- .ram = 256 * MiB,\n+ .name = MACHINE_TYPE_NAME(\"palmetto-bmc\"),\n+ .parent = TYPE_ASPEED_MACHINE,\n+ .class_init = aspeed_machine_palmetto_class_init,\n }, {\n- .name = MACHINE_TYPE_NAME(\"ast2500-evb\"),\n- .desc = \"Aspeed AST2500 EVB (ARM1176)\",\n- .soc_name = \"ast2500-a1\",\n- .hw_strap1 = AST2500_EVB_HW_STRAP1,\n- .fmc_model = \"w25q256\",\n- .spi_model = \"mx25l25635e\",\n- .num_cs = 1,\n- .i2c_init = ast2500_evb_i2c_init,\n- .ram = 512 * MiB,\n+ .name = MACHINE_TYPE_NAME(\"ast2500-evb\"),\n+ .parent = TYPE_ASPEED_MACHINE,\n+ .class_init = aspeed_machine_ast2500_evb_class_init,\n }, {\n- .name = MACHINE_TYPE_NAME(\"romulus-bmc\"),\n- .desc = \"OpenPOWER Romulus BMC (ARM1176)\",\n- .soc_name = \"ast2500-a1\",\n- .hw_strap1 = ROMULUS_BMC_HW_STRAP1,\n- .fmc_model = \"n25q256a\",\n- .spi_model = \"mx66l1g45g\",\n- .num_cs = 2,\n- .i2c_init = romulus_bmc_i2c_init,\n- .ram = 512 * MiB,\n+ .name = MACHINE_TYPE_NAME(\"romulus-bmc\"),\n+ .parent = TYPE_ASPEED_MACHINE,\n+ .class_init = aspeed_machine_romulus_class_init,\n }, {\n- .name = MACHINE_TYPE_NAME(\"swift-bmc\"),\n- .desc = \"OpenPOWER Swift BMC (ARM1176)\",\n- .soc_name = \"ast2500-a1\",\n- .hw_strap1 = SWIFT_BMC_HW_STRAP1,\n- .fmc_model = \"mx66l1g45g\",\n- .spi_model = \"mx66l1g45g\",\n- .num_cs = 2,\n- .i2c_init = swift_bmc_i2c_init,\n- .ram = 512 * MiB,\n+ .name = MACHINE_TYPE_NAME(\"swift-bmc\"),\n+ .parent = TYPE_ASPEED_MACHINE,\n+ .class_init = aspeed_machine_swift_class_init,\n }, {\n- .name = MACHINE_TYPE_NAME(\"witherspoon-bmc\"),\n- .desc = \"OpenPOWER Witherspoon BMC (ARM1176)\",\n- .soc_name = \"ast2500-a1\",\n- .hw_strap1 = WITHERSPOON_BMC_HW_STRAP1,\n- .fmc_model = \"mx25l25635e\",\n- .spi_model = \"mx66l1g45g\",\n- .num_cs = 2,\n- .i2c_init = witherspoon_bmc_i2c_init,\n- .ram = 512 * MiB,\n+ .name = MACHINE_TYPE_NAME(\"witherspoon-bmc\"),\n+ .parent = TYPE_ASPEED_MACHINE,\n+ .class_init = aspeed_machine_witherspoon_class_init,\n }, {\n- .name = MACHINE_TYPE_NAME(\"ast2600-evb\"),\n- .desc = \"Aspeed AST2600 EVB (Cortex A7)\",\n- .soc_name = \"ast2600-a0\",\n- .hw_strap1 = AST2600_EVB_HW_STRAP1,\n- .hw_strap2 = AST2600_EVB_HW_STRAP2,\n- .fmc_model = \"w25q512jv\",\n- .spi_model = \"mx66u51235f\",\n- .num_cs = 1,\n- .i2c_init = ast2600_evb_i2c_init,\n- .ram = 1 * GiB,\n- },\n-};\n-\n-static void aspeed_machine_types(void)\n-{\n- int i;\n-\n- type_register_static(&aspeed_machine_type);\n- for (i = 0; i < ARRAY_SIZE(aspeed_boards); ++i) {\n- TypeInfo ti = {\n- .name = aspeed_boards[i].name,\n- .parent = TYPE_ASPEED_MACHINE,\n- .class_init = aspeed_machine_class_init,\n- .class_data = (void *)&aspeed_boards[i],\n- };\n- type_register(&ti);\n+ .name = MACHINE_TYPE_NAME(\"ast2600-evb\"),\n+ .parent = TYPE_ASPEED_MACHINE,\n+ .class_init = aspeed_machine_ast2600_evb_class_init,\n+ }, {\n+ .name = TYPE_ASPEED_MACHINE,\n+ .parent = TYPE_MACHINE,\n+ .instance_size = sizeof(AspeedMachine),\n+ .class_size = sizeof(AspeedMachineClass),\n+ .class_init = aspeed_machine_class_init,\n+ .abstract = true,\n }\n-}\n+};\n \n-type_init(aspeed_machine_types)\n+DEFINE_TYPES(aspeed_machine_types)\n", "prefixes": [ "13/17" ] }