1*de5012b4SIlya Leoshkevich /* SPDX-License-Identifier: GPL-2.0 */ 2*de5012b4SIlya Leoshkevich #ifndef _FTRACE_H 3*de5012b4SIlya Leoshkevich #define _FTRACE_H 4*de5012b4SIlya Leoshkevich 5*de5012b4SIlya Leoshkevich #include <asm/types.h> 6*de5012b4SIlya Leoshkevich 7*de5012b4SIlya Leoshkevich struct ftrace_hotpatch_trampoline { 8*de5012b4SIlya Leoshkevich u16 brasl_opc; 9*de5012b4SIlya Leoshkevich s32 brasl_disp; 10*de5012b4SIlya Leoshkevich s16: 16; 11*de5012b4SIlya Leoshkevich u64 rest_of_intercepted_function; 12*de5012b4SIlya Leoshkevich u64 interceptor; 13*de5012b4SIlya Leoshkevich } __packed; 14*de5012b4SIlya Leoshkevich 15*de5012b4SIlya Leoshkevich extern struct ftrace_hotpatch_trampoline __ftrace_hotpatch_trampolines_start[]; 16*de5012b4SIlya Leoshkevich extern struct ftrace_hotpatch_trampoline __ftrace_hotpatch_trampolines_end[]; 17*de5012b4SIlya Leoshkevich extern const char ftrace_shared_hotpatch_trampoline_br[]; 18*de5012b4SIlya Leoshkevich extern const char ftrace_shared_hotpatch_trampoline_br_end[]; 19*de5012b4SIlya Leoshkevich extern const char ftrace_shared_hotpatch_trampoline_exrl[]; 20*de5012b4SIlya Leoshkevich extern const char ftrace_shared_hotpatch_trampoline_exrl_end[]; 21*de5012b4SIlya Leoshkevich extern const char ftrace_plt_template[]; 22*de5012b4SIlya Leoshkevich extern const char ftrace_plt_template_end[]; 23*de5012b4SIlya Leoshkevich 24*de5012b4SIlya Leoshkevich #endif /* _FTRACE_H */ 25