static void register_types(void) { int i; init_ignored_base_feat(); /* init all bitmaps from gnerated data initially */ for (i = 0; i < ARRAY_SIZE(s390_cpu_defs); i++) { s390_init_feat_bitmap(s390_cpu_defs[i].base_init, s390_cpu_defs[i].base_feat); s390_init_feat_bitmap(s390_cpu_defs[i].default_init, s390_cpu_defs[i].default_feat); s390_init_feat_bitmap(s390_cpu_defs[i].full_init, s390_cpu_defs[i].full_feat); } for (i = 0; i < ARRAY_SIZE(s390_cpu_defs); i++) { char *base_name = s390_base_cpu_type_name(s390_cpu_defs[i].name); TypeInfo ti_base = { .name = base_name, .parent = TYPE_S390_CPU, .instance_init = s390_cpu_model_initfn, .instance_finalize = s390_cpu_model_finalize, .class_init = s390_base_cpu_model_class_init, .class_data = (void *) &s390_cpu_defs[i], }; char *name = s390_cpu_type_name(s390_cpu_defs[i].name); TypeInfo ti = { .name = name, .parent = TYPE_S390_CPU, .instance_init = s390_cpu_model_initfn, .instance_finalize = s390_cpu_model_finalize, .class_init = s390_cpu_model_class_init, .class_data = (void *) &s390_cpu_defs[i], }; type_register_static(&ti_base); type_register_static(&ti); g_free(base_name); g_free(name); } type_register_static(&qemu_s390_cpu_type_info); #ifdef CONFIG_KVM type_register_static(&host_s390_cpu_type_info); #endif } type_init(register_types)
static void init_groups(void) { int i; /* init all bitmaps from gnerated data initially */ for (i = 0; i < ARRAY_SIZE(s390_feature_groups); i++) { s390_init_feat_bitmap(s390_feature_groups[i].init, s390_feature_groups[i].feat); } }