xref: /qemu/target/mips/system/mips-qmp-cmds.c (revision d6758495d888e0ef8175824dadcdeb85274c14f1)
1 /*
2  * QEMU MIPS CPU (monitor definitions)
3  *
4  * SPDX-FileCopyrightText: 2012 SUSE LINUX Products GmbH
5  *
6  * SPDX-License-Identifier: LGPL-2.1-or-later
7  */
8 
9 #include "qemu/osdep.h"
10 #include "qapi/error.h"
11 #include "qapi/qapi-commands-machine.h"
12 #include "cpu.h"
13 
14 CpuModelExpansionInfo *
qmp_query_cpu_model_expansion(CpuModelExpansionType type,CpuModelInfo * model,Error ** errp)15 qmp_query_cpu_model_expansion(CpuModelExpansionType type,
16                               CpuModelInfo *model,
17                               Error **errp)
18 {
19     error_setg(errp, "CPU model expansion is not supported on this target");
20     return NULL;
21 }
22 
mips_cpu_add_definition(gpointer data,gpointer user_data)23 static void mips_cpu_add_definition(gpointer data, gpointer user_data)
24 {
25     ObjectClass *oc = data;
26     CpuDefinitionInfoList **cpu_list = user_data;
27     CpuDefinitionInfo *info;
28     const char *typename;
29 
30     typename = object_class_get_name(oc);
31     info = g_malloc0(sizeof(*info));
32     info->name = cpu_model_from_type(typename);
33     info->q_typename = g_strdup(typename);
34 
35     QAPI_LIST_PREPEND(*cpu_list, info);
36 }
37 
qmp_query_cpu_definitions(Error ** errp)38 CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
39 {
40     CpuDefinitionInfoList *cpu_list = NULL;
41     GSList *list;
42 
43     list = object_class_get_list(TYPE_MIPS_CPU, false);
44     g_slist_foreach(list, mips_cpu_add_definition, &cpu_list);
45     g_slist_free(list);
46 
47     return cpu_list;
48 }
49