cpu.c | 9 +++++++++ include/exec/cpu-common.h | 2 ++ include/sysemu/cpus.h | 2 -- softmmu/cpus.c | 8 -------- 4 files changed, 11 insertions(+), 10 deletions(-)
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
Commit e0220bb5b2 made cpus.c target-agnostic but didn't notice
the cpu_list() function is only defined in target-specific code
in "cpu.h". Move list_cpus() declaration to "exec/cpu-common.h"
because this function is not softmmu-specific and can also be
used by user-mode, along with moving its implementation to cpu.c,
which is compiled per target.
Fixes: e0220bb5b2 ("softmmu: Build target-agnostic objects once")
Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
cpu.c | 9 +++++++++
include/exec/cpu-common.h | 2 ++
include/sysemu/cpus.h | 2 --
softmmu/cpus.c | 8 --------
4 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/cpu.c b/cpu.c
index d564886149..d50845f713 100644
--- a/cpu.c
+++ b/cpu.c
@@ -35,6 +35,7 @@
#include "sysemu/tcg.h"
#include "sysemu/kvm.h"
#include "sysemu/replay.h"
+#include "exec/cpu-all.h"
#include "exec/exec-all.h"
#include "exec/translate-all.h"
#include "exec/log.h"
@@ -266,6 +267,14 @@ const char *parse_cpu_option(const char *cpu_option)
return cpu_type;
}
+void list_cpus(const char *optarg)
+{
+ /* XXX: implement xxx_cpu_list for targets that still miss it */
+#if defined(cpu_list)
+ cpu_list();
+#endif
+}
+
#if defined(CONFIG_USER_ONLY)
void tb_invalidate_phys_addr(target_ulong addr)
{
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index 7f7b5943c7..50a7d2912e 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -158,4 +158,6 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr,
/* vl.c */
extern int singlestep;
+void list_cpus(const char *optarg);
+
#endif /* CPU_COMMON_H */
diff --git a/include/sysemu/cpus.h b/include/sysemu/cpus.h
index 868f1192de..b5c87d48b3 100644
--- a/include/sysemu/cpus.h
+++ b/include/sysemu/cpus.h
@@ -55,6 +55,4 @@ extern int smp_cores;
extern int smp_threads;
#endif
-void list_cpus(const char *optarg);
-
#endif
diff --git a/softmmu/cpus.c b/softmmu/cpus.c
index e1d84c8ccb..7b75bb66d5 100644
--- a/softmmu/cpus.c
+++ b/softmmu/cpus.c
@@ -728,14 +728,6 @@ int vm_stop_force_state(RunState state)
}
}
-void list_cpus(const char *optarg)
-{
- /* XXX: implement xxx_cpu_list for targets that still miss it */
-#if defined(cpu_list)
- cpu_list();
-#endif
-}
-
void qmp_memsave(int64_t addr, int64_t size, const char *filename,
bool has_cpu, int64_t cpu_index, Error **errp)
{
--
2.34.1
On 10/03/2022 15.07, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé <f4bug@amsat.org> > > Commit e0220bb5b2 made cpus.c target-agnostic but didn't notice > the cpu_list() function is only defined in target-specific code > in "cpu.h". Move list_cpus() declaration to "exec/cpu-common.h" > because this function is not softmmu-specific and can also be > used by user-mode, along with moving its implementation to cpu.c, > which is compiled per target. > > Fixes: e0220bb5b2 ("softmmu: Build target-agnostic objects once") > Reported-by: Max Filippov <jcmvbkbc@gmail.com> > Suggested-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > cpu.c | 9 +++++++++ > include/exec/cpu-common.h | 2 ++ > include/sysemu/cpus.h | 2 -- > softmmu/cpus.c | 8 -------- > 4 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/cpu.c b/cpu.c > index d564886149..d50845f713 100644 > --- a/cpu.c > +++ b/cpu.c > @@ -35,6 +35,7 @@ > #include "sysemu/tcg.h" > #include "sysemu/kvm.h" > #include "sysemu/replay.h" > +#include "exec/cpu-all.h" Why not cpu-common.h? > #include "exec/exec-all.h" > #include "exec/translate-all.h" > #include "exec/log.h" > @@ -266,6 +267,14 @@ const char *parse_cpu_option(const char *cpu_option) > return cpu_type; > } > > +void list_cpus(const char *optarg) > +{ > + /* XXX: implement xxx_cpu_list for targets that still miss it */ > +#if defined(cpu_list) > + cpu_list(); > +#endif > +} > + > #if defined(CONFIG_USER_ONLY) > void tb_invalidate_phys_addr(target_ulong addr) > { > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index 7f7b5943c7..50a7d2912e 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -158,4 +158,6 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr, > /* vl.c */ > extern int singlestep; > > +void list_cpus(const char *optarg); > + > #endif /* CPU_COMMON_H */ > diff --git a/include/sysemu/cpus.h b/include/sysemu/cpus.h > index 868f1192de..b5c87d48b3 100644 > --- a/include/sysemu/cpus.h > +++ b/include/sysemu/cpus.h > @@ -55,6 +55,4 @@ extern int smp_cores; > extern int smp_threads; > #endif > > -void list_cpus(const char *optarg); > - > #endif > diff --git a/softmmu/cpus.c b/softmmu/cpus.c > index e1d84c8ccb..7b75bb66d5 100644 > --- a/softmmu/cpus.c > +++ b/softmmu/cpus.c > @@ -728,14 +728,6 @@ int vm_stop_force_state(RunState state) > } > } > > -void list_cpus(const char *optarg) > -{ > - /* XXX: implement xxx_cpu_list for targets that still miss it */ > -#if defined(cpu_list) > - cpu_list(); > -#endif > -} > - > void qmp_memsave(int64_t addr, int64_t size, const char *filename, > bool has_cpu, int64_t cpu_index, Error **errp) > { Reviewed-by: Thomas Huth <thuth@redhat.com>
On 10/3/22 16:16, Thomas Huth wrote: > On 10/03/2022 15.07, Philippe Mathieu-Daudé wrote: >> From: Philippe Mathieu-Daudé <f4bug@amsat.org> >> >> Commit e0220bb5b2 made cpus.c target-agnostic but didn't notice >> the cpu_list() function is only defined in target-specific code >> in "cpu.h". Move list_cpus() declaration to "exec/cpu-common.h" >> because this function is not softmmu-specific and can also be >> used by user-mode, along with moving its implementation to cpu.c, >> which is compiled per target. >> >> Fixes: e0220bb5b2 ("softmmu: Build target-agnostic objects once") >> Reported-by: Max Filippov <jcmvbkbc@gmail.com> >> Suggested-by: Paolo Bonzini <pbonzini@redhat.com> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> cpu.c | 9 +++++++++ >> include/exec/cpu-common.h | 2 ++ >> include/sysemu/cpus.h | 2 -- >> softmmu/cpus.c | 8 -------- >> 4 files changed, 11 insertions(+), 10 deletions(-) >> >> diff --git a/cpu.c b/cpu.c >> index d564886149..d50845f713 100644 >> --- a/cpu.c >> +++ b/cpu.c >> @@ -35,6 +35,7 @@ >> #include "sysemu/tcg.h" >> #include "sysemu/kvm.h" >> #include "sysemu/replay.h" >> +#include "exec/cpu-all.h" > > Why not cpu-common.h? Copy/paste mistake I presume. > Reviewed-by: Thomas Huth <thuth@redhat.com> Thanks!
© 2016 - 2024 Red Hat, Inc.