162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * arch/xtensa/include/asm/ftrace.h 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 562306a36Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 662306a36Sopenharmony_ci * for more details. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Copyright (C) 2013 Tensilica Inc. 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci#ifndef _XTENSA_FTRACE_H 1162306a36Sopenharmony_ci#define _XTENSA_FTRACE_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <asm/processor.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#ifndef __ASSEMBLY__ 1662306a36Sopenharmony_ciextern unsigned long return_address(unsigned level); 1762306a36Sopenharmony_ci#define ftrace_return_address(n) return_address(n) 1862306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */ 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#ifdef CONFIG_FUNCTION_TRACER 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define MCOUNT_ADDR ((unsigned long)(_mcount)) 2362306a36Sopenharmony_ci#define MCOUNT_INSN_SIZE 3 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#ifndef __ASSEMBLY__ 2662306a36Sopenharmony_ciextern void _mcount(void); 2762306a36Sopenharmony_ci#define mcount _mcount 2862306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */ 2962306a36Sopenharmony_ci#endif /* CONFIG_FUNCTION_TRACER */ 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#endif /* _XTENSA_FTRACE_H */ 32