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 |