root/arch/xtensa/include/asm/ftrace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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
  24 extern 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__
  35 extern void _mcount(void);
  36 #define mcount _mcount
  37 #endif /* __ASSEMBLY__ */
  38 #endif /* CONFIG_FUNCTION_TRACER */
  39 
  40 #endif /* _XTENSA_FTRACE_H */

/* [<][>][^][v][top][bottom][index][help] */