mirror of https://gitee.com/openkylin/linux.git
40 lines
884 B
C
40 lines
884 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (C) 2008-2018 Andes Technology Corporation */
|
|
|
|
#ifndef __ASM_STACKTRACE_H
|
|
#define __ASM_STACKTRACE_H
|
|
|
|
/* Kernel callchain */
|
|
struct stackframe {
|
|
unsigned long fp;
|
|
unsigned long sp;
|
|
unsigned long lp;
|
|
};
|
|
|
|
/*
|
|
* struct frame_tail: User callchain
|
|
* IMPORTANT:
|
|
* This struct is used for call-stack walking,
|
|
* the order and types matters.
|
|
* Do not use array, it only stores sizeof(pointer)
|
|
*
|
|
* The details can refer to arch/arm/kernel/perf_event.c
|
|
*/
|
|
struct frame_tail {
|
|
unsigned long stack_fp;
|
|
unsigned long stack_lp;
|
|
};
|
|
|
|
/* For User callchain with optimize for size */
|
|
struct frame_tail_opt_size {
|
|
unsigned long stack_r6;
|
|
unsigned long stack_fp;
|
|
unsigned long stack_gp;
|
|
unsigned long stack_lp;
|
|
};
|
|
|
|
extern void
|
|
get_real_ret_addr(unsigned long *addr, struct task_struct *tsk, int *graph);
|
|
|
|
#endif /* __ASM_STACKTRACE_H */
|