1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * arch/arm64/include/asm/probes.h
4  *
5  * Copyright (C) 2013 Linaro Limited
6  */
7 #ifndef _ARM_PROBES_H
8 #define _ARM_PROBES_H
9 
10 #include <asm/insn.h>
11 
12 typedef u32 probe_opcode_t;
13 typedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *);
14 
15 /* architecture specific copy of original instruction */
16 struct arch_probe_insn {
17 	probe_opcode_t *insn;
18 	pstate_check_t *pstate_cc;
19 	probes_handler_t *handler;
20 	/* restore address after step xol */
21 	unsigned long restore;
22 };
23 #ifdef CONFIG_KPROBES
24 typedef u32 kprobe_opcode_t;
25 struct arch_specific_insn {
26 	struct arch_probe_insn api;
27 };
28 #endif
29 
30 #endif
31