cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ftrace.h (1138B)


      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 __ASSEMBLY__
     11extern 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
     24struct dyn_arch_ftrace {
     25	/* No extra data needed on sh */
     26};
     27
     28#endif /* CONFIG_DYNAMIC_FTRACE */
     29
     30static inline unsigned long ftrace_call_adjust(unsigned long addr)
     31{
     32	/* 'addr' is the memory table address. */
     33	return addr;
     34}
     35
     36#endif /* __ASSEMBLY__ */
     37#endif /* CONFIG_FUNCTION_TRACER */
     38
     39#ifndef __ASSEMBLY__
     40
     41/* arch/sh/kernel/return_address.c */
     42extern void *return_address(unsigned int);
     43
     44#define ftrace_return_address(n) return_address(n)
     45
     46#endif /* __ASSEMBLY__ */
     47
     48#endif /* __ASM_SH_FTRACE_H */