xref: /openbmc/linux/arch/s390/kernel/ftrace.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
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