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
14KPROBES_TARGET_START(kprobes_target_in_insn4)
15 .word 0x4700 // bc 0,0
161: .word 0x0000
17 br %r14
18KPROBES_TARGET_END(kprobes_target_in_insn4)
19
20KPROBES_TARGET_START(kprobes_target_in_insn6_lo)
21 .word 0xe310 // ly 1,0
221: .word 0x0000
23 .word 0x0058
24 br %r14
25KPROBES_TARGET_END(kprobes_target_in_insn6_lo)
26
27KPROBES_TARGET_START(kprobes_target_in_insn6_hi)
28 .word 0xe310 // ly 1,0
29 .word 0x0000
301: .word 0x0058
31 br %r14
32KPROBES_TARGET_END(kprobes_target_in_insn6_hi)
33
34KPROBES_TARGET_START(kprobes_target_bp)
35 nop
36 .word 0x0000
37 nop
381: br %r14
39KPROBES_TARGET_END(kprobes_target_bp)
40
41KPROBES_TARGET_START(kprobes_target_odd)
42 .byte 0x07
431: .byte 0x07
44 br %r14
45KPROBES_TARGET_END(kprobes_target_odd)
46

source code of linux/arch/s390/lib/test_kprobes_asm.S