1 #ifndef __ASM_ARM_TRAPS__ 2 #define __ASM_ARM_TRAPS__ 3 4 #include <asm/processor.h> 5 6 #if defined(CONFIG_ARM_32) 7 # include <asm/arm32/traps.h> 8 #elif defined(CONFIG_ARM_64) 9 # include <asm/arm64/traps.h> 10 #endif 11 12 int check_conditional_instr(struct cpu_user_regs *regs, const union hsr hsr); 13 14 void advance_pc(struct cpu_user_regs *regs, const union hsr hsr); 15 16 void inject_undef_exception(struct cpu_user_regs *regs, const union hsr hsr); 17 18 /* read as zero and write ignore */ 19 void handle_raz_wi(struct cpu_user_regs *regs, int regidx, bool read, 20 const union hsr hsr, int min_el); 21 22 /* write only as write ignore */ 23 void handle_wo_wi(struct cpu_user_regs *regs, int regidx, bool read, 24 const union hsr hsr, int min_el); 25 26 /* read only as read as zero */ 27 void handle_ro_raz(struct cpu_user_regs *regs, int regidx, bool read, 28 const union hsr hsr, int min_el); 29 30 /* Co-processor registers emulation (see arch/arm/vcpreg.c). */ 31 void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr); 32 void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr); 33 void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr); 34 void do_cp14_64(struct cpu_user_regs *regs, const union hsr hsr); 35 void do_cp14_dbg(struct cpu_user_regs *regs, const union hsr hsr); 36 void do_cp(struct cpu_user_regs *regs, const union hsr hsr); 37 38 /* SMCCC handling */ 39 void do_trap_smc(struct cpu_user_regs *regs, const union hsr hsr); 40 void do_trap_hvc_smccc(struct cpu_user_regs *regs); 41 42 #endif /* __ASM_ARM_TRAPS__ */ 43 /* 44 * Local variables: 45 * mode: C 46 * c-file-style: "BSD" 47 * c-basic-offset: 4 48 * indent-tabs-mode: nil 49 * End: 50 */ 51 52