GNU Linux-libre 5.19-rc6-gnu
[releases.git] / arch / riscv / include / asm / probes.h
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 */