[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [Qemu-devel] [PATCH for-3.2 v5 08/19] hw: apply machine
From: |
Igor Mammedov |
Subject: |
Re: [qemu-s390x] [Qemu-devel] [PATCH for-3.2 v5 08/19] hw: apply machine compat properties without touching globals |
Date: |
Tue, 11 Dec 2018 16:52:29 +0100 |
On Tue, 11 Dec 2018 18:30:32 +0400
Marc-André Lureau <address@hidden> wrote:
> Hi
>
> On Tue, Dec 11, 2018 at 6:24 PM Eduardo Habkost <address@hidden> wrote:
> >
> > I have specific questions about the approach we are using to
> > eliminate the macros.
> >
> > My main goal when asking this to be moved to a separate patch is
> > to not make this discussion block the register_global_properties() &
> > device_post_init() changes (which look good to me).
> >
> >
> > On Tue, Dec 04, 2018 at 06:20:12PM +0400, Marc-André Lureau wrote:
> > [...]
> > > -#define VIRT_COMPAT_3_0 \
> > > +static GlobalProperty virt_compat_3_0[] = {
> > > HW_COMPAT_3_0
> > > +};
> >
> > What about moving the array inside virt_machine_3_0_options()?
>
> Sure
>
> >
> > >
> > > static void virt_3_0_instance_init(Object *obj)
> > > {
> > > @@ -1883,12 +1884,14 @@ static void virt_3_0_instance_init(Object *obj)
> > > static void virt_machine_3_0_options(MachineClass *mc)
> > > {
> > > virt_machine_3_1_options(mc);
> > > - SET_MACHINE_COMPAT(mc, VIRT_COMPAT_3_0);
> > > + compat_props_add(mc->compat_props,
> > > + virt_compat_3_0, G_N_ELEMENTS(virt_compat_3_0));
> > > }
> > > DEFINE_VIRT_MACHINE(3, 0)
> >
> > This is nice, because it's basically the same amount of
> > boilerplate code, but I would find a NULL-terminated array much
> > easier to use than having to use G_N_ELEMENTS().
>
> But easier to get wrong too. I prefer the explicit N arguments. (it
> also gives some flexibility, since you can point to inner pointer +
> size, although we don't care at this point)
+1 to explicit array size,
it also allows to drop terminating NULL entry in compat declarations
[...]