1#ifndef __ASM_STACKTRACE_H 2#define __ASM_STACKTRACE_H 3 4#include <asm/ptrace.h> 5 6struct stackframe { 7 /* 8 * FP member should hold R7 when CONFIG_THUMB2_KERNEL is enabled 9 * and R11 otherwise. 10 */ 11 unsigned long fp; 12 unsigned long sp; 13 unsigned long lr; 14 unsigned long pc; 15}; 16 17static __always_inline 18void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame) 19{ 20 frame->fp = frame_pointer(regs); 21 frame->sp = regs->ARM_sp; 22 frame->lr = regs->ARM_lr; 23 frame->pc = regs->ARM_pc; 24} 25 26extern int unwind_frame(struct stackframe *frame); 27extern void walk_stackframe(struct stackframe *frame, 28 int (*fn)(struct stackframe *, void *), void *data); 29 30#endif /* __ASM_STACKTRACE_H */ 31