On Fri, Nov 20, 2020 at 04:34:47PM +0100, Claudio Fontana wrote: > On 11/20/20 3:49 PM, Claudio Fontana wrote: > > split cpu.c into: > > > > cpu.c cpuid and common x86 cpu functionality > > host-cpu.c host x86 cpu functions and "host" cpu type > > kvm/cpu.c KVM x86 cpu type > > hvf/cpu.c HVF x86 cpu type > > tcg/cpu.c TCG x86 cpu type > > > > The link to the accel class is set in the X86CPUClass classes > > at MODULE_INIT_ACCEL_CPU time, when the accelerator is known. > > > > Signed-off-by: Claudio Fontana <cfont...@suse.de> > > --- [...] > > +#define TYPE_X86_CPU_ACCEL TYPE_X86_CPU "-accel" > > +#define X86_CPU_ACCEL_TYPE_NAME(name) (name "-" TYPE_X86_CPU_ACCEL) > > + > > +OBJECT_DECLARE_TYPE(X86CPUAccel, X86CPUAccelClass, > > + X86_CPU_ACCEL) > > > Instead of OBJECT_DECLARE_TYPE, since this is never instantiated, this should > probably be: > > +typedef struct X86CPUAccelClass X86CPUAccelClass; > +DECLARE_CLASS_CHECKERS(X86CPUAccelClass, X86_CPU_ACCEL, TYPE_X86_CPU_ACCEL)
Yes, and this way we get rid of the only difference between OBJECT_DECLARE_TYPE and OBJECT_DECLARE_INTERFACE: the instance type cast macro is a bit different (it uses INTERFACE_CHECK). -- Eduardo