]>
Commit | Line | Data |
---|---|---|
1965aae3 PA |
1 | #ifndef _ASM_X86_FTRACE_H |
2 | #define _ASM_X86_FTRACE_H | |
395a59d0 | 3 | |
606576ce | 4 | #ifdef CONFIG_FUNCTION_TRACER |
395a59d0 AS |
5 | #define MCOUNT_ADDR ((long)(mcount)) |
6 | #define MCOUNT_INSN_SIZE 5 /* sizeof mcount call */ | |
7 | ||
8 | #ifndef __ASSEMBLY__ | |
9 | extern void mcount(void); | |
68bf21aa SR |
10 | |
11 | static inline unsigned long ftrace_call_adjust(unsigned long addr) | |
12 | { | |
13 | /* | |
14 | * call mcount is "e8 <4 byte offset>" | |
15 | * The addr points to the 4 byte offset and the caller of this | |
16 | * function wants the pointer to e8. Simply subtract one. | |
17 | */ | |
18 | return addr - 1; | |
19 | } | |
31e88909 SR |
20 | |
21 | #ifdef CONFIG_DYNAMIC_FTRACE | |
22 | ||
23 | struct dyn_arch_ftrace { | |
24 | /* No extra data needed for x86 */ | |
25 | }; | |
26 | ||
27 | #endif /* CONFIG_DYNAMIC_FTRACE */ | |
a26a2a27 | 28 | #endif /* __ASSEMBLY__ */ |
606576ce | 29 | #endif /* CONFIG_FUNCTION_TRACER */ |
395a59d0 | 30 | |
caf4b323 FW |
31 | #ifdef CONFIG_FUNCTION_RET_TRACER |
32 | #define FTRACE_RET_STACK_SIZE 20 | |
33 | ||
34 | #ifndef __ASSEMBLY__ | |
35 | ||
36 | /* | |
37 | * Stack of return addresses for functions | |
38 | * of a thread. | |
39 | * Used in struct thread_info | |
40 | */ | |
41 | struct ftrace_ret_stack { | |
42 | unsigned long ret; | |
43 | unsigned long func; | |
44 | unsigned long long calltime; | |
45 | }; | |
46 | ||
47 | /* | |
48 | * Primary handler of a function return. | |
49 | * It relays on ftrace_return_to_handler. | |
50 | * Defined in entry32.S | |
51 | */ | |
52 | extern void return_to_handler(void); | |
53 | ||
54 | #endif /* __ASSEMBLY__ */ | |
55 | #endif /* CONFIG_FUNCTION_RET_TRACER */ | |
56 | ||
1965aae3 | 57 | #endif /* _ASM_X86_FTRACE_H */ |