xref: /linux/arch/riscv/include/asm/probes.h (revision 3d0fe49454652117522f60bfbefb978ba0e5300b)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #ifndef _ASM_RISCV_PROBES_H
4 #define _ASM_RISCV_PROBES_H
5 
6 typedef u32 probe_opcode_t;
7 typedef bool (probes_handler_t) (u32 opcode, unsigned long addr, struct pt_regs *);
8 
9 /* architecture specific copy of original instruction */
10 struct arch_probe_insn {
11 	probe_opcode_t *insn;
12 	probes_handler_t *handler;
13 	/* restore address after simulation */
14 	unsigned long restore;
15 };
16 
17 #ifdef CONFIG_KPROBES
18 typedef u32 kprobe_opcode_t;
19 struct arch_specific_insn {
20 	struct arch_probe_insn api;
21 };
22 #endif
23 
24 #endif /* _ASM_RISCV_PROBES_H */
25