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 (979B)


      1/*
      2 * arch/xtensa/include/asm/ftrace.h
      3 *
      4 * This file is subject to the terms and conditions of the GNU General Public
      5 * License.  See the file "COPYING" in the main directory of this archive
      6 * for more details.
      7 *
      8 * Copyright (C) 2013 Tensilica Inc.
      9 */
     10#ifndef _XTENSA_FTRACE_H
     11#define _XTENSA_FTRACE_H
     12
     13#include <asm/processor.h>
     14
     15#ifndef __ASSEMBLY__
     16#define ftrace_return_address0 ({ unsigned long a0, a1; \
     17		__asm__ __volatile__ ( \
     18			"mov %0, a0\n" \
     19			"mov %1, a1\n" \
     20			: "=r"(a0), "=r"(a1)); \
     21		MAKE_PC_FROM_RA(a0, a1); })
     22
     23#ifdef CONFIG_FRAME_POINTER
     24extern unsigned long return_address(unsigned level);
     25#define ftrace_return_address(n) return_address(n)
     26#endif
     27#endif /* __ASSEMBLY__ */
     28
     29#ifdef CONFIG_FUNCTION_TRACER
     30
     31#define MCOUNT_ADDR ((unsigned long)(_mcount))
     32#define MCOUNT_INSN_SIZE 3
     33
     34#ifndef __ASSEMBLY__
     35extern void _mcount(void);
     36#define mcount _mcount
     37#endif /* __ASSEMBLY__ */
     38#endif /* CONFIG_FUNCTION_TRACER */
     39
     40#endif /* _XTENSA_FTRACE_H */