Message ID | 20230914185718.76241-12-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | accel/tcg: Make more files target agnostic (& exec/ housekeeping) | expand |
On 14/09/23, Philippe Mathieu-Daudé wrote: > cpu_in_serial_context() is not target specific, > move it declaration to "internal-common.h" (which > we include in the 4 source files modified). > > Remove the unused "exec/exec-all.h" header from > cpu-exec-common.c. There is no more target specific > code in this file: make it target agnostic. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > accel/tcg/internal-common.h | 11 +++++++++++ > accel/tcg/internal-target.h | 9 --------- > accel/tcg/cpu-exec-common.c | 3 +-- > accel/tcg/cputlb.c | 1 + > accel/tcg/tb-maint.c | 1 + > accel/tcg/user-exec.c | 1 + > accel/tcg/meson.build | 4 +++- > 7 files changed, 18 insertions(+), 12 deletions(-) > > diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h > index 5d5247442e..3b2277e6e9 100644 > --- a/accel/tcg/internal-common.h > +++ b/accel/tcg/internal-common.h > @@ -9,9 +9,20 @@ > #ifndef ACCEL_TCG_INTERNAL_COMMON_H > #define ACCEL_TCG_INTERNAL_COMMON_H > > +#include "exec/translation-block.h" > + > extern int64_t max_delay; > extern int64_t max_advance; > > void dump_exec_info(GString *buf); > > +/* > + * Return true if CS is not running in parallel with other cpus, either > + * because there are no other cpus or we are within an exclusive context. > + */ > +static inline bool cpu_in_serial_context(CPUState *cs) > +{ > + return !(cs->tcg_cflags & CF_PARALLEL) || cpu_in_exclusive_context(cs); > +} > + > #endif > diff --git a/accel/tcg/internal-target.h b/accel/tcg/internal-target.h > index f9eec1ce28..932bbe4b63 100644 > --- a/accel/tcg/internal-target.h > +++ b/accel/tcg/internal-target.h > @@ -90,15 +90,6 @@ static inline vaddr log_pc(CPUState *cpu, const TranslationBlock *tb) > } > } > > -/* > - * Return true if CS is not running in parallel with other cpus, either > - * because there are no other cpus or we are within an exclusive context. > - */ > -static inline bool cpu_in_serial_context(CPUState *cs) > -{ > - return !(cs->tcg_cflags & CF_PARALLEL) || cpu_in_exclusive_context(cs); > -} > - > extern bool one_insn_per_tb; > > /** > diff --git a/accel/tcg/cpu-exec-common.c b/accel/tcg/cpu-exec-common.c > index 55980417b4..b6cc387482 100644 > --- a/accel/tcg/cpu-exec-common.c > +++ b/accel/tcg/cpu-exec-common.c > @@ -20,9 +20,8 @@ > #include "qemu/osdep.h" > #include "sysemu/cpus.h" > #include "sysemu/tcg.h" > -#include "exec/exec-all.h" > #include "qemu/plugin.h" > -#include "internal-target.h" > +#include "internal-common.h" > > bool tcg_allowed; > > diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c > index a912d746a9..400d9ee0d0 100644 > --- a/accel/tcg/cputlb.c > +++ b/accel/tcg/cputlb.c > @@ -35,6 +35,7 @@ > #include "exec/translate-all.h" > #include "trace.h" > #include "tb-hash.h" > +#include "internal-common.h" > #include "internal-target.h" > #ifdef CONFIG_PLUGIN > #include "qemu/plugin-memory.h" > diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c > index 85cf51445d..b194f8f065 100644 > --- a/accel/tcg/tb-maint.c > +++ b/accel/tcg/tb-maint.c > @@ -29,6 +29,7 @@ > #include "tcg/tcg.h" > #include "tb-hash.h" > #include "tb-context.h" > +#include "internal-common.h" > #include "internal-target.h" > > > diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c > index f925dd0305..5bf2761bf4 100644 > --- a/accel/tcg/user-exec.c > +++ b/accel/tcg/user-exec.c > @@ -29,6 +29,7 @@ > #include "qemu/atomic128.h" > #include "trace/trace-root.h" > #include "tcg/tcg-ldst.h" > +#include "internal-common.h" > #include "internal-target.h" > > __thread uintptr_t helper_retaddr; > diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build > index 4633a34d28..8783edd06e 100644 > --- a/accel/tcg/meson.build > +++ b/accel/tcg/meson.build > @@ -1,7 +1,9 @@ > tcg_ss = ss.source_set() > +common_ss.add(when: 'CONFIG_TCG', if_true: files( > + 'cpu-exec-common.c', > +)) > tcg_ss.add(files( > 'tcg-all.c', > - 'cpu-exec-common.c', > 'cpu-exec.c', > 'tb-maint.c', > 'tcg-runtime-gvec.c', > -- > 2.41.0 > Reviewed-by: Anton Johansson <anjo@rev.ng>
diff --git a/accel/tcg/internal-common.h b/accel/tcg/internal-common.h index 5d5247442e..3b2277e6e9 100644 --- a/accel/tcg/internal-common.h +++ b/accel/tcg/internal-common.h @@ -9,9 +9,20 @@ #ifndef ACCEL_TCG_INTERNAL_COMMON_H #define ACCEL_TCG_INTERNAL_COMMON_H +#include "exec/translation-block.h" + extern int64_t max_delay; extern int64_t max_advance; void dump_exec_info(GString *buf); +/* + * Return true if CS is not running in parallel with other cpus, either + * because there are no other cpus or we are within an exclusive context. + */ +static inline bool cpu_in_serial_context(CPUState *cs) +{ + return !(cs->tcg_cflags & CF_PARALLEL) || cpu_in_exclusive_context(cs); +} + #endif diff --git a/accel/tcg/internal-target.h b/accel/tcg/internal-target.h index f9eec1ce28..932bbe4b63 100644 --- a/accel/tcg/internal-target.h +++ b/accel/tcg/internal-target.h @@ -90,15 +90,6 @@ static inline vaddr log_pc(CPUState *cpu, const TranslationBlock *tb) } } -/* - * Return true if CS is not running in parallel with other cpus, either - * because there are no other cpus or we are within an exclusive context. - */ -static inline bool cpu_in_serial_context(CPUState *cs) -{ - return !(cs->tcg_cflags & CF_PARALLEL) || cpu_in_exclusive_context(cs); -} - extern bool one_insn_per_tb; /** diff --git a/accel/tcg/cpu-exec-common.c b/accel/tcg/cpu-exec-common.c index 55980417b4..b6cc387482 100644 --- a/accel/tcg/cpu-exec-common.c +++ b/accel/tcg/cpu-exec-common.c @@ -20,9 +20,8 @@ #include "qemu/osdep.h" #include "sysemu/cpus.h" #include "sysemu/tcg.h" -#include "exec/exec-all.h" #include "qemu/plugin.h" -#include "internal-target.h" +#include "internal-common.h" bool tcg_allowed; diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index a912d746a9..400d9ee0d0 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -35,6 +35,7 @@ #include "exec/translate-all.h" #include "trace.h" #include "tb-hash.h" +#include "internal-common.h" #include "internal-target.h" #ifdef CONFIG_PLUGIN #include "qemu/plugin-memory.h" diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index 85cf51445d..b194f8f065 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -29,6 +29,7 @@ #include "tcg/tcg.h" #include "tb-hash.h" #include "tb-context.h" +#include "internal-common.h" #include "internal-target.h" diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c index f925dd0305..5bf2761bf4 100644 --- a/accel/tcg/user-exec.c +++ b/accel/tcg/user-exec.c @@ -29,6 +29,7 @@ #include "qemu/atomic128.h" #include "trace/trace-root.h" #include "tcg/tcg-ldst.h" +#include "internal-common.h" #include "internal-target.h" __thread uintptr_t helper_retaddr; diff --git a/accel/tcg/meson.build b/accel/tcg/meson.build index 4633a34d28..8783edd06e 100644 --- a/accel/tcg/meson.build +++ b/accel/tcg/meson.build @@ -1,7 +1,9 @@ tcg_ss = ss.source_set() +common_ss.add(when: 'CONFIG_TCG', if_true: files( + 'cpu-exec-common.c', +)) tcg_ss.add(files( 'tcg-all.c', - 'cpu-exec-common.c', 'cpu-exec.c', 'tb-maint.c', 'tcg-runtime-gvec.c',
cpu_in_serial_context() is not target specific, move it declaration to "internal-common.h" (which we include in the 4 source files modified). Remove the unused "exec/exec-all.h" header from cpu-exec-common.c. There is no more target specific code in this file: make it target agnostic. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- accel/tcg/internal-common.h | 11 +++++++++++ accel/tcg/internal-target.h | 9 --------- accel/tcg/cpu-exec-common.c | 3 +-- accel/tcg/cputlb.c | 1 + accel/tcg/tb-maint.c | 1 + accel/tcg/user-exec.c | 1 + accel/tcg/meson.build | 4 +++- 7 files changed, 18 insertions(+), 12 deletions(-)