Message ID | 20241212185341.2857-14-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | accel/tcg: Extract user APIs out of 'exec/[cpu, exec]-all.h' | expand |
On 12/12/24 10:53, Philippe Mathieu-Daudé wrote: > Move declarations related to page protection under user > emulation from "exec/cpu-all.h" to "user/page-protection.h". > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > bsd-user/qemu.h | 1 + > include/exec/cpu-all.h | 12 ------------ > include/user/page-protection.h | 12 ++++++++++++ > linux-user/qemu.h | 1 + > target/arm/tcg/sve_helper.c | 3 +++ > target/hppa/op_helper.c | 3 +++ > target/sparc/ldst_helper.c | 3 +++ > 7 files changed, 23 insertions(+), 12 deletions(-) > > diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h > index 3736c417860..04faee459df 100644 > --- a/bsd-user/qemu.h > +++ b/bsd-user/qemu.h > @@ -26,6 +26,7 @@ > #include "exec/exec-all.h" > > #include "user/abitypes.h" > +#include "user/page-protection.h" > > extern char **environ; > > diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h > index 86cd40020c9..73b11f58abb 100644 > --- a/include/exec/cpu-all.h > +++ b/include/exec/cpu-all.h > @@ -130,18 +130,6 @@ extern const TargetPageBits target_page; > > int page_get_flags(target_ulong address); > > -/** > - * page_check_range > - * @start: first byte of range > - * @len: length of range > - * @flags: flags required for each page > - * > - * Return true if every page in [@start, @start+@len) has @flags set. > - * Return false if any page is unmapped. Thus testing flags == 0 is > - * equivalent to testing for flags == PAGE_VALID. > - */ > -bool page_check_range(target_ulong start, target_ulong last, int flags); > - > #endif > > CPUArchState *cpu_copy(CPUArchState *env); > diff --git a/include/user/page-protection.h b/include/user/page-protection.h > index d21fab1aaf9..bdd98a37de1 100644 > --- a/include/user/page-protection.h > +++ b/include/user/page-protection.h > @@ -34,6 +34,18 @@ void page_set_flags(target_ulong start, target_ulong last, int flags); > > void page_reset_target_data(target_ulong start, target_ulong last); > > +/** > + * page_check_range > + * @start: first byte of range > + * @len: length of range > + * @flags: flags required for each page > + * > + * Return true if every page in [@start, @start+@len) has @flags set. > + * Return false if any page is unmapped. Thus testing flags == 0 is > + * equivalent to testing for flags == PAGE_VALID. > + */ > +bool page_check_range(target_ulong start, target_ulong last, int flags); > + > /** > * page_check_range_empty: > * @start: first byte of range > diff --git a/linux-user/qemu.h b/linux-user/qemu.h > index 67bc81b1499..5f007501518 100644 > --- a/linux-user/qemu.h > +++ b/linux-user/qemu.h > @@ -5,6 +5,7 @@ > #include "exec/cpu_ldst.h" > > #include "user/abitypes.h" > +#include "user/page-protection.h" > > #include "syscall_defs.h" > #include "target_syscall.h" > diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c > index 904296705c6..5a543b8dbc0 100644 > --- a/target/arm/tcg/sve_helper.c > +++ b/target/arm/tcg/sve_helper.c > @@ -29,6 +29,9 @@ > #include "vec_internal.h" > #include "sve_ldst_internal.h" > #include "hw/core/tcg-cpu-ops.h" > +#ifdef CONFIG_USER_ONLY > +#include "user/page-protection.h" > +#endif > > > /* Return a value for NZCV as per the ARM PredTest pseudofunction. > diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c > index 744325969f5..beb8f88799e 100644 > --- a/target/hppa/op_helper.c > +++ b/target/hppa/op_helper.c > @@ -25,6 +25,9 @@ > #include "exec/cpu_ldst.h" > #include "qemu/timer.h" > #include "trace.h" > +#ifdef CONFIG_USER_ONLY > +#include "user/page-protection.h" > +#endif > > G_NORETURN void HELPER(excp)(CPUHPPAState *env, int excp) > { > diff --git a/target/sparc/ldst_helper.c b/target/sparc/ldst_helper.c > index d92c9f15934..4c54e456553 100644 > --- a/target/sparc/ldst_helper.c > +++ b/target/sparc/ldst_helper.c > @@ -26,6 +26,9 @@ > #include "exec/exec-all.h" > #include "exec/page-protection.h" > #include "exec/cpu_ldst.h" > +#ifdef CONFIG_USER_ONLY > +#include "user/page-protection.h" > +#endif > #include "asi.h" > > //#define DEBUG_MMU Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index 3736c417860..04faee459df 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -26,6 +26,7 @@ #include "exec/exec-all.h" #include "user/abitypes.h" +#include "user/page-protection.h" extern char **environ; diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h index 86cd40020c9..73b11f58abb 100644 --- a/include/exec/cpu-all.h +++ b/include/exec/cpu-all.h @@ -130,18 +130,6 @@ extern const TargetPageBits target_page; int page_get_flags(target_ulong address); -/** - * page_check_range - * @start: first byte of range - * @len: length of range - * @flags: flags required for each page - * - * Return true if every page in [@start, @start+@len) has @flags set. - * Return false if any page is unmapped. Thus testing flags == 0 is - * equivalent to testing for flags == PAGE_VALID. - */ -bool page_check_range(target_ulong start, target_ulong last, int flags); - #endif CPUArchState *cpu_copy(CPUArchState *env); diff --git a/include/user/page-protection.h b/include/user/page-protection.h index d21fab1aaf9..bdd98a37de1 100644 --- a/include/user/page-protection.h +++ b/include/user/page-protection.h @@ -34,6 +34,18 @@ void page_set_flags(target_ulong start, target_ulong last, int flags); void page_reset_target_data(target_ulong start, target_ulong last); +/** + * page_check_range + * @start: first byte of range + * @len: length of range + * @flags: flags required for each page + * + * Return true if every page in [@start, @start+@len) has @flags set. + * Return false if any page is unmapped. Thus testing flags == 0 is + * equivalent to testing for flags == PAGE_VALID. + */ +bool page_check_range(target_ulong start, target_ulong last, int flags); + /** * page_check_range_empty: * @start: first byte of range diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 67bc81b1499..5f007501518 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -5,6 +5,7 @@ #include "exec/cpu_ldst.h" #include "user/abitypes.h" +#include "user/page-protection.h" #include "syscall_defs.h" #include "target_syscall.h" diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 904296705c6..5a543b8dbc0 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -29,6 +29,9 @@ #include "vec_internal.h" #include "sve_ldst_internal.h" #include "hw/core/tcg-cpu-ops.h" +#ifdef CONFIG_USER_ONLY +#include "user/page-protection.h" +#endif /* Return a value for NZCV as per the ARM PredTest pseudofunction. diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c index 744325969f5..beb8f88799e 100644 --- a/target/hppa/op_helper.c +++ b/target/hppa/op_helper.c @@ -25,6 +25,9 @@ #include "exec/cpu_ldst.h" #include "qemu/timer.h" #include "trace.h" +#ifdef CONFIG_USER_ONLY +#include "user/page-protection.h" +#endif G_NORETURN void HELPER(excp)(CPUHPPAState *env, int excp) { diff --git a/target/sparc/ldst_helper.c b/target/sparc/ldst_helper.c index d92c9f15934..4c54e456553 100644 --- a/target/sparc/ldst_helper.c +++ b/target/sparc/ldst_helper.c @@ -26,6 +26,9 @@ #include "exec/exec-all.h" #include "exec/page-protection.h" #include "exec/cpu_ldst.h" +#ifdef CONFIG_USER_ONLY +#include "user/page-protection.h" +#endif #include "asi.h" //#define DEBUG_MMU
Move declarations related to page protection under user emulation from "exec/cpu-all.h" to "user/page-protection.h". Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- bsd-user/qemu.h | 1 + include/exec/cpu-all.h | 12 ------------ include/user/page-protection.h | 12 ++++++++++++ linux-user/qemu.h | 1 + target/arm/tcg/sve_helper.c | 3 +++ target/hppa/op_helper.c | 3 +++ target/sparc/ldst_helper.c | 3 +++ 7 files changed, 23 insertions(+), 12 deletions(-)