|
@@ -144,14 +144,15 @@ static void openrisc_cpu_class_init(ObjectClass *oc, void *data)
|
|
static void cpu_register(const OpenRISCCPUInfo *info)
|
|
static void cpu_register(const OpenRISCCPUInfo *info)
|
|
{
|
|
{
|
|
TypeInfo type_info = {
|
|
TypeInfo type_info = {
|
|
- .name = info->name,
|
|
|
|
.parent = TYPE_OPENRISC_CPU,
|
|
.parent = TYPE_OPENRISC_CPU,
|
|
.instance_size = sizeof(OpenRISCCPU),
|
|
.instance_size = sizeof(OpenRISCCPU),
|
|
.instance_init = info->initfn,
|
|
.instance_init = info->initfn,
|
|
.class_size = sizeof(OpenRISCCPUClass),
|
|
.class_size = sizeof(OpenRISCCPUClass),
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ type_info.name = g_strdup_printf("%s-" TYPE_OPENRISC_CPU, info->name);
|
|
type_register(&type_info);
|
|
type_register(&type_info);
|
|
|
|
+ g_free((void *)type_info.name);
|
|
}
|
|
}
|
|
|
|
|
|
static const TypeInfo openrisc_cpu_type_info = {
|
|
static const TypeInfo openrisc_cpu_type_info = {
|
|
@@ -200,9 +201,9 @@ static gint openrisc_cpu_list_compare(gconstpointer a, gconstpointer b)
|
|
|
|
|
|
name_a = object_class_get_name(class_a);
|
|
name_a = object_class_get_name(class_a);
|
|
name_b = object_class_get_name(class_b);
|
|
name_b = object_class_get_name(class_b);
|
|
- if (strcmp(name_a, "any") == 0) {
|
|
|
|
|
|
+ if (strcmp(name_a, "any-" TYPE_OPENRISC_CPU) == 0) {
|
|
return 1;
|
|
return 1;
|
|
- } else if (strcmp(name_b, "any") == 0) {
|
|
|
|
|
|
+ } else if (strcmp(name_b, "any-" TYPE_OPENRISC_CPU) == 0) {
|
|
return -1;
|
|
return -1;
|
|
} else {
|
|
} else {
|
|
return strcmp(name_a, name_b);
|
|
return strcmp(name_a, name_b);
|
|
@@ -213,9 +214,15 @@ static void openrisc_cpu_list_entry(gpointer data, gpointer user_data)
|
|
{
|
|
{
|
|
ObjectClass *oc = data;
|
|
ObjectClass *oc = data;
|
|
CPUListState *s = user_data;
|
|
CPUListState *s = user_data;
|
|
|
|
+ const char *typename;
|
|
|
|
+ char *name;
|
|
|
|
|
|
|
|
+ typename = object_class_get_name(oc);
|
|
|
|
+ name = g_strndup(typename,
|
|
|
|
+ strlen(typename) - strlen("-" TYPE_OPENRISC_CPU));
|
|
(*s->cpu_fprintf)(s->file, " %s\n",
|
|
(*s->cpu_fprintf)(s->file, " %s\n",
|
|
- object_class_get_name(oc));
|
|
|
|
|
|
+ name);
|
|
|
|
+ g_free(name);
|
|
}
|
|
}
|
|
|
|
|
|
void cpu_openrisc_list(FILE *f, fprintf_function cpu_fprintf)
|
|
void cpu_openrisc_list(FILE *f, fprintf_function cpu_fprintf)
|