Message ID | 20210902151715.383678-13-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | accel/tcg: Restrict TCGCPUOps::cpu_exec_interrupt() to sysemu | expand |
On Thu, Sep 2, 2021 at 9:18 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > Restrict cpu_exec_interrupt() and its callees to sysemu. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > target/m68k/cpu.h | 2 ++ > target/m68k/cpu.c | 2 +- > target/m68k/op_helper.c | 16 +++------------- > 3 files changed, 6 insertions(+), 14 deletions(-) > Reviewed-by: Warner Losh <imp@bsdimp.com> > diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h > index 997d588911c..550eb028b6e 100644 > --- a/target/m68k/cpu.h > +++ b/target/m68k/cpu.h > @@ -166,8 +166,10 @@ struct M68kCPU { > }; > > > +#ifndef CONFIG_USER_ONLY > void m68k_cpu_do_interrupt(CPUState *cpu); > bool m68k_cpu_exec_interrupt(CPUState *cpu, int int_req); > +#endif /* !CONFIG_USER_ONLY */ > void m68k_cpu_dump_state(CPUState *cpu, FILE *f, int flags); > hwaddr m68k_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); > int m68k_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg); > diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c > index 72de6e97262..66d22d11895 100644 > --- a/target/m68k/cpu.c > +++ b/target/m68k/cpu.c > @@ -515,10 +515,10 @@ static const struct SysemuCPUOps m68k_sysemu_ops = { > > static const struct TCGCPUOps m68k_tcg_ops = { > .initialize = m68k_tcg_init, > - .cpu_exec_interrupt = m68k_cpu_exec_interrupt, > .tlb_fill = m68k_cpu_tlb_fill, > > #ifndef CONFIG_USER_ONLY > + .cpu_exec_interrupt = m68k_cpu_exec_interrupt, > .do_interrupt = m68k_cpu_do_interrupt, > .do_transaction_failed = m68k_cpu_transaction_failed, > #endif /* !CONFIG_USER_ONLY */ > diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c > index d006d1cb3ea..5d624838ae6 100644 > --- a/target/m68k/op_helper.c > +++ b/target/m68k/op_helper.c > @@ -24,18 +24,7 @@ > #include "semihosting/semihost.h" > #include "tcg/tcg.h" > > -#if defined(CONFIG_USER_ONLY) > - > -void m68k_cpu_do_interrupt(CPUState *cs) > -{ > - cs->exception_index = -1; > -} > - > -static inline void do_interrupt_m68k_hardirq(CPUM68KState *env) > -{ > -} > - > -#else > +#if !defined(CONFIG_USER_ONLY) > > static void cf_rte(CPUM68KState *env) > { > @@ -516,7 +505,6 @@ void m68k_cpu_transaction_failed(CPUState *cs, hwaddr > physaddr, vaddr addr, > cpu_loop_exit(cs); > } > } > -#endif > > bool m68k_cpu_exec_interrupt(CPUState *cs, int interrupt_request) > { > @@ -538,6 +526,8 @@ bool m68k_cpu_exec_interrupt(CPUState *cs, int > interrupt_request) > return false; > } > > +#endif /* !CONFIG_USER_ONLY */ > + > static void raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) > { > CPUState *cs = env_cpu(env); > -- > 2.31.1 > >
On 9/2/21 5:17 PM, Philippe Mathieu-Daudé wrote: > Restrict cpu_exec_interrupt() and its callees to sysemu. > > Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org> > --- > target/m68k/cpu.h | 2 ++ > target/m68k/cpu.c | 2 +- > target/m68k/op_helper.c | 16 +++------------- > 3 files changed, 6 insertions(+), 14 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/target/m68k/cpu.h b/target/m68k/cpu.h index 997d588911c..550eb028b6e 100644 --- a/target/m68k/cpu.h +++ b/target/m68k/cpu.h @@ -166,8 +166,10 @@ struct M68kCPU { }; +#ifndef CONFIG_USER_ONLY void m68k_cpu_do_interrupt(CPUState *cpu); bool m68k_cpu_exec_interrupt(CPUState *cpu, int int_req); +#endif /* !CONFIG_USER_ONLY */ void m68k_cpu_dump_state(CPUState *cpu, FILE *f, int flags); hwaddr m68k_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); int m68k_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg); diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index 72de6e97262..66d22d11895 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -515,10 +515,10 @@ static const struct SysemuCPUOps m68k_sysemu_ops = { static const struct TCGCPUOps m68k_tcg_ops = { .initialize = m68k_tcg_init, - .cpu_exec_interrupt = m68k_cpu_exec_interrupt, .tlb_fill = m68k_cpu_tlb_fill, #ifndef CONFIG_USER_ONLY + .cpu_exec_interrupt = m68k_cpu_exec_interrupt, .do_interrupt = m68k_cpu_do_interrupt, .do_transaction_failed = m68k_cpu_transaction_failed, #endif /* !CONFIG_USER_ONLY */ diff --git a/target/m68k/op_helper.c b/target/m68k/op_helper.c index d006d1cb3ea..5d624838ae6 100644 --- a/target/m68k/op_helper.c +++ b/target/m68k/op_helper.c @@ -24,18 +24,7 @@ #include "semihosting/semihost.h" #include "tcg/tcg.h" -#if defined(CONFIG_USER_ONLY) - -void m68k_cpu_do_interrupt(CPUState *cs) -{ - cs->exception_index = -1; -} - -static inline void do_interrupt_m68k_hardirq(CPUM68KState *env) -{ -} - -#else +#if !defined(CONFIG_USER_ONLY) static void cf_rte(CPUM68KState *env) { @@ -516,7 +505,6 @@ void m68k_cpu_transaction_failed(CPUState *cs, hwaddr physaddr, vaddr addr, cpu_loop_exit(cs); } } -#endif bool m68k_cpu_exec_interrupt(CPUState *cs, int interrupt_request) { @@ -538,6 +526,8 @@ bool m68k_cpu_exec_interrupt(CPUState *cs, int interrupt_request) return false; } +#endif /* !CONFIG_USER_ONLY */ + static void raise_exception_ra(CPUM68KState *env, int tt, uintptr_t raddr) { CPUState *cs = env_cpu(env);
Restrict cpu_exec_interrupt() and its callees to sysemu. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- target/m68k/cpu.h | 2 ++ target/m68k/cpu.c | 2 +- target/m68k/op_helper.c | 16 +++------------- 3 files changed, 6 insertions(+), 14 deletions(-)