Lines Matching full:frame

77 bool xtensa_backtrace_get_next_frame(struct xtensa_backtrace_frame_t *frame)  in xtensa_backtrace_get_next_frame()  argument
80 * frame pointer. in xtensa_backtrace_get_next_frame()
82 if (xtensa_is_outside_stack_bounds((uintptr_t)frame->sp, 0, UINT32_MAX)) { in xtensa_backtrace_get_next_frame()
86 /* Use frame(i-1)'s BS area located below frame(i)'s in xtensa_backtrace_get_next_frame()
87 * sp to get frame(i-1)'s sp and frame(i-2)'s pc in xtensa_backtrace_get_next_frame()
91 char *base_save = (char *)frame->sp; in xtensa_backtrace_get_next_frame()
93 frame->pc = frame->next_pc; in xtensa_backtrace_get_next_frame()
94 /* If next_pc = 0, indicates frame(i-1) is the last in xtensa_backtrace_get_next_frame()
95 * frame on the stack in xtensa_backtrace_get_next_frame()
97 frame->next_pc = *((uint32_t *)(base_save - 16)); in xtensa_backtrace_get_next_frame()
98 frame->sp = *((uint32_t *)(base_save - 12)); in xtensa_backtrace_get_next_frame()
100 /* Return true if both sp and pc of frame(i-1) are sane, in xtensa_backtrace_get_next_frame()
103 return (xtensa_stack_ptr_is_sane(frame->sp) && in xtensa_backtrace_get_next_frame()
105 xtensa_cpu_process_stack_pc(frame->pc))); in xtensa_backtrace_get_next_frame()
115 _xtensa_irq_stack_frame_raw_t *frame = (void *)interrupted_stack; in xtensa_backtrace_print() local
119 * any frame elements obtained via de-referencing the in xtensa_backtrace_print()
120 * frame pointer are probably also invalid. Or worse, in xtensa_backtrace_print()
123 if (!xtensa_is_frame_pointer_valid(frame)) { in xtensa_backtrace_print()
127 bsa = frame->ptr_to_bsa; in xtensa_backtrace_print()
130 /* Initialize stk_frame with first frame of stack */ in xtensa_backtrace_print()
144 /* Check if first frame is valid */ in xtensa_backtrace_print()
152 /* Get previous stack frame */ in xtensa_backtrace_print()