xref: /openbmc/qemu/target/mips/system/mips-qmp-cmds.c (revision e452053097371880910c744a5d42ae2df058a4a7)
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 "qemu/target-info.h"
11 #include "qapi/error.h"
12 #include "qapi/qapi-commands-machine.h"
13 #include "cpu.h"
14 
15 CpuModelExpansionInfo *
qmp_query_cpu_model_expansion(CpuModelExpansionType type,CpuModelInfo * model,Error ** errp)16 qmp_query_cpu_model_expansion(CpuModelExpansionType type,
17                               CpuModelInfo *model,
18                               Error **errp)
19 {
20     error_setg(errp, "CPU model expansion is not supported on this target");
21     return NULL;
22 }
23 
mips_cpu_add_definition(gpointer data,gpointer user_data)24 static void mips_cpu_add_definition(gpointer data, gpointer user_data)
25 {
26     ObjectClass *oc = data;
27     CpuDefinitionInfoList **cpu_list = user_data;
28     CpuDefinitionInfo *info;
29     const char *typename;
30 
31     typename = object_class_get_name(oc);
32     info = g_malloc0(sizeof(*info));
33     info->name = cpu_model_from_type(typename);
34     info->q_typename = g_strdup(typename);
35 
36     QAPI_LIST_PREPEND(*cpu_list, info);
37 }
38 
qmp_query_cpu_definitions(Error ** errp)39 CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
40 {
41     CpuDefinitionInfoList *cpu_list = NULL;
42     GSList *list;
43 
44     list = object_class_get_list(target_cpu_type(), false);
45     g_slist_foreach(list, mips_cpu_add_definition, &cpu_list);
46     g_slist_free(list);
47 
48     return cpu_list;
49 }
50