/** * @file backtrace.c * * @remark Copyright 2008 Tensilica Inc. * Copyright (C) 2015 Cadence Design Systems Inc. * @remark Read the file COPYING * */ #include <linux/oprofile.h> #include <asm/ptrace.h> #include <asm/stacktrace.h> static int xtensa_backtrace_cb(struct stackframe *frame, void *data) { oprofile_add_trace(frame->pc); return 0; } void xtensa_backtrace(struct pt_regs * const regs, unsigned int depth) { if (user_mode(regs)) xtensa_backtrace_user(regs, depth, xtensa_backtrace_cb, NULL); else xtensa_backtrace_kernel(regs, depth, xtensa_backtrace_cb, xtensa_backtrace_cb, NULL); }