16ba97c48SPhilippe Mathieu-Daudé /*
26ba97c48SPhilippe Mathieu-Daudé * QEMU MIPS CPU (monitor definitions)
36ba97c48SPhilippe Mathieu-Daudé *
46ba97c48SPhilippe Mathieu-Daudé * SPDX-FileCopyrightText: 2012 SUSE LINUX Products GmbH
56ba97c48SPhilippe Mathieu-Daudé *
66ba97c48SPhilippe Mathieu-Daudé * SPDX-License-Identifier: LGPL-2.1-or-later
76ba97c48SPhilippe Mathieu-Daudé */
86ba97c48SPhilippe Mathieu-Daudé
96ba97c48SPhilippe Mathieu-Daudé #include "qemu/osdep.h"
10*d6758495SDaniel P. Berrangé #include "qapi/error.h"
11*d6758495SDaniel P. Berrangé #include "qapi/qapi-commands-machine.h"
126ba97c48SPhilippe Mathieu-Daudé #include "cpu.h"
136ba97c48SPhilippe Mathieu-Daudé
14*d6758495SDaniel P. Berrangé CpuModelExpansionInfo *
qmp_query_cpu_model_expansion(CpuModelExpansionType type,CpuModelInfo * model,Error ** errp)15*d6758495SDaniel P. Berrangé qmp_query_cpu_model_expansion(CpuModelExpansionType type,
16*d6758495SDaniel P. Berrangé CpuModelInfo *model,
17*d6758495SDaniel P. Berrangé Error **errp)
18*d6758495SDaniel P. Berrangé {
19*d6758495SDaniel P. Berrangé error_setg(errp, "CPU model expansion is not supported on this target");
20*d6758495SDaniel P. Berrangé return NULL;
21*d6758495SDaniel P. Berrangé }
22*d6758495SDaniel P. Berrangé
mips_cpu_add_definition(gpointer data,gpointer user_data)236ba97c48SPhilippe Mathieu-Daudé static void mips_cpu_add_definition(gpointer data, gpointer user_data)
246ba97c48SPhilippe Mathieu-Daudé {
256ba97c48SPhilippe Mathieu-Daudé ObjectClass *oc = data;
266ba97c48SPhilippe Mathieu-Daudé CpuDefinitionInfoList **cpu_list = user_data;
276ba97c48SPhilippe Mathieu-Daudé CpuDefinitionInfo *info;
286ba97c48SPhilippe Mathieu-Daudé const char *typename;
296ba97c48SPhilippe Mathieu-Daudé
306ba97c48SPhilippe Mathieu-Daudé typename = object_class_get_name(oc);
316ba97c48SPhilippe Mathieu-Daudé info = g_malloc0(sizeof(*info));
324b26aa9fSGavin Shan info->name = cpu_model_from_type(typename);
336ba97c48SPhilippe Mathieu-Daudé info->q_typename = g_strdup(typename);
346ba97c48SPhilippe Mathieu-Daudé
356ba97c48SPhilippe Mathieu-Daudé QAPI_LIST_PREPEND(*cpu_list, info);
366ba97c48SPhilippe Mathieu-Daudé }
376ba97c48SPhilippe Mathieu-Daudé
qmp_query_cpu_definitions(Error ** errp)386ba97c48SPhilippe Mathieu-Daudé CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
396ba97c48SPhilippe Mathieu-Daudé {
406ba97c48SPhilippe Mathieu-Daudé CpuDefinitionInfoList *cpu_list = NULL;
416ba97c48SPhilippe Mathieu-Daudé GSList *list;
426ba97c48SPhilippe Mathieu-Daudé
436ba97c48SPhilippe Mathieu-Daudé list = object_class_get_list(TYPE_MIPS_CPU, false);
446ba97c48SPhilippe Mathieu-Daudé g_slist_foreach(list, mips_cpu_add_definition, &cpu_list);
456ba97c48SPhilippe Mathieu-Daudé g_slist_free(list);
466ba97c48SPhilippe Mathieu-Daudé
476ba97c48SPhilippe Mathieu-Daudé return cpu_list;
486ba97c48SPhilippe Mathieu-Daudé }
49