blob: 6bf7c777bda47f525292cd33489ba8fcc6ae4356 [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001/* SPDX-License-Identifier: GPL-2.0 */
2/* Copyright (C) 2008-2018 Andes Technology Corporation */
3
4#ifndef __ASM_STACKTRACE_H
5#define __ASM_STACKTRACE_H
6
7/* Kernel callchain */
8struct stackframe {
9 unsigned long fp;
10 unsigned long sp;
11 unsigned long lp;
12};
13
14/*
15 * struct frame_tail: User callchain
16 * IMPORTANT:
17 * This struct is used for call-stack walking,
18 * the order and types matters.
19 * Do not use array, it only stores sizeof(pointer)
20 *
21 * The details can refer to arch/arm/kernel/perf_event.c
22 */
23struct frame_tail {
24 unsigned long stack_fp;
25 unsigned long stack_lp;
26};
27
28/* For User callchain with optimize for size */
29struct frame_tail_opt_size {
30 unsigned long stack_r6;
31 unsigned long stack_fp;
32 unsigned long stack_gp;
33 unsigned long stack_lp;
34};
35
36extern void
37get_real_ret_addr(unsigned long *addr, struct task_struct *tsk, int *graph);
38
39#endif /* __ASM_STACKTRACE_H */