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