Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sh/include/asm/ftrace.h
26493 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
#ifndef __ASM_SH_FTRACE_H
3
#define __ASM_SH_FTRACE_H
4
5
#ifdef CONFIG_FUNCTION_TRACER
6
7
#define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */
8
#define FTRACE_SYSCALL_MAX NR_syscalls
9
10
#ifndef __ASSEMBLER__
11
extern void mcount(void);
12
13
#define MCOUNT_ADDR ((unsigned long)(mcount))
14
15
#ifdef CONFIG_DYNAMIC_FTRACE
16
#define CALL_ADDR ((long)(ftrace_call))
17
#define STUB_ADDR ((long)(ftrace_stub))
18
#define GRAPH_ADDR ((long)(ftrace_graph_call))
19
#define CALLER_ADDR ((long)(ftrace_caller))
20
21
#define MCOUNT_INSN_OFFSET ((STUB_ADDR - CALL_ADDR) - 4)
22
#define GRAPH_INSN_OFFSET ((CALLER_ADDR - GRAPH_ADDR) - 4)
23
24
struct dyn_arch_ftrace {
25
/* No extra data needed on sh */
26
};
27
28
#endif /* CONFIG_DYNAMIC_FTRACE */
29
30
static inline unsigned long ftrace_call_adjust(unsigned long addr)
31
{
32
/* 'addr' is the memory table address. */
33
return addr;
34
}
35
36
void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr);
37
38
#endif /* __ASSEMBLER__ */
39
#endif /* CONFIG_FUNCTION_TRACER */
40
41
#ifndef __ASSEMBLER__
42
43
/* arch/sh/kernel/return_address.c */
44
extern void *return_address(unsigned int);
45
46
#define ftrace_return_address(n) return_address(n)
47
48
#ifdef CONFIG_DYNAMIC_FTRACE
49
extern void arch_ftrace_nmi_enter(void);
50
extern void arch_ftrace_nmi_exit(void);
51
#else
52
static inline void arch_ftrace_nmi_enter(void) { }
53
static inline void arch_ftrace_nmi_exit(void) { }
54
#endif
55
56
#endif /* __ASSEMBLER__ */
57
58
#endif /* __ASM_SH_FTRACE_H */
59
60