On 24/11/20 17:22, Claudio Fontana wrote:
+static void x86_cpu_accel_init(void)
{
- X86CPUAccelClass *acc;
+ const char *ac_name;
+ ObjectClass *ac;
+ char *xac_name;
+ ObjectClass *xac;
- acc = X86_CPU_ACCEL_CLASS(object_class_by_name(accel_name));
- g_assert(acc != NULL);
+ ac = object_get_class(OBJECT(current_accel()));
+ g_assert(ac != NULL);
+ ac_name = object_class_get_name(ac);
+ g_assert(ac_name != NULL);
- object_class_foreach(x86_cpu_accel_init_aux, TYPE_X86_CPU, false, &acc);
+ xac_name = g_strdup_printf("%s-%s", ac_name, TYPE_X86_CPU);
+ xac = object_class_by_name(xac_name);
+ g_free(xac_name);
+
+ if (xac) {
+ object_class_foreach(x86_cpu_accel_init_aux, TYPE_X86_CPU, false, xac);
+ }
}
+
+accel_cpu_init(x86_cpu_accel_init);
If this and cpus_accel_ops_init are the only call to accel_cpu_init, I'd
rather make them functions in CPUClass (which you find and call via
CPU_RESOLVING_TYPE) and AccelClass respectively.
Paolo