Lines Matching refs:th
49 static int pt_validate(const td_thrhandle_t *th);
223 pt_ta_map_id2thr(const td_thragent_t *ta, thread_t id, td_thrhandle_t *th) in pt_ta_map_id2thr() argument
290 th->th_ta = ta; in pt_ta_map_id2thr()
291 th->th_tid = id; in pt_ta_map_id2thr()
292 th->th_thread = pt; in pt_ta_map_id2thr()
297 pt_ta_map_lwp2thr(const td_thragent_t *ta, lwpid_t lwp, td_thrhandle_t *th) in pt_ta_map_lwp2thr() argument
317 th->th_ta = ta; in pt_ta_map_lwp2thr()
318 th->th_tid = pt_map_thread(ta, pt, PT_USER); in pt_ta_map_lwp2thr()
319 if (th->th_tid == -1) in pt_ta_map_lwp2thr()
322 th->th_thread = pt; in pt_ta_map_lwp2thr()
340 td_thrhandle_t th; in pt_ta_thr_iter() local
358 th.th_ta = ta; in pt_ta_thr_iter()
359 th.th_tid = pt_map_thread(ta, pt, PT_USER); in pt_ta_thr_iter()
360 th.th_thread = pt; in pt_ta_thr_iter()
362 if (th.th_tid == -1) in pt_ta_thr_iter()
364 if ((*callback)(&th, cbdata_p)) in pt_ta_thr_iter()
442 pt_dbsuspend(const td_thrhandle_t *th, int suspend) in pt_dbsuspend() argument
444 const td_thragent_t *ta = th->th_ta; in pt_dbsuspend()
452 ret = pt_validate(th); in pt_dbsuspend()
456 if (ta->map[th->th_tid].type == PT_LWP) { in pt_dbsuspend()
458 ret = ps_lstop(ta->ph, ta->map[th->th_tid].lwp); in pt_dbsuspend()
460 ret = ps_lcontinue(ta->ph, ta->map[th->th_tid].lwp); in pt_dbsuspend()
464 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_dbsuspend()
469 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_dbsuspend()
489 ptr = ta->map[th->th_tid].thr + ta->thread_off_kse; in pt_dbsuspend()
498 ptr = ta->map[th->th_tid].thr + in pt_dbsuspend()
547 pt_thr_dbresume(const td_thrhandle_t *th) in pt_thr_dbresume() argument
551 return pt_dbsuspend(th, 0); in pt_thr_dbresume()
555 pt_thr_dbsuspend(const td_thrhandle_t *th) in pt_thr_dbsuspend() argument
559 return pt_dbsuspend(th, 1); in pt_thr_dbsuspend()
563 pt_thr_validate(const td_thrhandle_t *th) in pt_thr_validate() argument
570 ret = pt_ta_map_id2thr(th->th_ta, th->th_tid, in pt_thr_validate()
576 pt_thr_old_get_info(const td_thrhandle_t *th, td_old_thrinfo_t *info) in pt_thr_old_get_info() argument
578 const td_thragent_t *ta = th->th_ta; in pt_thr_old_get_info()
590 ret = pt_validate(th); in pt_thr_old_get_info()
595 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_old_get_info()
597 info->ti_lid = ta->map[th->th_tid].lwp; in pt_thr_old_get_info()
598 info->ti_tid = th->th_tid; in pt_thr_old_get_info()
604 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_old_get_info()
609 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_old_get_info()
613 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_state, in pt_thr_old_get_info()
631 info->ti_ta_p = th->th_ta; in pt_thr_old_get_info()
632 info->ti_tid = th->th_tid; in pt_thr_old_get_info()
643 ta->map[th->th_tid].thr + ta->thread_off_sigmask, in pt_thr_old_get_info()
648 ta->map[th->th_tid].thr + ta->thread_off_sigpend, in pt_thr_old_get_info()
666 pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info) in pt_thr_get_info() argument
670 e = pt_thr_old_get_info(th, (td_old_thrinfo_t *)info); in pt_thr_get_info()
677 pt_thr_getxmmregs(const td_thrhandle_t *th, char *fxsave) in pt_thr_getxmmregs() argument
679 const td_thragent_t *ta = th->th_ta; in pt_thr_getxmmregs()
689 ret = pt_validate(th); in pt_thr_getxmmregs()
693 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_getxmmregs()
694 ret = ps_lgetxmmregs(ta->ph, ta->map[th->th_tid].lwp, fxsave); in pt_thr_getxmmregs()
698 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_getxmmregs()
721 pt_thr_getfpregs(const td_thrhandle_t *th, prfpregset_t *fpregs) in pt_thr_getfpregs() argument
723 const td_thragent_t *ta = th->th_ta; in pt_thr_getfpregs()
731 ret = pt_validate(th); in pt_thr_getfpregs()
735 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_getfpregs()
736 ret = ps_lgetfpregs(ta->ph, ta->map[th->th_tid].lwp, fpregs); in pt_thr_getfpregs()
740 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_getfpregs()
762 pt_thr_getgregs(const td_thrhandle_t *th, prgregset_t gregs) in pt_thr_getgregs() argument
764 const td_thragent_t *ta = th->th_ta; in pt_thr_getgregs()
772 ret = pt_validate(th); in pt_thr_getgregs()
776 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_getgregs()
778 ta->map[th->th_tid].lwp, gregs); in pt_thr_getgregs()
782 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_getgregs()
804 pt_thr_setxmmregs(const td_thrhandle_t *th, const char *fxsave) in pt_thr_setxmmregs() argument
806 const td_thragent_t *ta = th->th_ta; in pt_thr_setxmmregs()
816 ret = pt_validate(th); in pt_thr_setxmmregs()
820 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_setxmmregs()
821 ret = ps_lsetxmmregs(ta->ph, ta->map[th->th_tid].lwp, fxsave); in pt_thr_setxmmregs()
825 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_setxmmregs()
854 pt_thr_setfpregs(const td_thrhandle_t *th, const prfpregset_t *fpregs) in pt_thr_setfpregs() argument
856 const td_thragent_t *ta = th->th_ta; in pt_thr_setfpregs()
864 ret = pt_validate(th); in pt_thr_setfpregs()
868 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_setfpregs()
869 ret = ps_lsetfpregs(ta->ph, ta->map[th->th_tid].lwp, fpregs); in pt_thr_setfpregs()
873 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_setfpregs()
901 pt_thr_setgregs(const td_thrhandle_t *th, const prgregset_t gregs) in pt_thr_setgregs() argument
903 const td_thragent_t *ta = th->th_ta; in pt_thr_setgregs()
911 ret = pt_validate(th); in pt_thr_setgregs()
915 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_setgregs()
916 ret = ps_lsetregs(ta->ph, ta->map[th->th_tid].lwp, gregs); in pt_thr_setgregs()
920 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_setgregs()
948 pt_thr_event_enable(const td_thrhandle_t *th __unused, int en __unused) in pt_thr_event_enable()
955 pt_thr_set_event(const td_thrhandle_t *th __unused, in pt_thr_set_event()
963 pt_thr_clear_event(const td_thrhandle_t *th __unused, in pt_thr_clear_event()
971 pt_thr_event_getmsg(const td_thrhandle_t *th __unused, in pt_thr_event_getmsg()
979 pt_thr_sstep(const td_thrhandle_t *th, int step) in pt_thr_sstep() argument
981 const td_thragent_t *ta = th->th_ta; in pt_thr_sstep()
991 ret = pt_validate(th); in pt_thr_sstep()
995 if (ta->map[th->th_tid].type == PT_LWP) in pt_thr_sstep()
998 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_sstep()
1064 pt_validate(const td_thrhandle_t *th) in pt_validate() argument
1067 if (th->th_tid < 0 || th->th_tid >= (long)th->th_ta->map_len || in pt_validate()
1068 th->th_ta->map[th->th_tid].type == PT_NONE) in pt_validate()
1074 pt_thr_tls_get_addr(const td_thrhandle_t *th, psaddr_t _linkmap, size_t offset, in pt_thr_tls_get_addr() argument
1077 const td_thragent_t *ta = th->th_ta; in pt_thr_tls_get_addr()
1092 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_tls_get_addr()