1 /* SPDX-License-Identifier: GPL-2.0+ */
2 
3 #include <linux/linkage.h>
4 #include <asm/ftrace.h>
5 
6 #define KPROBES_TARGET_START(name)	\
7 	SYM_FUNC_START(name);		\
8 	FTRACE_GEN_NOP_ASM(name)
9 
10 #define KPROBES_TARGET_END(name)	\
11 	SYM_FUNC_END(name);		\
12 	SYM_DATA(name##_offs, .quad 1b - name)
13 
14 KPROBES_TARGET_START(kprobes_target_in_insn4)
15 	.word 0x4700 // bc 0,0
16 1:	.word 0x0000
17 	br %r14
18 KPROBES_TARGET_END(kprobes_target_in_insn4)
19 
20 KPROBES_TARGET_START(kprobes_target_in_insn6_lo)
21 	.word 0xe310 // ly 1,0
22 1:	.word 0x0000
23 	.word 0x0058
24 	br %r14
25 KPROBES_TARGET_END(kprobes_target_in_insn6_lo)
26 
27 KPROBES_TARGET_START(kprobes_target_in_insn6_hi)
28 	.word 0xe310 // ly 1,0
29 	.word 0x0000
30 1:	.word 0x0058
31 	br %r14
32 KPROBES_TARGET_END(kprobes_target_in_insn6_hi)
33 
34 KPROBES_TARGET_START(kprobes_target_bp)
35 	nop
36 	.word 0x0000
37 	nop
38 1:	br %r14
39 KPROBES_TARGET_END(kprobes_target_bp)
40 
41 KPROBES_TARGET_START(kprobes_target_odd)
42 	.byte 0x07
43 1:	.byte 0x07
44 	br %r14
45 KPROBES_TARGET_END(kprobes_target_odd)
46