162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#include <linux/linkage.h> 462306a36Sopenharmony_ci#include <asm/ftrace.h> 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#define KPROBES_TARGET_START(name) \ 762306a36Sopenharmony_ci SYM_FUNC_START(name); \ 862306a36Sopenharmony_ci FTRACE_GEN_NOP_ASM(name) 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#define KPROBES_TARGET_END(name) \ 1162306a36Sopenharmony_ci SYM_FUNC_END(name); \ 1262306a36Sopenharmony_ci SYM_DATA(name##_offs, .quad 1b - name) 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciKPROBES_TARGET_START(kprobes_target_in_insn4) 1562306a36Sopenharmony_ci .word 0x4700 // bc 0,0 1662306a36Sopenharmony_ci1: .word 0x0000 1762306a36Sopenharmony_ci br %r14 1862306a36Sopenharmony_ciKPROBES_TARGET_END(kprobes_target_in_insn4) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciKPROBES_TARGET_START(kprobes_target_in_insn6_lo) 2162306a36Sopenharmony_ci .word 0xe310 // ly 1,0 2262306a36Sopenharmony_ci1: .word 0x0000 2362306a36Sopenharmony_ci .word 0x0058 2462306a36Sopenharmony_ci br %r14 2562306a36Sopenharmony_ciKPROBES_TARGET_END(kprobes_target_in_insn6_lo) 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciKPROBES_TARGET_START(kprobes_target_in_insn6_hi) 2862306a36Sopenharmony_ci .word 0xe310 // ly 1,0 2962306a36Sopenharmony_ci .word 0x0000 3062306a36Sopenharmony_ci1: .word 0x0058 3162306a36Sopenharmony_ci br %r14 3262306a36Sopenharmony_ciKPROBES_TARGET_END(kprobes_target_in_insn6_hi) 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciKPROBES_TARGET_START(kprobes_target_bp) 3562306a36Sopenharmony_ci nop 3662306a36Sopenharmony_ci .word 0x0000 3762306a36Sopenharmony_ci nop 3862306a36Sopenharmony_ci1: br %r14 3962306a36Sopenharmony_ciKPROBES_TARGET_END(kprobes_target_bp) 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciKPROBES_TARGET_START(kprobes_target_odd) 4262306a36Sopenharmony_ci .byte 0x07 4362306a36Sopenharmony_ci1: .byte 0x07 4462306a36Sopenharmony_ci br %r14 4562306a36Sopenharmony_ciKPROBES_TARGET_END(kprobes_target_odd) 46