|
[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 Sat, Oct 31, 2026 at 9:51 AM Pierrick Bouvier
<pierrick.bouvier@xxxxxxxxxxxxxxxx> wrote:
>
> 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.
Yeap, as now I have a working TypeImpl::targets and TypeBucket locally, that
looks minimal, so I am moving forward. This series is reject, then let
us delay the EXPAND
of DEFINE_MACHINE_* macros work later.
>
> > 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(-)
> >>
> >>
>
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |