qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-3.2 v5 15/19] qom: add object_class_get_clas


From: Marc-André Lureau
Subject: Re: [Qemu-devel] [PATCH for-3.2 v5 15/19] qom: add object_class_get_class_data()
Date: Wed, 12 Dec 2018 22:48:58 +0400

Hi

On Tue, Dec 11, 2018 at 8:24 PM Igor Mammedov <address@hidden> wrote:
>
> On Tue,  4 Dec 2018 18:20:19 +0400
> Marc-André Lureau <address@hidden> wrote:
>
> > Add a simple function to retrieve the associated class data.
> >
> > Signed-off-by: Marc-André Lureau <address@hidden>
> > ---
> >  include/qom/object.h | 9 +++++++++
> >  qom/object.c         | 5 +++++
> >  2 files changed, 14 insertions(+)
> >
> > diff --git a/include/qom/object.h b/include/qom/object.h
> > index 5183c587f3..d5266405da 100644
> > --- a/include/qom/object.h
> > +++ b/include/qom/object.h
> > @@ -916,6 +916,15 @@ ObjectClass *object_class_dynamic_cast(ObjectClass 
> > *klass,
> >   */
> >  ObjectClass *object_class_get_parent(ObjectClass *klass);
> >
> > +
> > +/**
> > + * object_class_get_class_data:
> > + * @klass: The class to obtain associated data.
> > + *
> > + * Returns: the class_data given when registering the type.
> > + */
> > +void *object_class_get_class_data(ObjectClass *klass);
> > +
> >  /**
> >   * object_class_get_name:
> >   * @klass: The class to obtain the QOM typename for.
> > diff --git a/qom/object.c b/qom/object.c
> > index aa6f3a2a71..bbc6fbbc01 100644
> > --- a/qom/object.c
> > +++ b/qom/object.c
> > @@ -867,6 +867,11 @@ const char *object_class_get_name(ObjectClass *klass)
> >      return klass->type->name;
> >  }
> >
> > +void *object_class_get_class_data(ObjectClass *klass)
> > +{
> > +    return klass->type->class_data;
> > +}
> > +
> >  ObjectClass *object_class_by_name(const char *typename)
> >  {
> >      TypeImpl *type = type_get_by_name(typename);
>
> alternatively to what's done in 16/19 which requires this helper
> you can drop it and use x86 cpu approach, see:
>
> static void x86_cpu_cpudef_class_init(ObjectClass *oc, void *data)
> {
>     X86CPUDefinition *cpudef = data;
>     X86CPUClass *xcc = X86_CPU_CLASS(oc);
>
>     xcc->cpu_def = cpudef;
>     ...
>

Indeed, that's perhaps a better alternative. I'll update the patch.

-- 
Marc-André Lureau



reply via email to

[Prev in Thread] Current Thread [Next in Thread]