[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/15] hw: expand DEFINE_MACHINE to explicit TypeInfo registration
- To: Pierrick Bouvier <pierrick.bouvier@xxxxxxxxxxxxxxxx>
- From: Daniel P. Berrangé <berrange@xxxxxxxxxx>
- Date: Tue, 3 Nov 2026 08:15:52 +0000
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=mimecast20190719 header.d=redhat.com header.i="@redhat.com" header.h="From:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:In-Reply-To:References"
- Cc: BALATON Zoltan <balaton@xxxxxxxxxx>, Yonggang Luo <luoyonggang@xxxxxxxxx>, qemu-devel@xxxxxxxxxx, Anthony PERARD <anthony@xxxxxxxxxxxxxx>, Felipe Balbi <balbi@xxxxxxxxxx>, Aleksandar Rikalo <arikalo@xxxxxxxxx>, Philippe Mathieu-Daude <philmd@xxxxxxxxx>, Antony Pavlov <antonynpavlov@xxxxxxxxx>, Daniel Henrique Barboza <daniel.barboza@xxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Subbaraya Sundeep <sundeep.lkml@xxxxxxxxx>, Hervé Poussineau <hpoussin@xxxxxxxxxxx>, Max Filippov <jcmvbkbc@xxxxxxxxx>, Niek Linnenbank <nieklinnenbank@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, qemu-riscv@xxxxxxxxxx, Jean-Christophe Dubois <jcd@xxxxxxxxxxxxxxx>, qemu-ppc@xxxxxxxxxx, Alexandre Iooss <erdnaxe@xxxxxxxxx>, Weiwei Li <liwei1518@xxxxxxxxx>, Zhao Liu <zhao1.liu@xxxxxxxxx>, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>, Strahinja Jankovic <strahinja.p.jankovic@xxxxxxxxx>, Philippe Mathieu-Daudé <philmd@xxxxxxxxxxxxxxxx>, Thomas Huth <th.huth+qemu@xxxxxxxxx>, Clément Chigot <chigot@xxxxxxxxxxx>, Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx>, Yoshinori Sato <yoshinori.sato@xxxxxxxxx>, Frederic Konrad <konrad.frederic@xxxxxxxx>, Palmer Dabbelt <palmer@xxxxxxxxxxx>, Peter Maydell <peter.maydell@xxxxxxxxxx>, Chao Liu <chao.liu@xxxxxxxxxxxxxxxxxx>, Sai Pavan Boddu <sai.pavan.boddu@xxxxxxx>, Alistair Francis <alistair@xxxxxxxxxxxxx>, Huacai Chen <chenhuacai@xxxxxxxxxx>, Aurelien Jarno <aurelien@xxxxxxxxxxx>, Gaurav Sharma <gaurav.sharma_7@xxxxxxx>, "Edgar E. Iglesias" <edgar.iglesias@xxxxxxxxx>, Richard Henderson <richard.henderson@xxxxxxxxxx>, Alistair Francis <alistair.francis@xxxxxxx>, Artyom Tarasenko <atar4qemu@xxxxxxxxx>, qemu-arm@xxxxxxxxxx
- Delivery-date: Tue, 03 Nov 2026 08:16:35 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Fri, Oct 30, 2026 at 05:51:44PM -0800, Pierrick Bouvier 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.
For each machine, it is only written once, but we add machines
over time, and every time a new machine is added the code style
is slightly different. We introduced all the variuos DEFINE_*
macros for QOM to better ensure consistent style and usage as
new code is added over time.
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
|