Lines Matching refs:frame
9 * Unwind the current stack frame and store the new register values in the
24 int notrace unwind_frame(struct stackframe *frame)
27 unsigned long fp = frame->fp;
30 low = frame->sp;
33 /* check current frame pointer is within bounds */
37 /* restore the registers from the stack frame */
38 frame->fp = *(unsigned long *)(fp - 12);
39 frame->sp = *(unsigned long *)(fp - 8);
40 frame->pc = *(unsigned long *)(fp - 4);
46 void notrace walk_stackframe(struct stackframe *frame,
52 if (fn(frame, data))
54 ret = unwind_frame(frame);
68 static int save_trace(struct stackframe *frame, void *d)
72 unsigned long addr = frame->pc;
89 struct stackframe frame;
103 frame.fp = thread_saved_fp(tsk);
104 frame.sp = thread_saved_sp(tsk);
105 frame.lr = 0; /* recovered from the stack */
106 frame.pc = thread_saved_pc(tsk);
112 frame.fp = (unsigned long)__builtin_frame_address(0);
113 frame.sp = current_sp;
114 frame.lr = (unsigned long)__builtin_return_address(0);
115 frame.pc = (unsigned long)save_stack_trace_tsk;
118 walk_stackframe(&frame, save_trace, &data);