linux/arch/xtensa/include/asm/ftrace.h
<<
>>
Prefs
   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 */
  41