mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
742 B
31 lines
742 B
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef __ASM_STACKTRACE_H |
|
#define __ASM_STACKTRACE_H |
|
|
|
#include <asm/ptrace.h> |
|
|
|
struct stackframe { |
|
/* |
|
* FP member should hold R7 when CONFIG_THUMB2_KERNEL is enabled |
|
* and R11 otherwise. |
|
*/ |
|
unsigned long fp; |
|
unsigned long sp; |
|
unsigned long lr; |
|
unsigned long pc; |
|
}; |
|
|
|
static __always_inline |
|
void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame) |
|
{ |
|
frame->fp = frame_pointer(regs); |
|
frame->sp = regs->ARM_sp; |
|
frame->lr = regs->ARM_lr; |
|
frame->pc = regs->ARM_pc; |
|
} |
|
|
|
extern int unwind_frame(struct stackframe *frame); |
|
extern void walk_stackframe(struct stackframe *frame, |
|
int (*fn)(struct stackframe *, void *), void *data); |
|
|
|
#endif /* __ASM_STACKTRACE_H */
|
|
|