|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 00/15] hw: expand DEFINE_MACHINE to explicit TypeInfo registration
On 10/30/2026 4:09 PM, BALATON Zoltan wrote: > On Fri, 30 Oct 2026, Yonggang Luo wrote: >> DEFINE_MACHINE and DEFINE_MACHINE_EXTENDED hide the TypeInfo and the >> type_init >> function that calls type_register_static(). A later change needs to >> pass a > > That's the point of the macro to hide the boiler plate code. > >> target mask into that registration, and the macros have no parameter >> for it. > > Couldn't you just change the macros to take that parameter instead of > expanding it everywhere? > Problem of macros is that they don't have default parameters, so you need variants for everything: DEFINE_MACHINE DEFINE_MACHINE_EXTENDED DEFINE_MACHINE_WITH_INTERFACES DEFINE_MACHINE_WITH_INTERFACE_ARRAY and now would need a new variant, with variant for other existing ones. In the end, it's just simpler to remove this and add the boilerplate. It's written once and never modified, so using a macro just save typing those lines once. > Regards, > BALATON Zoltan > >> This series expands every caller first, with no behavior change, so the >> follow-up only replaces the type_register_static() call. >> >> Each machine file gains a class_init function, a TypeInfo, and a >> type_init >> function that calls type_register_static(). The last patch removes >> DEFINE_MACHINE* and DEFINE_SECURE_MACHINE* from include/hw/core/boards.h. >> >> Yonggang Luo (15): >> hw/alpha: expand DEFINE_MACHINE in dp264.c >> hw/m68k: expand DEFINE_MACHINE for M68K machines >> hw/microblaze: expand DEFINE_MACHINE for MicroBlaze >> hw/tricore: expand DEFINE_MACHINE in tricore_testboard.c >> hw/arm: expand DEFINE_MACHINE for ARM machines >> hw/riscv: expand DEFINE_MACHINE for RISC-V machines >> hw/core/null-machine: expand DEFINE_MACHINE >> hw/mips: expand DEFINE_MACHINE for MIPS machines >> hw/ppc: expand DEFINE_MACHINE for PowerPC machines >> hw/sh4: expand DEFINE_MACHINE in r2d.c >> hw/sparc: expand DEFINE_MACHINE in leon3.c >> hw/xenpv: expand DEFINE_MACHINE in xen_machine_pv.c >> hw/xtensa: expand DEFINE_MACHINE in sim.c >> hw/xtensa: expand DEFINE_MACHINE in virt.c >> hw/core/boards: remove unused DEFINE_MACHINE* macros >> >> hw/alpha/dp264.c | 18 +++++++++-- >> hw/arm/bananapi_m2u.c | 18 +++++++++-- >> hw/arm/cubieboard.c | 19 +++++++++--- >> hw/arm/digic_boards.c | 18 +++++++++-- >> hw/arm/imx25_pdk.c | 18 +++++++++-- >> hw/arm/imx8mm-evk.c | 20 +++++++++--- >> hw/arm/integratorcp.c | 14 ++++++--- >> hw/arm/kzm.c | 18 +++++++++-- >> hw/arm/max78000fthr.c | 17 ++++++++-- >> hw/arm/mcimx6ul-evk.c | 18 +++++++++-- >> hw/arm/mcimx7d-sabre.c | 20 +++++++++--- >> hw/arm/msf2-som.c | 17 ++++++++-- >> hw/arm/netduino2.c | 17 ++++++++-- >> hw/arm/netduinoplus2.c | 17 ++++++++-- >> hw/arm/olimex-stm32-h405.c | 18 +++++++++-- >> hw/arm/orangepi.c | 19 +++++++++--- >> hw/arm/stm32vldiscovery.c | 18 +++++++++-- >> hw/core/null-machine.c | 18 +++++++++-- >> hw/m68k/an5206.c | 18 +++++++++-- >> hw/m68k/mcf5208.c | 18 +++++++++-- >> hw/microblaze/petalogix_ml605_mmu.c | 19 ++++++++++-- >> hw/microblaze/xlnx-zynqmp-pmu.c | 19 ++++++++++-- >> hw/mips/boston.c | 18 +++++++++-- >> hw/mips/fuloong2e.c | 18 +++++++++-- >> hw/mips/malta.c | 12 ++++++-- >> hw/ppc/amigaone.c | 18 +++++++++-- >> hw/ppc/pegasos.c | 21 ++++++++----- >> hw/ppc/ppc440_bamboo.c | 18 +++++++++-- >> hw/ppc/prep.c | 18 +++++++++-- >> hw/ppc/sam460ex.c | 18 +++++++++-- >> hw/ppc/virtex_ml507.c | 18 +++++++++-- >> hw/riscv/boston-aia.c | 18 +++++++++-- >> hw/riscv/microblaze-v-generic.c | 18 +++++++++-- >> hw/sh4/r2d.c | 18 +++++++++-- >> hw/sparc/leon3.c | 18 +++++++++-- >> hw/tricore/tricore_testboard.c | 18 +++++++++-- >> hw/xenpv/xen_machine_pv.c | 18 +++++++++-- >> hw/xtensa/sim.c | 18 +++++++++-- >> hw/xtensa/virt.c | 18 +++++++++-- >> include/hw/core/boards.h | 48 ----------------------------- >> 40 files changed, 605 insertions(+), 142 deletions(-) >> >>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |