diff options
author | Eric Blake <eblake@redhat.com> | 2016-02-02 07:51:41 -0700 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2016-02-08 17:29:57 +0100 |
commit | 86ae191163d48ff4ff9d9996868e6cfe92a82449 (patch) | |
tree | ca8b02e73db0fbc2f2a0629f4b25b51c42c27f3d | |
parent | 455ba08afde784466420449d01c6458f88349d55 (diff) |
qapi: Fix compilation failure on MIPS and SPARC
Commit 86f4b687 broke compilation on MIPS and SPARC, which have a
preprocessor pollution of '#define mips 1' and '#define sparc 1',
respectively. Treat it the same way as we do for the pollution with
'unix', so that QMP remains backwards compatible and only the C code
needs to use the alternative 'q_mips', 'q_sparc' spelling.
CC: James Hogan <james.hogan@imgtec.com>
CC: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Eric Blake <eblake@redhat.com>
Tested-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
-rw-r--r-- | cpus.c | 10 | ||||
-rw-r--r-- | hmp.c | 8 | ||||
-rw-r--r-- | scripts/qapi.py | 2 |
3 files changed, 11 insertions, 9 deletions
@@ -1576,13 +1576,13 @@ CpuInfoList *qmp_query_cpus(Error **errp) info->value->u.ppc->nip = env->nip; #elif defined(TARGET_SPARC) info->value->arch = CPU_INFO_ARCH_SPARC; - info->value->u.sparc = g_new0(CpuInfoSPARC, 1); - info->value->u.sparc->pc = env->pc; - info->value->u.sparc->npc = env->npc; + info->value->u.q_sparc = g_new0(CpuInfoSPARC, 1); + info->value->u.q_sparc->pc = env->pc; + info->value->u.q_sparc->npc = env->npc; #elif defined(TARGET_MIPS) info->value->arch = CPU_INFO_ARCH_MIPS; - info->value->u.mips = g_new0(CpuInfoMIPS, 1); - info->value->u.mips->PC = env->active_tc.PC; + info->value->u.q_mips = g_new0(CpuInfoMIPS, 1); + info->value->u.q_mips->PC = env->active_tc.PC; #elif defined(TARGET_TRICORE) info->value->arch = CPU_INFO_ARCH_TRICORE; info->value->u.tricore = g_new0(CpuInfoTricore, 1); @@ -319,11 +319,13 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict) monitor_printf(mon, " nip=0x%016" PRIx64, cpu->value->u.ppc->nip); break; case CPU_INFO_ARCH_SPARC: - monitor_printf(mon, " pc=0x%016" PRIx64, cpu->value->u.sparc->pc); - monitor_printf(mon, " npc=0x%016" PRIx64, cpu->value->u.sparc->npc); + monitor_printf(mon, " pc=0x%016" PRIx64, + cpu->value->u.q_sparc->pc); + monitor_printf(mon, " npc=0x%016" PRIx64, + cpu->value->u.q_sparc->npc); break; case CPU_INFO_ARCH_MIPS: - monitor_printf(mon, " PC=0x%016" PRIx64, cpu->value->u.mips->PC); + monitor_printf(mon, " PC=0x%016" PRIx64, cpu->value->u.q_mips->PC); break; case CPU_INFO_ARCH_TRICORE: monitor_printf(mon, " PC=0x%016" PRIx64, cpu->value->u.tricore->PC); diff --git a/scripts/qapi.py b/scripts/qapi.py index 7519cf8e7a..f40dc9e777 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -1482,7 +1482,7 @@ def c_name(name, protect=True): 'and', 'and_eq', 'bitand', 'bitor', 'compl', 'not', 'not_eq', 'or', 'or_eq', 'xor', 'xor_eq']) # namespace pollution: - polluted_words = set(['unix', 'errno']) + polluted_words = set(['unix', 'errno', 'mips', 'sparc']) name = name.translate(c_name_trans) if protect and (name in c89_words | c99_words | c11_words | gcc_words | cpp_words | polluted_words): |