Lines Matching refs:fp
34 rt_inline rt_err_t _bt_kaddr(rt_ubase_t *fp, struct rt_hw_backtrace_frame *frame) in _bt_kaddr() argument
38 PTR_NORMALIZE(fp); in _bt_kaddr()
40 frame->fp = *fp; in _bt_kaddr()
41 frame->pc = *(fp + 1) - INST_WORD_BYTES; in _bt_kaddr()
43 if ((rt_ubase_t)fp == frame->fp) in _bt_kaddr()
56 rt_inline rt_err_t _bt_uaddr(rt_lwp_t lwp, rt_ubase_t *fp, struct rt_hw_backtrace_frame *frame) in _bt_uaddr() argument
59 if (lwp_data_get(lwp, &frame->fp, fp, WORD) != WORD) in _bt_uaddr()
63 else if (lwp_data_get(lwp, &frame->pc, fp + 1, WORD) != WORD) in _bt_uaddr()
67 else if ((rt_base_t)fp == frame->fp) in _bt_uaddr()
83 rt_ubase_t *fp = (rt_ubase_t *)frame->fp; in rt_hw_backtrace_frame_unwind() local
85 if (fp && !((long)fp & 0x7)) in rt_hw_backtrace_frame_unwind()
93 if ((!IN_USER_SPACE(fp) || this_lwp == lwp) && rt_kmem_v2p(fp) != ARCH_MAP_FAILED) in rt_hw_backtrace_frame_unwind()
95 rc = _bt_kaddr(fp, frame); in rt_hw_backtrace_frame_unwind()
97 else if (lwp_user_accessible_ext(lwp, fp, sizeof(rt_base_t))) in rt_hw_backtrace_frame_unwind()
99 rc = _bt_uaddr(lwp, fp, frame); in rt_hw_backtrace_frame_unwind()
108 if (rt_kmem_v2p(fp) != ARCH_MAP_FAILED) in rt_hw_backtrace_frame_unwind()
110 rc = _bt_kaddr(fp, frame); in rt_hw_backtrace_frame_unwind()
134 frame->fp = ARCH_CONTEXT_FETCH(thread->sp, 4); in rt_hw_backtrace_frame_get()