Lines Matching refs:th

47 static int pt_validate(const td_thrhandle_t *th);
221 pt_ta_map_id2thr(const td_thragent_t *ta, thread_t id, td_thrhandle_t *th) in pt_ta_map_id2thr() argument
288 th->th_ta = ta; in pt_ta_map_id2thr()
289 th->th_tid = id; in pt_ta_map_id2thr()
290 th->th_thread = pt; in pt_ta_map_id2thr()
295 pt_ta_map_lwp2thr(const td_thragent_t *ta, lwpid_t lwp, td_thrhandle_t *th) in pt_ta_map_lwp2thr() argument
315 th->th_ta = ta; in pt_ta_map_lwp2thr()
316 th->th_tid = pt_map_thread(ta, pt, PT_USER); in pt_ta_map_lwp2thr()
317 if (th->th_tid == -1) in pt_ta_map_lwp2thr()
320 th->th_thread = pt; in pt_ta_map_lwp2thr()
338 td_thrhandle_t th; in pt_ta_thr_iter() local
356 th.th_ta = ta; in pt_ta_thr_iter()
357 th.th_tid = pt_map_thread(ta, pt, PT_USER); in pt_ta_thr_iter()
358 th.th_thread = pt; in pt_ta_thr_iter()
360 if (th.th_tid == -1) in pt_ta_thr_iter()
362 if ((*callback)(&th, cbdata_p)) in pt_ta_thr_iter()
440 pt_dbsuspend(const td_thrhandle_t *th, int suspend) in pt_dbsuspend() argument
442 const td_thragent_t *ta = th->th_ta; in pt_dbsuspend()
450 ret = pt_validate(th); in pt_dbsuspend()
454 if (ta->map[th->th_tid].type == PT_LWP) { in pt_dbsuspend()
456 ret = ps_lstop(ta->ph, ta->map[th->th_tid].lwp); in pt_dbsuspend()
458 ret = ps_lcontinue(ta->ph, ta->map[th->th_tid].lwp); in pt_dbsuspend()
462 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_dbsuspend()
467 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_dbsuspend()
487 ptr = ta->map[th->th_tid].thr + ta->thread_off_kse; in pt_dbsuspend()
496 ptr = ta->map[th->th_tid].thr + in pt_dbsuspend()
545 pt_thr_dbresume(const td_thrhandle_t *th) in pt_thr_dbresume() argument
549 return pt_dbsuspend(th, 0); in pt_thr_dbresume()
553 pt_thr_dbsuspend(const td_thrhandle_t *th) in pt_thr_dbsuspend() argument
557 return pt_dbsuspend(th, 1); in pt_thr_dbsuspend()
561 pt_thr_validate(const td_thrhandle_t *th) in pt_thr_validate() argument
568 ret = pt_ta_map_id2thr(th->th_ta, th->th_tid, in pt_thr_validate()
574 pt_thr_old_get_info(const td_thrhandle_t *th, td_old_thrinfo_t *info) in pt_thr_old_get_info() argument
576 const td_thragent_t *ta = th->th_ta; in pt_thr_old_get_info()
588 ret = pt_validate(th); in pt_thr_old_get_info()
593 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_old_get_info()
595 info->ti_lid = ta->map[th->th_tid].lwp; in pt_thr_old_get_info()
596 info->ti_tid = th->th_tid; in pt_thr_old_get_info()
602 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_old_get_info()
607 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_old_get_info()
611 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_state, in pt_thr_old_get_info()
629 info->ti_ta_p = th->th_ta; in pt_thr_old_get_info()
630 info->ti_tid = th->th_tid; in pt_thr_old_get_info()
641 ta->map[th->th_tid].thr + ta->thread_off_sigmask, in pt_thr_old_get_info()
646 ta->map[th->th_tid].thr + ta->thread_off_sigpend, in pt_thr_old_get_info()
664 pt_thr_get_info(const td_thrhandle_t *th, td_thrinfo_t *info) in pt_thr_get_info() argument
668 e = pt_thr_old_get_info(th, (td_old_thrinfo_t *)info); in pt_thr_get_info()
675 pt_thr_getxmmregs(const td_thrhandle_t *th, char *fxsave) in pt_thr_getxmmregs() argument
677 const td_thragent_t *ta = th->th_ta; in pt_thr_getxmmregs()
687 ret = pt_validate(th); in pt_thr_getxmmregs()
691 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_getxmmregs()
692 ret = ps_lgetxmmregs(ta->ph, ta->map[th->th_tid].lwp, fxsave); in pt_thr_getxmmregs()
696 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_getxmmregs()
719 pt_thr_getfpregs(const td_thrhandle_t *th, prfpregset_t *fpregs) in pt_thr_getfpregs() argument
721 const td_thragent_t *ta = th->th_ta; in pt_thr_getfpregs()
729 ret = pt_validate(th); in pt_thr_getfpregs()
733 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_getfpregs()
734 ret = ps_lgetfpregs(ta->ph, ta->map[th->th_tid].lwp, fpregs); in pt_thr_getfpregs()
738 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_getfpregs()
760 pt_thr_getgregs(const td_thrhandle_t *th, prgregset_t gregs) in pt_thr_getgregs() argument
762 const td_thragent_t *ta = th->th_ta; in pt_thr_getgregs()
770 ret = pt_validate(th); in pt_thr_getgregs()
774 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_getgregs()
776 ta->map[th->th_tid].lwp, gregs); in pt_thr_getgregs()
780 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + ta->thread_off_tcb, in pt_thr_getgregs()
802 pt_thr_setxmmregs(const td_thrhandle_t *th, const char *fxsave) in pt_thr_setxmmregs() argument
804 const td_thragent_t *ta = th->th_ta; in pt_thr_setxmmregs()
814 ret = pt_validate(th); in pt_thr_setxmmregs()
818 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_setxmmregs()
819 ret = ps_lsetxmmregs(ta->ph, ta->map[th->th_tid].lwp, fxsave); in pt_thr_setxmmregs()
823 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_setxmmregs()
852 pt_thr_setfpregs(const td_thrhandle_t *th, const prfpregset_t *fpregs) in pt_thr_setfpregs() argument
854 const td_thragent_t *ta = th->th_ta; in pt_thr_setfpregs()
862 ret = pt_validate(th); in pt_thr_setfpregs()
866 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_setfpregs()
867 ret = ps_lsetfpregs(ta->ph, ta->map[th->th_tid].lwp, fpregs); in pt_thr_setfpregs()
871 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_setfpregs()
899 pt_thr_setgregs(const td_thrhandle_t *th, const prgregset_t gregs) in pt_thr_setgregs() argument
901 const td_thragent_t *ta = th->th_ta; in pt_thr_setgregs()
909 ret = pt_validate(th); in pt_thr_setgregs()
913 if (ta->map[th->th_tid].type == PT_LWP) { in pt_thr_setgregs()
914 ret = ps_lsetregs(ta->ph, ta->map[th->th_tid].lwp, gregs); in pt_thr_setgregs()
918 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_setgregs()
946 pt_thr_event_enable(const td_thrhandle_t *th __unused, int en __unused) in pt_thr_event_enable()
953 pt_thr_set_event(const td_thrhandle_t *th __unused, in pt_thr_set_event()
961 pt_thr_clear_event(const td_thrhandle_t *th __unused, in pt_thr_clear_event()
969 pt_thr_event_getmsg(const td_thrhandle_t *th __unused, in pt_thr_event_getmsg()
977 pt_thr_sstep(const td_thrhandle_t *th, int step) in pt_thr_sstep() argument
979 const td_thragent_t *ta = th->th_ta; in pt_thr_sstep()
989 ret = pt_validate(th); in pt_thr_sstep()
993 if (ta->map[th->th_tid].type == PT_LWP) in pt_thr_sstep()
996 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_sstep()
1062 pt_validate(const td_thrhandle_t *th) in pt_validate() argument
1065 if (th->th_tid < 0 || th->th_tid >= (long)th->th_ta->map_len || in pt_validate()
1066 th->th_ta->map[th->th_tid].type == PT_NONE) in pt_validate()
1072 pt_thr_tls_get_addr(const td_thrhandle_t *th, psaddr_t _linkmap, size_t offset, in pt_thr_tls_get_addr() argument
1075 const td_thragent_t *ta = th->th_ta; in pt_thr_tls_get_addr()
1090 ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + in pt_thr_tls_get_addr()