Hi, The TCGCPUOps::cpu_exec_interrupt() handler is specific to system emulation. This series remove it from user-mode. To do so we have to deal with a x86-hack first, then we restrict each target handler (one target at a time) and finally we restrict the prototype, simplifying cpu_handle_interrupt().
As a bonus we can remove the cpu_get_pic_interrupt() stubs from bsd/linux-user. Please review, Phil. Philippe Mathieu-Daudé (24): target/xtensa: Restrict do_transaction_failed() to sysemu target/i386: Restrict sysemu-only fpu_helper helpers target/i386: Simplify TARGET_X86_64 #ifdef'ry accel/tcg: Rename user-mode do_interrupt hack as fake_user_exception accel/tcg: Assert most of cpu_handle_interrupt() is sysemu-specific target/alpha: Restrict cpu_exec_interrupt() handler to sysemu target/arm: Restrict cpu_exec_interrupt() handler to sysemu target/avr: Restrict cpu_exec_interrupt() handler to sysemu target/cris: Restrict cpu_exec_interrupt() handler to sysemu target/hppa: Restrict cpu_exec_interrupt() handler to sysemu target/i386: Restrict cpu_exec_interrupt() handler to sysemu target/m68k: Restrict cpu_exec_interrupt() handler to sysemu target/microblaze: Restrict cpu_exec_interrupt() handler to sysemu target/mips: Restrict cpu_exec_interrupt() handler to sysemu target/nios2: Restrict cpu_exec_interrupt() handler to sysemu target/openrisc: Restrict cpu_exec_interrupt() handler to sysemu target/ppc: Restrict cpu_exec_interrupt() handler to sysemu target/riscv: Restrict cpu_exec_interrupt() handler to sysemu target/sh4: Restrict cpu_exec_interrupt() handler to sysemu target/sparc: Restrict cpu_exec_interrupt() handler to sysemu target/rx: Restrict cpu_exec_interrupt() handler to sysemu target/xtensa: Restrict cpu_exec_interrupt() handler to sysemu accel/tcg: Restrict TCGCPUOps::cpu_exec_interrupt() to sysemu user: Remove cpu_get_pic_interrupt() stubs include/hw/core/tcg-cpu-ops.h | 26 ++++++++++++++++---------- target/alpha/cpu.h | 2 +- target/arm/cpu.h | 3 +-- target/avr/cpu.h | 2 ++ target/cris/cpu.h | 2 +- target/hppa/cpu.h | 4 ++-- target/i386/cpu.h | 3 +++ target/i386/tcg/helper-tcg.h | 2 ++ target/m68k/cpu.h | 2 ++ target/microblaze/cpu.h | 2 ++ target/mips/tcg/tcg-internal.h | 5 +++-- target/openrisc/cpu.h | 5 +++-- target/ppc/cpu.h | 4 ++-- target/riscv/cpu.h | 2 +- target/rx/cpu.h | 2 ++ target/sh4/cpu.h | 4 ++-- target/xtensa/cpu.h | 2 ++ accel/tcg/cpu-exec.c | 14 +++++++++----- bsd-user/main.c | 7 ------- linux-user/main.c | 7 ------- target/alpha/cpu.c | 2 +- target/alpha/helper.c | 5 ++--- target/arm/cpu.c | 7 +++++-- target/arm/cpu_tcg.c | 6 +++--- target/avr/cpu.c | 2 +- target/avr/helper.c | 2 ++ target/cris/cpu.c | 4 ++-- target/cris/helper.c | 17 ++--------------- target/hppa/cpu.c | 2 +- target/hppa/int_helper.c | 7 ++----- target/i386/tcg/seg_helper.c | 14 +++----------- target/i386/tcg/tcg-cpu.c | 8 +++++--- target/m68k/cpu.c | 2 +- target/m68k/op_helper.c | 16 +++------------- target/microblaze/cpu.c | 2 +- target/microblaze/helper.c | 13 ++----------- target/mips/cpu.c | 2 +- target/mips/tcg/exception.c | 18 ------------------ target/mips/tcg/sysemu/tlb_helper.c | 18 ++++++++++++++++++ target/mips/tcg/user/tlb_helper.c | 5 ----- target/nios2/cpu.c | 5 +++-- target/openrisc/cpu.c | 2 +- target/openrisc/interrupt.c | 2 -- target/ppc/cpu_init.c | 2 +- target/ppc/excp_helper.c | 21 +++------------------ target/riscv/cpu.c | 2 +- target/riscv/cpu_helper.c | 5 ----- target/rx/cpu.c | 2 +- target/rx/helper.c | 4 ++++ target/sh4/cpu.c | 2 +- target/sh4/helper.c | 9 ++------- target/sparc/cpu.c | 4 +++- target/xtensa/cpu.c | 2 +- target/xtensa/exc_helper.c | 7 ++----- target/openrisc/meson.build | 6 ++++-- 55 files changed, 138 insertions(+), 189 deletions(-) -- 2.31.1