summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-user/main.c11
-rw-r--r--target-arm/cpu.h3
-rw-r--r--target-arm/helper.c6
-rw-r--r--target-mips/cpu.h1
-rw-r--r--target-ppc/cpu.h1
-rw-r--r--target-sparc/cpu.h1
-rw-r--r--vl.c11
-rw-r--r--vl.h8
8 files changed, 14 insertions, 28 deletions
diff --git a/linux-user/main.c b/linux-user/main.c
index 7de7ff5a71..1e406d3d43 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -1945,14 +1945,9 @@ int main(int argc, char **argv)
} else if (!strcmp(r, "cpu")) {
cpu_model = argv[optind++];
if (strcmp(cpu_model, "?") == 0) {
-#if defined(TARGET_PPC)
- ppc_cpu_list(stdout, &fprintf);
-#elif defined(TARGET_ARM)
- arm_cpu_list();
-#elif defined(TARGET_MIPS)
- mips_cpu_list(stdout, &fprintf);
-#elif defined(TARGET_SPARC)
- sparc_cpu_list(stdout, &fprintf);
+/* XXX: implement xxx_cpu_list for targets that still miss it */
+#if defined(cpu_list)
+ cpu_list(stdout, &fprintf);
#endif
_exit(1);
}
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
index 76fdbb26bf..7510a2480a 100644
--- a/target-arm/cpu.h
+++ b/target-arm/cpu.h
@@ -260,7 +260,7 @@ static inline int arm_feature(CPUARMState *env, int feature)
return (env->features & (1u << feature)) != 0;
}
-void arm_cpu_list(void);
+void arm_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
void cpu_arm_set_model(CPUARMState *env, const char *name);
void cpu_arm_set_cp_io(CPUARMState *env, int cpnum,
@@ -299,6 +299,7 @@ void cpu_arm_set_cp_io(CPUARMState *env, int cpnum,
#define cpu_exec cpu_arm_exec
#define cpu_gen_code cpu_arm_gen_code
#define cpu_signal_handler cpu_arm_signal_handler
+#define cpu_list arm_cpu_list
#include "cpu-all.h"
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 01573a2380..4501feaef1 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -126,13 +126,13 @@ static const struct arm_cpu_t arm_cpu_names[] = {
{ 0, NULL}
};
-void arm_cpu_list(void)
+void arm_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...))
{
int i;
- printf ("Available CPUs:\n");
+ (*cpu_fprintf)(f, "Available CPUs:\n");
for (i = 0; arm_cpu_names[i].name; i++) {
- printf(" %s\n", arm_cpu_names[i].name);
+ (*cpu_fprintf)(f, " %s\n", arm_cpu_names[i].name);
}
}
diff --git a/target-mips/cpu.h b/target-mips/cpu.h
index 569f9325bf..137260f329 100644
--- a/target-mips/cpu.h
+++ b/target-mips/cpu.h
@@ -482,6 +482,7 @@ int cpu_mips_register (CPUMIPSState *env, mips_def_t *def);
#define cpu_exec cpu_mips_exec
#define cpu_gen_code cpu_mips_gen_code
#define cpu_signal_handler cpu_mips_signal_handler
+#define cpu_list mips_cpu_list
#include "cpu-all.h"
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index f4d9004f26..b424abcebb 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -697,6 +697,7 @@ int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, target_ulong val);
#define cpu_exec cpu_ppc_exec
#define cpu_gen_code cpu_ppc_gen_code
#define cpu_signal_handler cpu_ppc_signal_handler
+#define cpu_list ppc_cpu_list
#include "cpu-all.h"
diff --git a/target-sparc/cpu.h b/target-sparc/cpu.h
index 5c8c49ab63..fac18a7775 100644
--- a/target-sparc/cpu.h
+++ b/target-sparc/cpu.h
@@ -315,6 +315,7 @@ void cpu_check_irqs(CPUSPARCState *env);
#define cpu_exec cpu_sparc_exec
#define cpu_gen_code cpu_sparc_gen_code
#define cpu_signal_handler cpu_sparc_signal_handler
+#define cpu_list sparc_cpu_list
#include "cpu-all.h"
diff --git a/vl.c b/vl.c
index 01bb06edad..65c3e6a47e 100644
--- a/vl.c
+++ b/vl.c
@@ -7690,14 +7690,9 @@ int main(int argc, char **argv)
case QEMU_OPTION_cpu:
/* hw initialization will check this */
if (*optarg == '?') {
-#if defined(TARGET_PPC)
- ppc_cpu_list(stdout, &fprintf);
-#elif defined(TARGET_ARM)
- arm_cpu_list();
-#elif defined(TARGET_MIPS)
- mips_cpu_list(stdout, &fprintf);
-#elif defined(TARGET_SPARC)
- sparc_cpu_list(stdout, &fprintf);
+/* XXX: implement xxx_cpu_list for targets that still miss it */
+#if defined(cpu_list)
+ cpu_list(stdout, &fprintf);
#endif
exit(0);
} else {
diff --git a/vl.h b/vl.h
index aa7590063e..afa2cd6bb1 100644
--- a/vl.h
+++ b/vl.h
@@ -741,14 +741,6 @@ int qemu_register_machine(QEMUMachine *m);
typedef void SetIRQFunc(void *opaque, int irq_num, int level);
-#if defined(TARGET_PPC)
-void ppc_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
-#endif
-
-#if defined(TARGET_MIPS)
-void mips_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
-#endif
-
#include "hw/irq.h"
/* ISA bus */