Message ID | 20230914185718.76241-3-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | accel/tcg: Make more files target agnostic (& exec/ housekeeping) | expand |
On 14/09/23, Philippe Mathieu-Daudé wrote: > While these functions are not TCG specific, they are not target > specific. Move them to "exec/cpu-common.h" so their callers don't > have to be tainted as target specific. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > include/exec/cpu-common.h | 32 ++++++++++++++++++++++++++++++++ > include/exec/exec-all.h | 30 ------------------------------ > 2 files changed, 32 insertions(+), 30 deletions(-) > > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index 360b8298a4..605b160a7e 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -173,4 +173,36 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr, > /* vl.c */ > void list_cpus(void); > > +#ifdef CONFIG_TCG > +/** > + * cpu_unwind_state_data: > + * @cpu: the cpu context > + * @host_pc: the host pc within the translation > + * @data: output data > + * > + * Attempt to load the the unwind state for a host pc occurring in > + * translated code. If @host_pc is not in translated code, the > + * function returns false; otherwise @data is loaded. > + * This is the same unwind info as given to restore_state_to_opc. > + */ > +bool cpu_unwind_state_data(CPUState *cpu, uintptr_t host_pc, uint64_t *data); > + > +/** > + * cpu_restore_state: > + * @cpu: the cpu context > + * @host_pc: the host pc within the translation > + * @return: true if state was restored, false otherwise > + * > + * Attempt to restore the state for a fault occurring in translated > + * code. If @host_pc is not in translated code no state is > + * restored and the function returns false. > + */ > +bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc); > + > +G_NORETURN void cpu_loop_exit_noexc(CPUState *cpu); > +G_NORETURN void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc); > +#endif /* CONFIG_TCG */ > +G_NORETURN void cpu_loop_exit(CPUState *cpu); > +G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc); > + > #endif /* CPU_COMMON_H */ > diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h > index 2e4d337805..ee90ef122b 100644 > --- a/include/exec/exec-all.h > +++ b/include/exec/exec-all.h > @@ -27,36 +27,6 @@ > #include "exec/translation-block.h" > #include "qemu/clang-tsa.h" > > -/** > - * cpu_unwind_state_data: > - * @cpu: the cpu context > - * @host_pc: the host pc within the translation > - * @data: output data > - * > - * Attempt to load the the unwind state for a host pc occurring in > - * translated code. If @host_pc is not in translated code, the > - * function returns false; otherwise @data is loaded. > - * This is the same unwind info as given to restore_state_to_opc. > - */ > -bool cpu_unwind_state_data(CPUState *cpu, uintptr_t host_pc, uint64_t *data); > - > -/** > - * cpu_restore_state: > - * @cpu: the cpu context > - * @host_pc: the host pc within the translation > - * @return: true if state was restored, false otherwise > - * > - * Attempt to restore the state for a fault occurring in translated > - * code. If @host_pc is not in translated code no state is > - * restored and the function returns false. > - */ > -bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc); > - > -G_NORETURN void cpu_loop_exit_noexc(CPUState *cpu); > -G_NORETURN void cpu_loop_exit(CPUState *cpu); > -G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc); > -G_NORETURN void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc); > - > /** > * cpu_loop_exit_requested: > * @cpu: The CPU state to be tested > -- > 2.41.0 > Reviewed-by: Anton Johansson <anjo@rev.ng>
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index 360b8298a4..605b160a7e 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -173,4 +173,36 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr, /* vl.c */ void list_cpus(void); +#ifdef CONFIG_TCG +/** + * cpu_unwind_state_data: + * @cpu: the cpu context + * @host_pc: the host pc within the translation + * @data: output data + * + * Attempt to load the the unwind state for a host pc occurring in + * translated code. If @host_pc is not in translated code, the + * function returns false; otherwise @data is loaded. + * This is the same unwind info as given to restore_state_to_opc. + */ +bool cpu_unwind_state_data(CPUState *cpu, uintptr_t host_pc, uint64_t *data); + +/** + * cpu_restore_state: + * @cpu: the cpu context + * @host_pc: the host pc within the translation + * @return: true if state was restored, false otherwise + * + * Attempt to restore the state for a fault occurring in translated + * code. If @host_pc is not in translated code no state is + * restored and the function returns false. + */ +bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc); + +G_NORETURN void cpu_loop_exit_noexc(CPUState *cpu); +G_NORETURN void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc); +#endif /* CONFIG_TCG */ +G_NORETURN void cpu_loop_exit(CPUState *cpu); +G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc); + #endif /* CPU_COMMON_H */ diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index 2e4d337805..ee90ef122b 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -27,36 +27,6 @@ #include "exec/translation-block.h" #include "qemu/clang-tsa.h" -/** - * cpu_unwind_state_data: - * @cpu: the cpu context - * @host_pc: the host pc within the translation - * @data: output data - * - * Attempt to load the the unwind state for a host pc occurring in - * translated code. If @host_pc is not in translated code, the - * function returns false; otherwise @data is loaded. - * This is the same unwind info as given to restore_state_to_opc. - */ -bool cpu_unwind_state_data(CPUState *cpu, uintptr_t host_pc, uint64_t *data); - -/** - * cpu_restore_state: - * @cpu: the cpu context - * @host_pc: the host pc within the translation - * @return: true if state was restored, false otherwise - * - * Attempt to restore the state for a fault occurring in translated - * code. If @host_pc is not in translated code no state is - * restored and the function returns false. - */ -bool cpu_restore_state(CPUState *cpu, uintptr_t host_pc); - -G_NORETURN void cpu_loop_exit_noexc(CPUState *cpu); -G_NORETURN void cpu_loop_exit(CPUState *cpu); -G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc); -G_NORETURN void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc); - /** * cpu_loop_exit_requested: * @cpu: The CPU state to be tested
While these functions are not TCG specific, they are not target specific. Move them to "exec/cpu-common.h" so their callers don't have to be tainted as target specific. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- include/exec/cpu-common.h | 32 ++++++++++++++++++++++++++++++++ include/exec/exec-all.h | 30 ------------------------------ 2 files changed, 32 insertions(+), 30 deletions(-)