usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
185
stacks_ulwp_walk(uintptr_t addr, ulwp_t *ulwp, void *ignored)
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
189
sulwp->sulwp_id = ulwp->ul_lwpid;
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
193
mdb_warn("found multiple LWPs with ID %d!", ulwp->ul_lwpid);
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
226
ulwp_t ulwp;
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
255
if (mdb_vread(&ulwp, sizeof (ulwp), sulwp->sulwp_addr) == -1) {
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
261
fsip->fsi_tstate = ulwp.ul_sleepq != NULL;
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
262
fsip->fsi_sobj_ops = (uintptr_t)(ulwp.ul_sleepq == NULL ? 0 :
usr/src/cmd/mdb/common/modules/libc/findstack_subr.c
263
(ulwp.ul_qtype == MX ? STACKS_SOBJ_MX : STACKS_SOBJ_CV));
usr/src/cmd/mdb/common/modules/libc/libc.c
1011
whatis_walk_ulwp(uintptr_t addr, const ulwp_t *ulwp, mdb_whatis_t *w)
usr/src/cmd/mdb/common/modules/libc/libc.c
1014
lwpid_t id = ulwp->ul_lwpid;
usr/src/cmd/mdb/common/modules/libc/libc.c
1021
top = (uintptr_t)ulwp->ul_stktop;
usr/src/cmd/mdb/common/modules/libc/libc.c
1022
size = ulwp->ul_stksiz;
usr/src/cmd/mdb/common/modules/libc/libc.c
1039
if (ulwp->ul_ustack.ss_flags & SS_ONSTACK) {
usr/src/cmd/mdb/common/modules/libc/libc.c
1040
base = (uintptr_t)ulwp->ul_ustack.ss_sp;
usr/src/cmd/mdb/common/modules/libc/libc.c
1041
size = ulwp->ul_ustack.ss_size;
usr/src/cmd/mdb/common/modules/libc/libc.c
1093
tid2ulwp_walk(uintptr_t addr, ulwp_t *ulwp, tid2ulwp_walk_t *t2u)
usr/src/cmd/mdb/common/modules/libc/libc.c
1095
if (ulwp->ul_lwpid == t2u->t2u_tid) {
usr/src/cmd/mdb/common/modules/libc/libc.c
1460
d_mutex_walk(uintptr_t addr, const ulwp_t *ulwp, d_mutex_walkdata_t *wd)
usr/src/cmd/mdb/common/modules/libc/libc.c
1464
if ((uintptr_t)ulwp->ul_wchan != wd->mow_target)
usr/src/cmd/mdb/common/modules/libc/libc.c
1467
if (mdb_thread_name(ulwp->ul_lwpid, buf, sizeof (buf)) != 0) {
usr/src/cmd/mdb/common/modules/libc/libc.c
451
ulwp_t ulwp;
usr/src/cmd/mdb/common/modules/libc/libc.c
456
if (mdb_vread(&ulwp, sizeof (ulwp), addr) != sizeof (ulwp) &&
usr/src/cmd/mdb/common/modules/libc/libc.c
457
(bzero(&ulwp, sizeof (ulwp)),
usr/src/cmd/mdb/common/modules/libc/libc.c
458
mdb_vread(&ulwp, REPLACEMENT_SIZE, addr)) != REPLACEMENT_SIZE) {
usr/src/cmd/mdb/common/modules/libc/libc.c
468
prt_addr(ulwp.ul_self, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
469
prt_addr(ulwp.ul_uberdata, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
474
prt_addr(ulwp.ul_tlsent, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
475
ulwp.ul_ntlsent);
usr/src/cmd/mdb/common/modules/libc/libc.c
480
prt_addr(ulwp.ul_forw, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
481
prt_addr(ulwp.ul_back, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
482
prt_addr(ulwp.ul_next, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
487
prt_addr(ulwp.ul_hash, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
488
prt_addr(ulwp.ul_rval, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
489
prt_addr(ulwp.ul_stk, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
494
ulwp.ul_mapsiz,
usr/src/cmd/mdb/common/modules/libc/libc.c
495
ulwp.ul_guardsize,
usr/src/cmd/mdb/common/modules/libc/libc.c
496
prt_addr((void *)ulwp.ul_stktop, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
497
ulwp.ul_stksiz);
usr/src/cmd/mdb/common/modules/libc/libc.c
502
prt_addr(ulwp.ul_ustack.ss_sp, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
503
ulwp.ul_ustack.ss_size,
usr/src/cmd/mdb/common/modules/libc/libc.c
504
stack_flags(&ulwp.ul_ustack));
usr/src/cmd/mdb/common/modules/libc/libc.c
509
ulwp.ul_ix,
usr/src/cmd/mdb/common/modules/libc/libc.c
510
ulwp.ul_lwpid,
usr/src/cmd/mdb/common/modules/libc/libc.c
511
ulwp.ul_pri,
usr/src/cmd/mdb/common/modules/libc/libc.c
512
ulwp.ul_epri,
usr/src/cmd/mdb/common/modules/libc/libc.c
513
ulwp.ul_policy,
usr/src/cmd/mdb/common/modules/libc/libc.c
514
ulwp.ul_cid);
usr/src/cmd/mdb/common/modules/libc/libc.c
519
ulwp.ul_cursig);
usr/src/cmd/mdb/common/modules/libc/libc.c
520
mdb_printf(ulwp.ul_pleasestop? "0x%-8x " : "%-10d ",
usr/src/cmd/mdb/common/modules/libc/libc.c
521
ulwp.ul_pleasestop);
usr/src/cmd/mdb/common/modules/libc/libc.c
522
mdb_printf(ulwp.ul_stop? "0x%-8x " : "%-10d ",
usr/src/cmd/mdb/common/modules/libc/libc.c
523
ulwp.ul_stop);
usr/src/cmd/mdb/common/modules/libc/libc.c
525
ulwp.ul_signalled,
usr/src/cmd/mdb/common/modules/libc/libc.c
526
ulwp.ul_dead,
usr/src/cmd/mdb/common/modules/libc/libc.c
527
ulwp.ul_unwind);
usr/src/cmd/mdb/common/modules/libc/libc.c
532
ulwp.ul_detached,
usr/src/cmd/mdb/common/modules/libc/libc.c
533
ulwp.ul_writer,
usr/src/cmd/mdb/common/modules/libc/libc.c
534
ulwp.ul_stopping,
usr/src/cmd/mdb/common/modules/libc/libc.c
535
ulwp.ul_cancel_prologue,
usr/src/cmd/mdb/common/modules/libc/libc.c
536
ulwp.ul_preempt,
usr/src/cmd/mdb/common/modules/libc/libc.c
537
ulwp.ul_savpreempt);
usr/src/cmd/mdb/common/modules/libc/libc.c
542
ulwp.ul_sigsuspend,
usr/src/cmd/mdb/common/modules/libc/libc.c
543
ulwp.ul_main,
usr/src/cmd/mdb/common/modules/libc/libc.c
544
ulwp.ul_fork,
usr/src/cmd/mdb/common/modules/libc/libc.c
545
ulwp.ul_primarymap,
usr/src/cmd/mdb/common/modules/libc/libc.c
546
ulwp.ul_max_spinners,
usr/src/cmd/mdb/common/modules/libc/libc.c
547
ulwp.ul_door_noreserve);
usr/src/cmd/mdb/common/modules/libc/libc.c
552
ulwp.ul_queue_fifo,
usr/src/cmd/mdb/common/modules/libc/libc.c
553
ulwp.ul_cond_wait_defer,
usr/src/cmd/mdb/common/modules/libc/libc.c
554
ulwp.ul_error_detection,
usr/src/cmd/mdb/common/modules/libc/libc.c
555
ulwp.ul_async_safe,
usr/src/cmd/mdb/common/modules/libc/libc.c
556
ulwp.ul_rt,
usr/src/cmd/mdb/common/modules/libc/libc.c
557
ulwp.ul_rtqueued);
usr/src/cmd/mdb/common/modules/libc/libc.c
562
ulwp.ul_misaligned,
usr/src/cmd/mdb/common/modules/libc/libc.c
563
ulwp.ul_adaptive_spin,
usr/src/cmd/mdb/common/modules/libc/libc.c
564
ulwp.ul_queue_spin,
usr/src/cmd/mdb/common/modules/libc/libc.c
565
ulwp.ul_critical,
usr/src/cmd/mdb/common/modules/libc/libc.c
566
ulwp.ul_sigdefer,
usr/src/cmd/mdb/common/modules/libc/libc.c
567
ulwp.ul_vfork);
usr/src/cmd/mdb/common/modules/libc/libc.c
572
ulwp.ul_cancelable,
usr/src/cmd/mdb/common/modules/libc/libc.c
573
ulwp.ul_cancel_pending,
usr/src/cmd/mdb/common/modules/libc/libc.c
574
ulwp.ul_cancel_disabled,
usr/src/cmd/mdb/common/modules/libc/libc.c
575
ulwp.ul_cancel_async,
usr/src/cmd/mdb/common/modules/libc/libc.c
576
ulwp.ul_save_async,
usr/src/cmd/mdb/common/modules/libc/libc.c
577
ulwp.ul_mutator);
usr/src/cmd/mdb/common/modules/libc/libc.c
582
ulwp.ul_created,
usr/src/cmd/mdb/common/modules/libc/libc.c
583
ulwp.ul_replace,
usr/src/cmd/mdb/common/modules/libc/libc.c
584
ulwp.ul_nocancel,
usr/src/cmd/mdb/common/modules/libc/libc.c
585
ulwp.ul_errno,
usr/src/cmd/mdb/common/modules/libc/libc.c
586
prt_addr(ulwp.ul_errnop, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
591
prt_addr(ulwp.ul_clnup_hdr, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
592
prt_addr(ulwp.ul_schedctl_called, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
593
prt_addr((void *)ulwp.ul_schedctl, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
598
mdb_printf(ulwp.ul_bindflags? "0x%-8x " : "%-10d ",
usr/src/cmd/mdb/common/modules/libc/libc.c
599
ulwp.ul_bindflags);
usr/src/cmd/mdb/common/modules/libc/libc.c
600
mdb_printf("%-10d ", ulwp.ul_libc_locks);
usr/src/cmd/mdb/common/modules/libc/libc.c
602
prt_addr(ulwp.ul_stsd, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
608
ulwp.ul_td_evbuf.eventmask.event_bits[0],
usr/src/cmd/mdb/common/modules/libc/libc.c
609
ulwp.ul_td_evbuf.eventmask.event_bits[1],
usr/src/cmd/mdb/common/modules/libc/libc.c
610
ulwp.ul_td_evbuf.eventnum,
usr/src/cmd/mdb/common/modules/libc/libc.c
611
prt_addr(ulwp.ul_td_evbuf.eventdata, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
616
ulwp.ul_td_events_enable,
usr/src/cmd/mdb/common/modules/libc/libc.c
617
ulwp.ul_sync_obj_reg,
usr/src/cmd/mdb/common/modules/libc/libc.c
618
ulwp.ul_qtype,
usr/src/cmd/mdb/common/modules/libc/libc.c
619
ulwp.ul_cv_wake,
usr/src/cmd/mdb/common/modules/libc/libc.c
620
ulwp.ul_rtld);
usr/src/cmd/mdb/common/modules/libc/libc.c
621
mdb_printf(ulwp.ul_usropts? "0x%x\n" : "%d\n",
usr/src/cmd/mdb/common/modules/libc/libc.c
622
ulwp.ul_usropts);
usr/src/cmd/mdb/common/modules/libc/libc.c
627
prt_addr((void *)ulwp.ul_startpc, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
628
prt_addr(ulwp.ul_startarg, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
629
prt_addr(ulwp.ul_wchan, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
634
prt_addr(ulwp.ul_link, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
635
prt_addr(ulwp.ul_sleepq, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
636
prt_addr(ulwp.ul_cvmutex, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
641
prt_addr(ulwp.ul_mxchain, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
642
ulwp.ul_save_state);
usr/src/cmd/mdb/common/modules/libc/libc.c
647
ulwp.ul_rdlockcnt,
usr/src/cmd/mdb/common/modules/libc/libc.c
648
prt_addr(ulwp.ul_readlock.single.rd_rwlock, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
649
ulwp.ul_readlock.single.rd_count);
usr/src/cmd/mdb/common/modules/libc/libc.c
654
ulwp.ul_heldlockcnt,
usr/src/cmd/mdb/common/modules/libc/libc.c
655
prt_addr(ulwp.ul_heldlocks.single, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
656
prt_addr(ulwp.ul_tpdp, 0));
usr/src/cmd/mdb/common/modules/libc/libc.c
661
prt_addr(ulwp.ul_siglink, 1),
usr/src/cmd/mdb/common/modules/libc/libc.c
662
ulwp.ul_spin_lock_spin,
usr/src/cmd/mdb/common/modules/libc/libc.c
663
ulwp.ul_spin_lock_spin2,
usr/src/cmd/mdb/common/modules/libc/libc.c
664
ulwp.ul_spin_lock_sleep,
usr/src/cmd/mdb/common/modules/libc/libc.c
665
ulwp.ul_spin_lock_wakeup);
usr/src/cmd/mdb/common/modules/libc/libc.c
671
ulwp.ul_rtclassid,
usr/src/cmd/mdb/common/modules/libc/libc.c
672
ulwp.ul_pilocks);
usr/src/cmd/mdb/common/modules/libc/libc.c
678
if (ulwp.ul_replace)
usr/src/cmd/mdb/common/modules/libc/libc.c
684
ulwp.ul_sigmask.__sigbits[0],
usr/src/cmd/mdb/common/modules/libc/libc.c
685
ulwp.ul_sigmask.__sigbits[1],
usr/src/cmd/mdb/common/modules/libc/libc.c
686
ulwp.ul_sigmask.__sigbits[2],
usr/src/cmd/mdb/common/modules/libc/libc.c
687
ulwp.ul_sigmask.__sigbits[3]);
usr/src/cmd/mdb/common/modules/libc/libc.c
692
ulwp.ul_tmpmask.__sigbits[0],
usr/src/cmd/mdb/common/modules/libc/libc.c
693
ulwp.ul_tmpmask.__sigbits[1],
usr/src/cmd/mdb/common/modules/libc/libc.c
694
ulwp.ul_tmpmask.__sigbits[2],
usr/src/cmd/mdb/common/modules/libc/libc.c
695
ulwp.ul_tmpmask.__sigbits[3]);
usr/src/cmd/mdb/common/modules/libc/libc.c
707
ulwp.ul_tmem.tm_size,
usr/src/cmd/mdb/common/modules/libc/libc.c
947
ulwp_t ulwp;
usr/src/cmd/mdb/common/modules/libc/libc.c
951
if (mdb_vread(&ulwp, sizeof (ulwp), addr) != sizeof (ulwp) &&
usr/src/cmd/mdb/common/modules/libc/libc.c
952
(bzero(&ulwp, sizeof (ulwp)),
usr/src/cmd/mdb/common/modules/libc/libc.c
953
mdb_vread(&ulwp, REPLACEMENT_SIZE, addr)) != REPLACEMENT_SIZE) {
usr/src/cmd/mdb/common/modules/libc/libc.c
961
if ((wsp->walk_addr = (uintptr_t)ulwp.ul_forw)
usr/src/cmd/mdb/common/modules/libc/libc.c
964
return (wsp->walk_callback(addr, &ulwp, wsp->walk_cbdata));
usr/src/cmd/mdb/common/modules/libumem/libumem.c
154
umastat_lwp_cache(uintptr_t addr, const umem_cache_t *cp, ulwp_t *ulwp)
usr/src/cmd/mdb/common/modules/libumem/libumem.c
166
&nbufs, (uintptr_t)ulwp->ul_self) == -1) {
usr/src/cmd/mdb/common/modules/libumem/libumem.c
171
mdb_printf("%3d ", ulwp->ul_tmem.tm_size ?
usr/src/cmd/mdb/common/modules/libumem/libumem.c
172
(nbufs * cp->cache_bufsize * 100) / ulwp->ul_tmem.tm_size : 0);
usr/src/cmd/mdb/common/modules/libumem/libumem.c
179
umastat_lwp(uintptr_t addr, const ulwp_t *ulwp, void *ignored)
usr/src/cmd/mdb/common/modules/libumem/libumem.c
184
mdb_printf((dfp++)->fmt, ulwp->ul_lwpid);
usr/src/cmd/mdb/common/modules/libumem/libumem.c
185
mdb_printf((dfp++)->fmt, ulwp->ul_tmem.tm_size);
usr/src/cmd/mdb/common/modules/libumem/libumem.c
192
mdb_printf((dfp++)->fmt, (ulwp->ul_tmem.tm_size * 100) / size);
usr/src/cmd/mdb/common/modules/libumem/libumem.c
195
(mdb_walk_cb_t)umastat_lwp_cache, (void *)ulwp) == -1) {
usr/src/lib/libc/amd64/threads/machdep.c
123
_fpinherit(ulwp_t *ulwp)
usr/src/lib/libc/amd64/threads/machdep.c
125
ulwp->ul_fpuenv.ftag = 0xffffffff;
usr/src/lib/libc/amd64/threads/machdep.c
129
getgregs(ulwp_t *ulwp, gregset_t rs)
usr/src/lib/libc/amd64/threads/machdep.c
133
if (getlwpstatus(ulwp->ul_lwpid, &status) == 0) {
usr/src/lib/libc/amd64/threads/machdep.c
155
setgregs(ulwp_t *ulwp, gregset_t rs)
usr/src/lib/libc/amd64/threads/machdep.c
159
if (getlwpstatus(ulwp->ul_lwpid, &status) == 0) {
usr/src/lib/libc/amd64/threads/machdep.c
168
(void) putlwpregs(ulwp->ul_lwpid, status.pr_reg);
usr/src/lib/libc/amd64/threads/machdep.c
37
setup_top_frame(void *stk, size_t stksize, ulwp_t *ulwp __unused)
usr/src/lib/libc/amd64/threads/machdep.c
69
ulwp_t *ulwp, caddr_t stk, size_t stksize)
usr/src/lib/libc/amd64/threads/machdep.c
77
ucp->uc_mcontext.gregs[REG_FSBASE] = (greg_t)ulwp;
usr/src/lib/libc/amd64/threads/machdep.c
87
if ((stack = setup_top_frame(stk, stksize, ulwp)) == NULL)
usr/src/lib/libc/amd64/threads/machdep.c
92
ucp->uc_mcontext.gregs[REG_RDI] = (greg_t)ulwp;
usr/src/lib/libc/i386/threads/machdep.c
126
ucp->uc_mcontext.gregs[ESP] = (greg_t)ulwp;
usr/src/lib/libc/i386/threads/machdep.c
133
if ((stack = setup_top_frame(stk, stksize, ulwp)) == NULL)
usr/src/lib/libc/i386/threads/machdep.c
168
_fpinherit(ulwp_t *ulwp)
usr/src/lib/libc/i386/threads/machdep.c
170
ulwp->ul_fpuenv.ftag = 0xffffffff;
usr/src/lib/libc/i386/threads/machdep.c
174
getgregs(ulwp_t *ulwp, gregset_t rs)
usr/src/lib/libc/i386/threads/machdep.c
178
if (getlwpstatus(ulwp->ul_lwpid, &status) == 0) {
usr/src/lib/libc/i386/threads/machdep.c
196
setgregs(ulwp_t *ulwp, gregset_t rs)
usr/src/lib/libc/i386/threads/machdep.c
200
if (getlwpstatus(ulwp->ul_lwpid, &status) == 0) {
usr/src/lib/libc/i386/threads/machdep.c
207
(void) putlwpregs(ulwp->ul_lwpid, status.pr_reg);
usr/src/lib/libc/i386/threads/machdep.c
49
setup_top_frame(void *stk, size_t stksize, ulwp_t *ulwp)
usr/src/lib/libc/i386/threads/machdep.c
80
frame.arg = (uint32_t)ulwp;
usr/src/lib/libc/i386/threads/machdep.c
89
ulwp_t *ulwp, caddr_t stk, size_t stksize)
usr/src/lib/libc/inc/tdb_agent.h
264
#define __td_event_report(ulwp, event, udp) \
usr/src/lib/libc/inc/tdb_agent.h
265
(((ulwp)->ul_td_events_enable && \
usr/src/lib/libc/inc/tdb_agent.h
266
td_eventismember(&(ulwp)->ul_td_evbuf.eventmask, (event))) || \
usr/src/lib/libc/inc/thr_uberdata.h
1004
#define ulwp_mutex(ulwp, udp) \
usr/src/lib/libc/inc/thr_uberdata.h
1005
(&(udp)->thr_hash_table[(ulwp)->ul_ix].hash_lock)
usr/src/lib/libc/inc/thr_uberdata.h
1006
#define ulwp_condvar(ulwp, udp) \
usr/src/lib/libc/inc/thr_uberdata.h
1007
(&(udp)->thr_hash_table[(ulwp)->ul_ix].hash_cond)
usr/src/lib/libc/inc/thr_uberdata.h
1012
#define ulwp_lock(ulwp, udp) lmutex_lock(ulwp_mutex(ulwp, udp))
usr/src/lib/libc/inc/thr_uberdata.h
1013
#define ulwp_unlock(ulwp, udp) lmutex_unlock(ulwp_mutex(ulwp, udp))
usr/src/lib/libc/inc/thr_uberdata.h
1267
#define real_priority(ulwp) \
usr/src/lib/libc/inc/thr_uberdata.h
1268
((ulwp)->ul_schedctl? (ulwp)->ul_schedctl->sc_priority : 0)
usr/src/lib/libc/inc/thr_uberdata.h
1298
ulwp_t *ulwp, caddr_t stk, size_t stksize);
usr/src/lib/libc/inc/thr_uberdata.h
369
struct ulwp *qr_head;
usr/src/lib/libc/inc/thr_uberdata.h
370
struct ulwp *qr_tail;
usr/src/lib/libc/inc/thr_uberdata.h
446
extern void enqueue(queue_head_t *, struct ulwp *, int);
usr/src/lib/libc/inc/thr_uberdata.h
447
extern struct ulwp *dequeue(queue_head_t *, int *);
usr/src/lib/libc/inc/thr_uberdata.h
448
extern struct ulwp **queue_slot(queue_head_t *, struct ulwp **, int *);
usr/src/lib/libc/inc/thr_uberdata.h
449
extern struct ulwp *queue_waiter(queue_head_t *);
usr/src/lib/libc/inc/thr_uberdata.h
452
struct ulwp **, struct ulwp *);
usr/src/lib/libc/inc/thr_uberdata.h
557
struct ulwp *ul_self; /* pointer to self */
usr/src/lib/libc/inc/thr_uberdata.h
565
struct ulwp *ul_forw; /* forw, back all_lwps list, */
usr/src/lib/libc/inc/thr_uberdata.h
566
struct ulwp *ul_back; /* protected by link_lock */
usr/src/lib/libc/inc/thr_uberdata.h
567
struct ulwp *ul_next; /* list to keep track of stacks */
usr/src/lib/libc/inc/thr_uberdata.h
568
struct ulwp *ul_hash; /* hash chain linked list */
usr/src/lib/libc/inc/thr_uberdata.h
648
struct ulwp *ul_link; /* sleep queue link */
usr/src/lib/libc/port/threads/cancel.c
40
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/cancel.c
43
if ((ulwp = find_lwp(tid)) == NULL)
usr/src/lib/libc/port/threads/cancel.c
46
if (ulwp->ul_cancel_pending) {
usr/src/lib/libc/port/threads/cancel.c
50
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/cancel.c
51
} else if (ulwp == self) {
usr/src/lib/libc/port/threads/cancel.c
63
} else if (ulwp->ul_cancel_disabled) {
usr/src/lib/libc/port/threads/cancel.c
71
ulwp->ul_cancel_pending = 1;
usr/src/lib/libc/port/threads/cancel.c
72
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/cancel.c
78
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/pthread.c
159
ulwp_t *ulwp = find_lwp(tid);
usr/src/lib/libc/port/threads/pthread.c
160
if (ulwp->ul_detached == 0) {
usr/src/lib/libc/port/threads/pthread.c
161
ulwp->ul_detached = 1;
usr/src/lib/libc/port/threads/pthread.c
162
ulwp->ul_usropts |= THR_DETACHED;
usr/src/lib/libc/port/threads/pthread.c
165
ulwp->ul_cancel_pending = 2; /* cancelled on creation */
usr/src/lib/libc/port/threads/pthread.c
166
ulwp->ul_cancel_disabled = 0;
usr/src/lib/libc/port/threads/pthread.c
167
ulwp_unlock(ulwp, self->ul_uberdata);
usr/src/lib/libc/port/threads/pthread.c
232
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/pthread.c
236
if ((ulwp = find_lwp(tid)) == NULL) {
usr/src/lib/libc/port/threads/pthread.c
239
cid = getparam(P_LWPID, ulwp->ul_lwpid, policy, param);
usr/src/lib/libc/port/threads/pthread.c
242
} else if (*policy == ulwp->ul_policy && cid == ulwp->ul_cid &&
usr/src/lib/libc/port/threads/pthread.c
248
param->sched_priority = ulwp->ul_pri;
usr/src/lib/libc/port/threads/pthread.c
251
ulwp->ul_rtclassid = cid;
usr/src/lib/libc/port/threads/pthread.c
252
ulwp->ul_cid = cid;
usr/src/lib/libc/port/threads/pthread.c
253
ulwp->ul_pri = param->sched_priority;
usr/src/lib/libc/port/threads/pthread.c
255
ulwp->ul_policy = *policy;
usr/src/lib/libc/port/threads/pthread.c
257
ulwp_unlock(ulwp, curthread->ul_uberdata);
usr/src/lib/libc/port/threads/pthread.c
52
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/pthread.c
55
if ((ulwp = find_lwp(tid)) == NULL) {
usr/src/lib/libc/port/threads/pthread.c
58
ulwp->ul_ptinherit = inherit;
usr/src/lib/libc/port/threads/pthread.c
59
ulwp_unlock(ulwp, curthread->ul_uberdata);
usr/src/lib/libc/port/threads/pthread.c
68
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/pthread.c
72
if ((ulwp = find_lwp(tid)) == NULL) {
usr/src/lib/libc/port/threads/pthread.c
75
if (policy == ulwp->ul_policy &&
usr/src/lib/libc/port/threads/pthread.c
77
ulwp->ul_epri != 0) {
usr/src/lib/libc/port/threads/pthread.c
82
if (prio > ulwp->ul_epri)
usr/src/lib/libc/port/threads/pthread.c
85
ulwp->ul_pri = prio;
usr/src/lib/libc/port/threads/pthread.c
90
ulwp->ul_rtclassid = cid;
usr/src/lib/libc/port/threads/pthread.c
91
ulwp->ul_cid = cid;
usr/src/lib/libc/port/threads/pthread.c
92
ulwp->ul_pri = prio;
usr/src/lib/libc/port/threads/pthread.c
94
ulwp->ul_policy = policy;
usr/src/lib/libc/port/threads/pthread.c
96
ulwp_unlock(ulwp, curthread->ul_uberdata);
usr/src/lib/libc/port/threads/rwlock.c
122
rwl_free(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/rwlock.c
126
if ((nlocks = ulwp->ul_rdlockcnt) != 0)
usr/src/lib/libc/port/threads/rwlock.c
127
lfree(ulwp->ul_readlock.array, nlocks * sizeof (readlock_t));
usr/src/lib/libc/port/threads/rwlock.c
128
ulwp->ul_rdlockcnt = 0;
usr/src/lib/libc/port/threads/rwlock.c
129
ulwp->ul_readlock.single.rd_rwlock = NULL;
usr/src/lib/libc/port/threads/rwlock.c
130
ulwp->ul_readlock.single.rd_count = 0;
usr/src/lib/libc/port/threads/rwlock.c
381
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/rwlock.c
438
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/rwlock.c
439
ASSERT(ulwp->ul_wchan == rwlp);
usr/src/lib/libc/port/threads/rwlock.c
440
if (ulwp->ul_writer) {
usr/src/lib/libc/port/threads/rwlock.c
454
ulwp->ul_sleepq = NULL;
usr/src/lib/libc/port/threads/rwlock.c
455
ulwp->ul_wchan = NULL;
usr/src/lib/libc/port/threads/rwlock.c
462
rwlp->rwlock_owner = (uintptr_t)ulwp;
usr/src/lib/libc/port/threads/rwlock.c
464
lwpid[nlwpid++] = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/rwlock.c
586
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/rwlock.c
619
else if ((ulwp = queue_waiter(qp)) == NULL) {
usr/src/lib/libc/port/threads/rwlock.c
630
int his_pri = real_priority(ulwp);
usr/src/lib/libc/port/threads/rwlock.c
650
(his_pri == our_pri && !ulwp->ul_writer)) {
usr/src/lib/libc/port/threads/sema.c
135
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/sema.c
166
if ((ulwp = dequeue(qp, &more)) != NULL) {
usr/src/lib/libc/port/threads/sema.c
168
lwpid = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/sema.c
283
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/sema.c
291
if ((ulwp = dequeue(qp, &more)) != NULL) {
usr/src/lib/libc/port/threads/sema.c
293
lwpid = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/sema.c
350
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/sema.c
358
if ((ulwp = dequeue(qp, &more)) != NULL) {
usr/src/lib/libc/port/threads/sema.c
360
lwpid = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/synch.c
1252
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
1333
if ((ulwp = (ulwp_t *)(uintptr_t)*ownerp) != NULL &&
usr/src/lib/libc/port/threads/synch.c
1334
((scp = ulwp->ul_schedctl) == NULL ||
usr/src/lib/libc/port/threads/synch.c
1404
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
1421
if ((ulwp = (ulwp_t *)(uintptr_t)*ownerp) != NULL &&
usr/src/lib/libc/port/threads/synch.c
1422
((scp = ulwp->ul_schedctl) == NULL ||
usr/src/lib/libc/port/threads/synch.c
1621
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
1629
if ((ulwp = dequeue(qp, &more)) != NULL) {
usr/src/lib/libc/port/threads/synch.c
1630
lwpid = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/synch.c
1647
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
1670
(ulwp = qrp->qr_head) == NULL)
usr/src/lib/libc/port/threads/synch.c
1672
ASSERT(ulwp->ul_wchan == mp);
usr/src/lib/libc/port/threads/synch.c
1674
ulwp->ul_sleepq = NULL;
usr/src/lib/libc/port/threads/synch.c
1675
ulwp->ul_wchan = NULL;
usr/src/lib/libc/port/threads/synch.c
1678
lwpid[nlwpid++] = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/synch.c
3135
heldlock_free(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/synch.c
3139
if ((nlocks = ulwp->ul_heldlockcnt) != 0)
usr/src/lib/libc/port/threads/synch.c
3140
lfree(ulwp->ul_heldlocks.array, nlocks * sizeof (mutex_t *));
usr/src/lib/libc/port/threads/synch.c
3141
ulwp->ul_heldlockcnt = 0;
usr/src/lib/libc/port/threads/synch.c
3142
ulwp->ul_heldlocks.array = NULL;
usr/src/lib/libc/port/threads/synch.c
3820
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
3846
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/synch.c
3854
ulwp->ul_signalled = 1;
usr/src/lib/libc/port/threads/synch.c
3863
mp = ulwp->ul_cvmutex; /* the mutex it will acquire */
usr/src/lib/libc/port/threads/synch.c
3864
ulwp->ul_cvmutex = NULL;
usr/src/lib/libc/port/threads/synch.c
3867
if (ulwp->ul_cv_wake || !MUTEX_OWNED(mp, self)) {
usr/src/lib/libc/port/threads/synch.c
3869
lwpid = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/synch.c
3871
ulwp->ul_sleepq = NULL;
usr/src/lib/libc/port/threads/synch.c
3872
ulwp->ul_wchan = NULL;
usr/src/lib/libc/port/threads/synch.c
3879
enqueue(mqp, ulwp, 0);
usr/src/lib/libc/port/threads/synch.c
3950
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
3988
(ulwp = qrp->qr_head) == NULL)
usr/src/lib/libc/port/threads/synch.c
3990
ASSERT(ulwp->ul_wchan == cvp);
usr/src/lib/libc/port/threads/synch.c
3992
mp = ulwp->ul_cvmutex; /* its mutex */
usr/src/lib/libc/port/threads/synch.c
3993
ulwp->ul_cvmutex = NULL;
usr/src/lib/libc/port/threads/synch.c
3995
if (ulwp->ul_cv_wake || !MUTEX_OWNED(mp, self)) {
usr/src/lib/libc/port/threads/synch.c
3997
ulwp->ul_sleepq = NULL;
usr/src/lib/libc/port/threads/synch.c
3998
ulwp->ul_wchan = NULL;
usr/src/lib/libc/port/threads/synch.c
4001
lwpid[nlwpid++] = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/synch.c
4010
enqueue(mqp, ulwp, 0);
usr/src/lib/libc/port/threads/synch.c
4061
record_spin_locks(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/synch.c
4063
spin_lock_spin += ulwp->ul_spin_lock_spin;
usr/src/lib/libc/port/threads/synch.c
4064
spin_lock_spin2 += ulwp->ul_spin_lock_spin2;
usr/src/lib/libc/port/threads/synch.c
4065
spin_lock_sleep += ulwp->ul_spin_lock_sleep;
usr/src/lib/libc/port/threads/synch.c
4066
spin_lock_wakeup += ulwp->ul_spin_lock_wakeup;
usr/src/lib/libc/port/threads/synch.c
4067
ulwp->ul_spin_lock_spin = 0;
usr/src/lib/libc/port/threads/synch.c
4068
ulwp->ul_spin_lock_spin2 = 0;
usr/src/lib/libc/port/threads/synch.c
4069
ulwp->ul_spin_lock_sleep = 0;
usr/src/lib/libc/port/threads/synch.c
4070
ulwp->ul_spin_lock_wakeup = 0;
usr/src/lib/libc/port/threads/synch.c
510
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
531
for (prev = NULL, ulwp = qrp->qr_head; ulwp != NULL;
usr/src/lib/libc/port/threads/synch.c
532
prev = ulwp, ulwp = ulwp->ul_link) {
usr/src/lib/libc/port/threads/synch.c
534
if (ulwp->ul_writer)
usr/src/lib/libc/port/threads/synch.c
536
ASSERT(ulwp->ul_qtype == qtype);
usr/src/lib/libc/port/threads/synch.c
537
ASSERT(ulwp->ul_wchan != NULL);
usr/src/lib/libc/port/threads/synch.c
538
ASSERT(ulwp->ul_sleepq == qp);
usr/src/lib/libc/port/threads/synch.c
539
wchan = ulwp->ul_wchan;
usr/src/lib/libc/port/threads/synch.c
610
#define CMP_PRIO(ulwp) ((real_priority(ulwp) << 1) + (ulwp)->ul_writer)
usr/src/lib/libc/port/threads/synch.c
613
enqueue(queue_head_t *qp, ulwp_t *ulwp, int force_fifo)
usr/src/lib/libc/port/threads/synch.c
618
int pri = CMP_PRIO(ulwp);
usr/src/lib/libc/port/threads/synch.c
621
ASSERT(ulwp->ul_sleepq != qp);
usr/src/lib/libc/port/threads/synch.c
625
qrp = &ulwp->ul_queue_root;
usr/src/lib/libc/port/threads/synch.c
695
if ((ulwp->ul_link = *ulwpp) == NULL)
usr/src/lib/libc/port/threads/synch.c
696
qrp->qr_tail = ulwp;
usr/src/lib/libc/port/threads/synch.c
697
*ulwpp = ulwp;
usr/src/lib/libc/port/threads/synch.c
699
ulwp->ul_sleepq = qp;
usr/src/lib/libc/port/threads/synch.c
700
ulwp->ul_wchan = qp->qh_wchan;
usr/src/lib/libc/port/threads/synch.c
701
ulwp->ul_qtype = qp->qh_type;
usr/src/lib/libc/port/threads/synch.c
702
if ((ulwp->ul_schedctl != NULL &&
usr/src/lib/libc/port/threads/synch.c
703
ulwp->ul_schedctl->sc_cid == ulwp->ul_rtclassid) |
usr/src/lib/libc/port/threads/synch.c
704
ulwp->ul_pilocks) {
usr/src/lib/libc/port/threads/synch.c
705
ulwp->ul_rtqueued = 1;
usr/src/lib/libc/port/threads/synch.c
719
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
726
(ulwp = *ulwpp) != NULL;
usr/src/lib/libc/port/threads/synch.c
727
prev = ulwp, ulwpp = &ulwp->ul_link) {
usr/src/lib/libc/port/threads/synch.c
728
if (ulwp->ul_stop) /* skip suspended threads */
usr/src/lib/libc/port/threads/synch.c
730
tpri = rt? CMP_PRIO(ulwp) : 0;
usr/src/lib/libc/port/threads/synch.c
750
ulwp_t *ulwp = *ulwpp;
usr/src/lib/libc/port/threads/synch.c
752
int priority = CMP_PRIO(ulwp);
usr/src/lib/libc/port/threads/synch.c
756
for (prev = ulwp, ulwpp = &ulwp->ul_link;
usr/src/lib/libc/port/threads/synch.c
757
(ulwp = *ulwpp) != NULL;
usr/src/lib/libc/port/threads/synch.c
758
prev = ulwp, ulwpp = &ulwp->ul_link) {
usr/src/lib/libc/port/threads/synch.c
759
tpri = CMP_PRIO(ulwp);
usr/src/lib/libc/port/threads/synch.c
766
ulwp = *foundpp;
usr/src/lib/libc/port/threads/synch.c
772
if (ulwp->ul_stop &&
usr/src/lib/libc/port/threads/synch.c
775
ulwp = *foundpp;
usr/src/lib/libc/port/threads/synch.c
777
ulwp->ul_rt = 1;
usr/src/lib/libc/port/threads/synch.c
786
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
791
if ((qrp = qp->qh_root) == NULL || (ulwp = qrp->qr_head) == NULL) {
usr/src/lib/libc/port/threads/synch.c
797
if (ulwp->ul_link == NULL) { /* only one lwp on the queue */
usr/src/lib/libc/port/threads/synch.c
799
ulwp->ul_rt = rt;
usr/src/lib/libc/port/threads/synch.c
810
if (ulwp->ul_stop &&
usr/src/lib/libc/port/threads/synch.c
812
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/synch.c
813
ulwp->ul_rt = 0;
usr/src/lib/libc/port/threads/synch.c
819
ulwp->ul_rt = 0;
usr/src/lib/libc/port/threads/synch.c
831
ulwp_t *ulwp = *ulwpp;
usr/src/lib/libc/port/threads/synch.c
835
ASSERT(qp->qh_wchan != NULL && ulwp->ul_wchan == qp->qh_wchan);
usr/src/lib/libc/port/threads/synch.c
839
if (ulwp->ul_rtqueued) {
usr/src/lib/libc/port/threads/synch.c
840
ulwp->ul_rtqueued = 0;
usr/src/lib/libc/port/threads/synch.c
843
next = ulwp->ul_link;
usr/src/lib/libc/port/threads/synch.c
845
ulwp->ul_link = NULL;
usr/src/lib/libc/port/threads/synch.c
846
if (qrp->qr_tail == ulwp)
usr/src/lib/libc/port/threads/synch.c
848
if (qrp == &ulwp->ul_queue_root) {
usr/src/lib/libc/port/threads/synch.c
887
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
892
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/synch.c
894
ulwp->ul_sleepq = NULL;
usr/src/lib/libc/port/threads/synch.c
895
ulwp->ul_wchan = NULL;
usr/src/lib/libc/port/threads/synch.c
896
return (ulwp);
usr/src/lib/libc/port/threads/synch.c
920
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/synch.c
929
(ulwp = *ulwpp) != NULL;
usr/src/lib/libc/port/threads/synch.c
930
prev = ulwp, ulwpp = &ulwp->ul_link) {
usr/src/lib/libc/port/threads/synch.c
931
if (ulwp == self) {
usr/src/lib/libc/port/threads/thr.c
1025
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/thr.c
1026
*ulwpp = ulwp->ul_hash;
usr/src/lib/libc/port/threads/thr.c
1027
ulwp->ul_hash = NULL;
usr/src/lib/libc/port/threads/thr.c
1032
if (udp->all_zombies == ulwp)
usr/src/lib/libc/port/threads/thr.c
1033
udp->all_zombies = ulwp->ul_forw;
usr/src/lib/libc/port/threads/thr.c
1034
if (udp->all_zombies == ulwp)
usr/src/lib/libc/port/threads/thr.c
1037
ulwp->ul_forw->ul_back = ulwp->ul_back;
usr/src/lib/libc/port/threads/thr.c
1038
ulwp->ul_back->ul_forw = ulwp->ul_forw;
usr/src/lib/libc/port/threads/thr.c
1040
ulwp->ul_forw = ulwp->ul_back = NULL;
usr/src/lib/libc/port/threads/thr.c
1042
ASSERT(ulwp->ul_dead && !ulwp->ul_detached &&
usr/src/lib/libc/port/threads/thr.c
1043
!(ulwp->ul_usropts & (THR_DETACHED|THR_DAEMON)));
usr/src/lib/libc/port/threads/thr.c
1049
mp = ulwp_mutex(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1050
ulwp->ul_lwpid = (lwpid_t)(-1);
usr/src/lib/libc/port/threads/thr.c
1051
ulwp->ul_ix = -1;
usr/src/lib/libc/port/threads/thr.c
1052
rval = ulwp->ul_rval;
usr/src/lib/libc/port/threads/thr.c
1053
replace = ulwp->ul_replace;
usr/src/lib/libc/port/threads/thr.c
1056
ulwp->ul_next = NULL;
usr/src/lib/libc/port/threads/thr.c
1059
udp->ulwp_replace_last = ulwp;
usr/src/lib/libc/port/threads/thr.c
1061
udp->ulwp_replace_last->ul_next = ulwp;
usr/src/lib/libc/port/threads/thr.c
1062
udp->ulwp_replace_last = ulwp;
usr/src/lib/libc/port/threads/thr.c
1099
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
1105
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/thr.c
1107
if (ulwp->ul_dead) {
usr/src/lib/libc/port/threads/thr.c
1108
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1112
ulwp->ul_detached = 1;
usr/src/lib/libc/port/threads/thr.c
1113
ulwp->ul_usropts |= THR_DETACHED;
usr/src/lib/libc/port/threads/thr.c
1114
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1630
mark_dead_and_buried(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/thr.c
1632
ulwp->ul_dead = 1;
usr/src/lib/libc/port/threads/thr.c
1633
ulwp->ul_lwpid = (lwpid_t)(-1);
usr/src/lib/libc/port/threads/thr.c
1634
ulwp->ul_hash = NULL;
usr/src/lib/libc/port/threads/thr.c
1635
ulwp->ul_ix = -1;
usr/src/lib/libc/port/threads/thr.c
1636
ulwp->ul_schedctl = NULL;
usr/src/lib/libc/port/threads/thr.c
1637
ulwp->ul_schedctl_called = NULL;
usr/src/lib/libc/port/threads/thr.c
1651
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
1712
for (ulwp = udp->lwp_stacks; ulwp != NULL; ulwp = ulwp->ul_next)
usr/src/lib/libc/port/threads/thr.c
1713
mark_dead_and_buried(ulwp);
usr/src/lib/libc/port/threads/thr.c
1714
for (ulwp = udp->ulwp_freelist; ulwp != NULL; ulwp = ulwp->ul_next)
usr/src/lib/libc/port/threads/thr.c
1715
mark_dead_and_buried(ulwp);
usr/src/lib/libc/port/threads/thr.c
1716
for (ulwp = self->ul_forw; ulwp != self; ulwp = next) {
usr/src/lib/libc/port/threads/thr.c
1717
next = ulwp->ul_forw;
usr/src/lib/libc/port/threads/thr.c
1718
ulwp->ul_forw = ulwp->ul_back = NULL;
usr/src/lib/libc/port/threads/thr.c
1719
mark_dead_and_buried(ulwp);
usr/src/lib/libc/port/threads/thr.c
1720
tsd_free(ulwp);
usr/src/lib/libc/port/threads/thr.c
1721
tls_free(ulwp);
usr/src/lib/libc/port/threads/thr.c
1722
rwl_free(ulwp);
usr/src/lib/libc/port/threads/thr.c
1723
heldlock_free(ulwp);
usr/src/lib/libc/port/threads/thr.c
1724
ulwp_free(ulwp);
usr/src/lib/libc/port/threads/thr.c
1729
if ((ulwp = udp->all_zombies) != NULL) {
usr/src/lib/libc/port/threads/thr.c
1732
next = ulwp->ul_forw;
usr/src/lib/libc/port/threads/thr.c
1733
ulwp->ul_forw = ulwp->ul_back = NULL;
usr/src/lib/libc/port/threads/thr.c
1734
mark_dead_and_buried(ulwp);
usr/src/lib/libc/port/threads/thr.c
1736
if (ulwp->ul_replace) {
usr/src/lib/libc/port/threads/thr.c
1737
ulwp->ul_next = NULL;
usr/src/lib/libc/port/threads/thr.c
1740
udp->ulwp_replace_last = ulwp;
usr/src/lib/libc/port/threads/thr.c
1742
udp->ulwp_replace_last->ul_next = ulwp;
usr/src/lib/libc/port/threads/thr.c
1743
udp->ulwp_replace_last = ulwp;
usr/src/lib/libc/port/threads/thr.c
1746
} while ((ulwp = next) != udp->all_zombies);
usr/src/lib/libc/port/threads/thr.c
177
hash_in_unlocked(ulwp_t *ulwp, int ix, uberdata_t *udp)
usr/src/lib/libc/port/threads/thr.c
1783
_thrp_stksegment(ulwp_t *ulwp, stack_t *stk)
usr/src/lib/libc/port/threads/thr.c
1785
stk->ss_sp = (void *)ulwp->ul_stktop;
usr/src/lib/libc/port/threads/thr.c
1786
stk->ss_size = ulwp->ul_stksiz;
usr/src/lib/libc/port/threads/thr.c
179
ulwp->ul_hash = udp->thr_hash_table[ix].hash_bucket;
usr/src/lib/libc/port/threads/thr.c
1799
force_continue(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/thr.c
180
udp->thr_hash_table[ix].hash_bucket = ulwp;
usr/src/lib/libc/port/threads/thr.c
1809
ASSERT(MUTEX_OWNED(ulwp_mutex(ulwp, udp), self));
usr/src/lib/libc/port/threads/thr.c
181
ulwp->ul_ix = ix;
usr/src/lib/libc/port/threads/thr.c
1812
error = _lwp_continue(ulwp->ul_lwpid);
usr/src/lib/libc/port/threads/thr.c
1816
if (ulwp->ul_stopping) { /* it is stopping itself */
usr/src/lib/libc/port/threads/thr.c
1821
if (!ulwp->ul_stopping) /* it is running now */
usr/src/lib/libc/port/threads/thr.c
1840
safe_suspend(ulwp_t *ulwp, uchar_t whystopped, int *link_dropped)
usr/src/lib/libc/port/threads/thr.c
1844
cond_t *cvp = ulwp_condvar(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1845
mutex_t *mp = ulwp_mutex(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1846
thread_t tid = ulwp->ul_lwpid;
usr/src/lib/libc/port/threads/thr.c
1847
int ix = ulwp->ul_ix;
usr/src/lib/libc/port/threads/thr.c
185
hash_in(ulwp_t *ulwp, uberdata_t *udp)
usr/src/lib/libc/port/threads/thr.c
1853
ASSERT(ulwp != self);
usr/src/lib/libc/port/threads/thr.c
1854
ASSERT(!ulwp->ul_stop);
usr/src/lib/libc/port/threads/thr.c
1865
spin_lock_set(&ulwp->ul_spinlock);
usr/src/lib/libc/port/threads/thr.c
1867
spin_lock_clear(&ulwp->ul_spinlock);
usr/src/lib/libc/port/threads/thr.c
187
int ix = TIDHASH(ulwp->ul_lwpid, udp);
usr/src/lib/libc/port/threads/thr.c
1870
if ((ulwp->ul_critical == 0 && ulwp->ul_rtld == 0) ||
usr/src/lib/libc/port/threads/thr.c
1871
ulwp->ul_stopping) {
usr/src/lib/libc/port/threads/thr.c
1873
ulwp->ul_stop |= whystopped;
usr/src/lib/libc/port/threads/thr.c
1882
ulwp->ul_pleasestop |= whystopped;
usr/src/lib/libc/port/threads/thr.c
1883
force_continue(ulwp);
usr/src/lib/libc/port/threads/thr.c
1899
while (ulwp && !ulwp->ul_dead && !ulwp->ul_stop &&
usr/src/lib/libc/port/threads/thr.c
1900
(ulwp->ul_pleasestop & whystopped)) {
usr/src/lib/libc/port/threads/thr.c
1902
for (ulwp = udp->thr_hash_table[ix].hash_bucket;
usr/src/lib/libc/port/threads/thr.c
1903
ulwp != NULL; ulwp = ulwp->ul_hash) {
usr/src/lib/libc/port/threads/thr.c
1904
if (ulwp->ul_lwpid == tid)
usr/src/lib/libc/port/threads/thr.c
1909
if (ulwp == NULL || ulwp->ul_dead)
usr/src/lib/libc/port/threads/thr.c
191
hash_in_unlocked(ulwp, ix, udp);
usr/src/lib/libc/port/threads/thr.c
1922
ASSERT(ulwp->ul_lwpid == tid);
usr/src/lib/libc/port/threads/thr.c
1923
spin_lock_set(&ulwp->ul_spinlock);
usr/src/lib/libc/port/threads/thr.c
1925
spin_lock_clear(&ulwp->ul_spinlock);
usr/src/lib/libc/port/threads/thr.c
1930
if (!ulwp->ul_stopping || !(ulwp->ul_stop & whystopped))
usr/src/lib/libc/port/threads/thr.c
1945
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
1959
if ((ulwp = find_lwp(tid)) == NULL)
usr/src/lib/libc/port/threads/thr.c
1961
else if (whystopped == TSTP_MUTATOR && !ulwp->ul_mutator) {
usr/src/lib/libc/port/threads/thr.c
1962
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1964
} else if (ulwp->ul_stop) { /* already stopped */
usr/src/lib/libc/port/threads/thr.c
1965
ulwp->ul_stop |= whystopped;
usr/src/lib/libc/port/threads/thr.c
1966
ulwp_broadcast(ulwp);
usr/src/lib/libc/port/threads/thr.c
1967
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
1968
} else if (ulwp != self) {
usr/src/lib/libc/port/threads/thr.c
1975
error = safe_suspend(ulwp, whystopped, NULL);
usr/src/lib/libc/port/threads/thr.c
199
hash_out_unlocked(ulwp_t *ulwp, int ix, uberdata_t *udp)
usr/src/lib/libc/port/threads/thr.c
204
ulwp != *ulwpp;
usr/src/lib/libc/port/threads/thr.c
2061
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2068
for (ulwp = self->ul_forw; ulwp != self; ulwp = ulwp->ul_forw) {
usr/src/lib/libc/port/threads/thr.c
2069
ulwp_lock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
207
*ulwpp = ulwp->ul_hash;
usr/src/lib/libc/port/threads/thr.c
2070
if (ulwp->ul_stop) { /* already stopped */
usr/src/lib/libc/port/threads/thr.c
2071
ulwp->ul_stop |= TSTP_FORK;
usr/src/lib/libc/port/threads/thr.c
2072
ulwp_broadcast(ulwp);
usr/src/lib/libc/port/threads/thr.c
2073
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2078
if (safe_suspend(ulwp, TSTP_FORK, &link_dropped) ||
usr/src/lib/libc/port/threads/thr.c
208
ulwp->ul_hash = NULL;
usr/src/lib/libc/port/threads/thr.c
209
ulwp->ul_ix = -1;
usr/src/lib/libc/port/threads/thr.c
2092
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2100
for (ulwp = self->ul_forw; ulwp != self; ulwp = ulwp->ul_forw) {
usr/src/lib/libc/port/threads/thr.c
2101
ulwp->ul_schedctl_called =
usr/src/lib/libc/port/threads/thr.c
2102
ulwp->ul_dead? &udp->uberflags : NULL;
usr/src/lib/libc/port/threads/thr.c
2103
ulwp->ul_schedctl = NULL;
usr/src/lib/libc/port/threads/thr.c
2111
for (ulwp = self->ul_forw; ulwp != self; ulwp = ulwp->ul_forw) {
usr/src/lib/libc/port/threads/thr.c
2112
mutex_t *mp = ulwp_mutex(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2114
ASSERT(ulwp->ul_stop & TSTP_FORK);
usr/src/lib/libc/port/threads/thr.c
2115
ulwp->ul_stop &= ~TSTP_FORK;
usr/src/lib/libc/port/threads/thr.c
2116
ulwp_broadcast(ulwp);
usr/src/lib/libc/port/threads/thr.c
2117
if (!ulwp->ul_stop)
usr/src/lib/libc/port/threads/thr.c
2118
force_continue(ulwp);
usr/src/lib/libc/port/threads/thr.c
2128
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
213
hash_out(ulwp_t *ulwp, uberdata_t *udp)
usr/src/lib/libc/port/threads/thr.c
2140
if ((ulwp = find_lwp(tid)) == NULL) {
usr/src/lib/libc/port/threads/thr.c
2145
mp = ulwp_mutex(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2146
if ((whystopped == TSTP_MUTATOR && !ulwp->ul_mutator)) {
usr/src/lib/libc/port/threads/thr.c
2148
} else if (ulwp->ul_stop & whystopped) {
usr/src/lib/libc/port/threads/thr.c
2149
ulwp->ul_stop &= ~whystopped;
usr/src/lib/libc/port/threads/thr.c
2150
ulwp_broadcast(ulwp);
usr/src/lib/libc/port/threads/thr.c
2151
if (!ulwp->ul_stop) {
usr/src/lib/libc/port/threads/thr.c
2152
if (whystopped == TSTP_REGULAR && ulwp->ul_created) {
usr/src/lib/libc/port/threads/thr.c
2153
ulwp->ul_sp = 0;
usr/src/lib/libc/port/threads/thr.c
2154
ulwp->ul_created = 0;
usr/src/lib/libc/port/threads/thr.c
2156
force_continue(ulwp);
usr/src/lib/libc/port/threads/thr.c
217
if ((ix = ulwp->ul_ix) >= 0) {
usr/src/lib/libc/port/threads/thr.c
221
hash_out_unlocked(ulwp, ix, udp);
usr/src/lib/libc/port/threads/thr.c
231
ulwp_clean(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/thr.c
233
caddr_t stk = ulwp->ul_stk;
usr/src/lib/libc/port/threads/thr.c
234
size_t mapsiz = ulwp->ul_mapsiz;
usr/src/lib/libc/port/threads/thr.c
235
size_t guardsize = ulwp->ul_guardsize;
usr/src/lib/libc/port/threads/thr.c
236
uintptr_t stktop = ulwp->ul_stktop;
usr/src/lib/libc/port/threads/thr.c
237
size_t stksiz = ulwp->ul_stksiz;
usr/src/lib/libc/port/threads/thr.c
239
(void) memset(ulwp, 0, sizeof (*ulwp));
usr/src/lib/libc/port/threads/thr.c
241
ulwp->ul_stk = stk;
usr/src/lib/libc/port/threads/thr.c
242
ulwp->ul_mapsiz = mapsiz;
usr/src/lib/libc/port/threads/thr.c
243
ulwp->ul_guardsize = guardsize;
usr/src/lib/libc/port/threads/thr.c
244
ulwp->ul_stktop = stktop;
usr/src/lib/libc/port/threads/thr.c
245
ulwp->ul_stksiz = stksiz;
usr/src/lib/libc/port/threads/thr.c
2501
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2506
ulwp = self;
usr/src/lib/libc/port/threads/thr.c
2507
ulwp_lock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2509
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/thr.c
2516
if (ulwp->ul_dead) {
usr/src/lib/libc/port/threads/thr.c
2518
} else if (!ulwp->ul_stop && !suspendedallmutators) {
usr/src/lib/libc/port/threads/thr.c
2521
} else if (ulwp->ul_stop) {
usr/src/lib/libc/port/threads/thr.c
2523
getgregs(ulwp, rs);
usr/src/lib/libc/port/threads/thr.c
2531
(void) _thrp_stksegment(ulwp, ss);
usr/src/lib/libc/port/threads/thr.c
2533
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2546
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2549
if ((ulwp = find_lwp(tid)) == NULL)
usr/src/lib/libc/port/threads/thr.c
2552
if (!ulwp->ul_stop && !suspendedallmutators)
usr/src/lib/libc/port/threads/thr.c
2558
if (ulwp->ul_stop)
usr/src/lib/libc/port/threads/thr.c
2559
setgregs(ulwp, rs);
usr/src/lib/libc/port/threads/thr.c
257
dead_and_buried(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/thr.c
2570
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
259
if (ulwp->ul_lwpid == (lwpid_t)(-1))
usr/src/lib/libc/port/threads/thr.c
261
if (ulwp->ul_dead && ulwp->ul_detached &&
usr/src/lib/libc/port/threads/thr.c
262
_lwp_kill(ulwp->ul_lwpid, 0) == ESRCH) {
usr/src/lib/libc/port/threads/thr.c
263
ulwp->ul_lwpid = (lwpid_t)(-1);
usr/src/lib/libc/port/threads/thr.c
2652
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2655
if ((ulwp = find_lwp(tid)) == NULL)
usr/src/lib/libc/port/threads/thr.c
2658
if (ulwp->ul_stop && (result = ulwp->ul_sp) != 0) {
usr/src/lib/libc/port/threads/thr.c
2659
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2664
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2690
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2697
ulwp = self;
usr/src/lib/libc/port/threads/thr.c
2698
ulwp_lock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2699
} else if ((ulwp = find_lwp(tid)) == NULL) {
usr/src/lib/libc/port/threads/thr.c
2708
if (ulwp != self && !ulwp->ul_stop && enabled)
usr/src/lib/libc/port/threads/thr.c
2710
else if (ulwp->ul_mutator != enabled) {
usr/src/lib/libc/port/threads/thr.c
2713
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2722
ulwp->ul_mutator = enabled;
usr/src/lib/libc/port/threads/thr.c
2726
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2773
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
279
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2791
for (ulwp = self->ul_forw; ulwp != self; ulwp = ulwp->ul_forw) {
usr/src/lib/libc/port/threads/thr.c
2792
ulwp_lock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2793
if (!ulwp->ul_mutator) {
usr/src/lib/libc/port/threads/thr.c
2794
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2795
} else if (ulwp->ul_stop) { /* already stopped */
usr/src/lib/libc/port/threads/thr.c
2796
ulwp->ul_stop |= TSTP_MUTATOR;
usr/src/lib/libc/port/threads/thr.c
2797
ulwp_broadcast(ulwp);
usr/src/lib/libc/port/threads/thr.c
2798
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2803
if (safe_suspend(ulwp, TSTP_MUTATOR, &link_dropped) ||
usr/src/lib/libc/port/threads/thr.c
283
while (udp->nfreestack > cache_limit && (ulwp = *ulwpp) != NULL) {
usr/src/lib/libc/port/threads/thr.c
284
if (dead_and_buried(ulwp)) {
usr/src/lib/libc/port/threads/thr.c
2844
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
285
*ulwpp = ulwp->ul_next;
usr/src/lib/libc/port/threads/thr.c
2859
for (ulwp = self->ul_forw; ulwp != self; ulwp = ulwp->ul_forw) {
usr/src/lib/libc/port/threads/thr.c
286
if (ulwp == udp->lwp_laststack)
usr/src/lib/libc/port/threads/thr.c
2860
mutex_t *mp = ulwp_mutex(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2862
if (ulwp->ul_stop & TSTP_MUTATOR) {
usr/src/lib/libc/port/threads/thr.c
2863
ulwp->ul_stop &= ~TSTP_MUTATOR;
usr/src/lib/libc/port/threads/thr.c
2864
ulwp_broadcast(ulwp);
usr/src/lib/libc/port/threads/thr.c
2865
if (!ulwp->ul_stop)
usr/src/lib/libc/port/threads/thr.c
2866
force_continue(ulwp);
usr/src/lib/libc/port/threads/thr.c
288
hash_out(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2891
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
2897
if ((ulwp = find_lwp(tid)) == NULL) {
usr/src/lib/libc/port/threads/thr.c
290
(void) munmap(ulwp->ul_stk, ulwp->ul_mapsiz);
usr/src/lib/libc/port/threads/thr.c
2902
if (!ulwp->ul_mutator)
usr/src/lib/libc/port/threads/thr.c
2905
if (!(ulwp->ul_stop & TSTP_MUTATOR))
usr/src/lib/libc/port/threads/thr.c
2907
} else if (!(ulwp->ul_stop & TSTP_MUTATOR)) {
usr/src/lib/libc/port/threads/thr.c
2908
cond_t *cvp = ulwp_condvar(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2909
mutex_t *mp = ulwp_mutex(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2916
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
2939
_resume(ulwp_t *ulwp, caddr_t sp, int dontsave)
usr/src/lib/libc/port/threads/thr.c
294
ulwp->ul_mapsiz = 0;
usr/src/lib/libc/port/threads/thr.c
295
ulwp->ul_next = NULL;
usr/src/lib/libc/port/threads/thr.c
297
udp->ulwp_freelist = udp->ulwp_lastfree = ulwp;
usr/src/lib/libc/port/threads/thr.c
299
udp->ulwp_lastfree->ul_next = ulwp;
usr/src/lib/libc/port/threads/thr.c
300
udp->ulwp_lastfree = ulwp;
usr/src/lib/libc/port/threads/thr.c
303
prev = ulwp;
usr/src/lib/libc/port/threads/thr.c
304
ulwpp = &ulwp->ul_next;
usr/src/lib/libc/port/threads/thr.c
324
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
362
(ulwp = *ulwpp) != NULL;
usr/src/lib/libc/port/threads/thr.c
363
prev = ulwp, ulwpp = &ulwp->ul_next) {
usr/src/lib/libc/port/threads/thr.c
364
if (ulwp->ul_mapsiz == mapsize &&
usr/src/lib/libc/port/threads/thr.c
365
ulwp->ul_guardsize == guardsize &&
usr/src/lib/libc/port/threads/thr.c
366
dead_and_buried(ulwp)) {
usr/src/lib/libc/port/threads/thr.c
371
*ulwpp = ulwp->ul_next;
usr/src/lib/libc/port/threads/thr.c
372
ulwp->ul_next = NULL;
usr/src/lib/libc/port/threads/thr.c
373
if (ulwp == udp->lwp_laststack)
usr/src/lib/libc/port/threads/thr.c
375
hash_out(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
378
ulwp_clean(ulwp);
usr/src/lib/libc/port/threads/thr.c
379
return (ulwp);
usr/src/lib/libc/port/threads/thr.c
402
ulwp = ulwp_alloc();
usr/src/lib/libc/port/threads/thr.c
403
if (ulwp == NULL)
usr/src/lib/libc/port/threads/thr.c
406
ulwp->ul_stk = stk;
usr/src/lib/libc/port/threads/thr.c
407
ulwp->ul_mapsiz = mapsize;
usr/src/lib/libc/port/threads/thr.c
408
ulwp->ul_guardsize = guardsize;
usr/src/lib/libc/port/threads/thr.c
409
ulwp->ul_stktop = (uintptr_t)stk + mapsize;
usr/src/lib/libc/port/threads/thr.c
410
ulwp->ul_stksiz = stksize;
usr/src/lib/libc/port/threads/thr.c
415
return (ulwp);
usr/src/lib/libc/port/threads/thr.c
429
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
435
(ulwp = *ulwpp) != NULL;
usr/src/lib/libc/port/threads/thr.c
436
prev = ulwp, ulwpp = &ulwp->ul_next) {
usr/src/lib/libc/port/threads/thr.c
437
if (dead_and_buried(ulwp)) {
usr/src/lib/libc/port/threads/thr.c
438
*ulwpp = ulwp->ul_next;
usr/src/lib/libc/port/threads/thr.c
439
ulwp->ul_next = NULL;
usr/src/lib/libc/port/threads/thr.c
440
if (ulwp == udp->ulwp_lastfree)
usr/src/lib/libc/port/threads/thr.c
442
hash_out(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
444
ulwp_clean(ulwp);
usr/src/lib/libc/port/threads/thr.c
445
return (ulwp);
usr/src/lib/libc/port/threads/thr.c
451
data = lmalloc(sizeof (*ulwp) + tls_size);
usr/src/lib/libc/port/threads/thr.c
454
ulwp = (ulwp_t *)(data + tls_size);
usr/src/lib/libc/port/threads/thr.c
456
return (ulwp);
usr/src/lib/libc/port/threads/thr.c
466
ulwp_free(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/thr.c
471
ulwp->ul_next = NULL;
usr/src/lib/libc/port/threads/thr.c
472
if (ulwp == udp->ulwp_one) /* don't reuse the primoridal stack */
usr/src/lib/libc/port/threads/thr.c
474
else if (ulwp->ul_mapsiz != 0) {
usr/src/lib/libc/port/threads/thr.c
476
udp->lwp_stacks = udp->lwp_laststack = ulwp;
usr/src/lib/libc/port/threads/thr.c
478
udp->lwp_laststack->ul_next = ulwp;
usr/src/lib/libc/port/threads/thr.c
479
udp->lwp_laststack = ulwp;
usr/src/lib/libc/port/threads/thr.c
485
udp->ulwp_freelist = udp->ulwp_lastfree = ulwp;
usr/src/lib/libc/port/threads/thr.c
487
udp->ulwp_lastfree->ul_next = ulwp;
usr/src/lib/libc/port/threads/thr.c
488
udp->ulwp_lastfree = ulwp;
usr/src/lib/libc/port/threads/thr.c
503
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
511
(ulwp = *ulwpp) != NULL;
usr/src/lib/libc/port/threads/thr.c
512
ulwpp = &ulwp->ul_hash) {
usr/src/lib/libc/port/threads/thr.c
513
if (ulwp->ul_lwpid == tid)
usr/src/lib/libc/port/threads/thr.c
524
ulwp_broadcast(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/thr.c
529
ASSERT(MUTEX_OWNED(ulwp_mutex(ulwp, udp), self));
usr/src/lib/libc/port/threads/thr.c
530
(void) cond_broadcast(ulwp_condvar(ulwp, udp));
usr/src/lib/libc/port/threads/thr.c
542
ulwp_t *ulwp = NULL;
usr/src/lib/libc/port/threads/thr.c
546
ulwp = self;
usr/src/lib/libc/port/threads/thr.c
547
ulwp_lock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
549
ulwp = *ulwpp;
usr/src/lib/libc/port/threads/thr.c
552
if (ulwp && ulwp->ul_dead) {
usr/src/lib/libc/port/threads/thr.c
553
ulwp_unlock(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
554
ulwp = NULL;
usr/src/lib/libc/port/threads/thr.c
557
return (ulwp);
usr/src/lib/libc/port/threads/thr.c
570
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
587
if ((ulwp = find_stack(stksize, guardsize)) == NULL)
usr/src/lib/libc/port/threads/thr.c
589
stksize = ulwp->ul_mapsiz - ulwp->ul_guardsize;
usr/src/lib/libc/port/threads/thr.c
592
if ((ulwp = ulwp_alloc()) == NULL)
usr/src/lib/libc/port/threads/thr.c
594
ulwp->ul_stk = stk;
usr/src/lib/libc/port/threads/thr.c
595
ulwp->ul_stktop = (uintptr_t)stk + stksize;
usr/src/lib/libc/port/threads/thr.c
596
ulwp->ul_stksiz = stksize;
usr/src/lib/libc/port/threads/thr.c
599
ulwp->ul_ix = -1;
usr/src/lib/libc/port/threads/thr.c
600
ulwp->ul_errnop = &ulwp->ul_errno;
usr/src/lib/libc/port/threads/thr.c
614
ulwp->ul_queue_fifo = self->ul_queue_fifo;
usr/src/lib/libc/port/threads/thr.c
615
ulwp->ul_cond_wait_defer = self->ul_cond_wait_defer;
usr/src/lib/libc/port/threads/thr.c
616
ulwp->ul_error_detection = self->ul_error_detection;
usr/src/lib/libc/port/threads/thr.c
617
ulwp->ul_async_safe = self->ul_async_safe;
usr/src/lib/libc/port/threads/thr.c
618
ulwp->ul_max_spinners = self->ul_max_spinners;
usr/src/lib/libc/port/threads/thr.c
619
ulwp->ul_adaptive_spin = self->ul_adaptive_spin;
usr/src/lib/libc/port/threads/thr.c
620
ulwp->ul_queue_spin = self->ul_queue_spin;
usr/src/lib/libc/port/threads/thr.c
621
ulwp->ul_door_noreserve = self->ul_door_noreserve;
usr/src/lib/libc/port/threads/thr.c
622
ulwp->ul_misaligned = self->ul_misaligned;
usr/src/lib/libc/port/threads/thr.c
625
ulwp->ul_policy = self->ul_policy;
usr/src/lib/libc/port/threads/thr.c
626
ulwp->ul_pri = (self->ul_epri? self->ul_epri : self->ul_pri);
usr/src/lib/libc/port/threads/thr.c
627
ulwp->ul_cid = self->ul_cid;
usr/src/lib/libc/port/threads/thr.c
628
ulwp->ul_rtclassid = self->ul_rtclassid;
usr/src/lib/libc/port/threads/thr.c
630
ulwp->ul_primarymap = self->ul_primarymap;
usr/src/lib/libc/port/threads/thr.c
631
ulwp->ul_self = ulwp;
usr/src/lib/libc/port/threads/thr.c
632
ulwp->ul_uberdata = udp;
usr/src/lib/libc/port/threads/thr.c
635
ulwp->ul_usropts = flags;
usr/src/lib/libc/port/threads/thr.c
644
ulwp->ul_dsave = 0x9de04000; /* save %g1, %g0, %sp */
usr/src/lib/libc/port/threads/thr.c
645
ulwp->ul_drestore = 0x81e80000; /* restore %g0, %g0, %g0 */
usr/src/lib/libc/port/threads/thr.c
646
ulwp->ul_dftret = 0x91d0203a; /* ta 0x3a */
usr/src/lib/libc/port/threads/thr.c
647
ulwp->ul_dreturn = 0x81ca0000; /* return %o0 */
usr/src/lib/libc/port/threads/thr.c
650
ulwp->ul_startpc = func;
usr/src/lib/libc/port/threads/thr.c
651
ulwp->ul_startarg = arg;
usr/src/lib/libc/port/threads/thr.c
652
_fpinherit(ulwp);
usr/src/lib/libc/port/threads/thr.c
658
ulwp->ul_sigdefer = 1;
usr/src/lib/libc/port/threads/thr.c
660
error = setup_context(&uc, _thrp_setup, ulwp,
usr/src/lib/libc/port/threads/thr.c
661
(caddr_t)ulwp->ul_stk + ulwp->ul_guardsize, stksize);
usr/src/lib/libc/port/threads/thr.c
672
uc.uc_sigmask = ulwp->ul_sigmask = self->ul_sigmask;
usr/src/lib/libc/port/threads/thr.c
676
ulwp->ul_lwpid = (lwpid_t)(-1);
usr/src/lib/libc/port/threads/thr.c
677
ulwp->ul_dead = 1;
usr/src/lib/libc/port/threads/thr.c
678
ulwp->ul_detached = 1;
usr/src/lib/libc/port/threads/thr.c
680
ulwp_free(ulwp);
usr/src/lib/libc/port/threads/thr.c
689
ulwp->ul_detached = 1;
usr/src/lib/libc/port/threads/thr.c
690
ulwp->ul_lwpid = tid;
usr/src/lib/libc/port/threads/thr.c
691
ulwp->ul_stop = TSTP_REGULAR;
usr/src/lib/libc/port/threads/thr.c
693
ulwp->ul_created = 1;
usr/src/lib/libc/port/threads/thr.c
696
ulwp->ul_forw = udp->all_lwps;
usr/src/lib/libc/port/threads/thr.c
697
ulwp->ul_back = udp->all_lwps->ul_back;
usr/src/lib/libc/port/threads/thr.c
698
ulwp->ul_back->ul_forw = ulwp;
usr/src/lib/libc/port/threads/thr.c
699
ulwp->ul_forw->ul_back = ulwp;
usr/src/lib/libc/port/threads/thr.c
700
hash_in(ulwp, udp);
usr/src/lib/libc/port/threads/thr.c
902
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/thr.c
906
if ((ulwp = udp->all_lwps) != NULL) {
usr/src/lib/libc/port/threads/thr.c
908
record_spin_locks(ulwp);
usr/src/lib/libc/port/threads/thr.c
909
} while ((ulwp = ulwp->ul_forw) != udp->all_lwps);
usr/src/lib/libc/port/threads/thr.c
995
ulwp_t *ulwp;
usr/src/lib/libc/port/threads/tls.c
433
tls_free(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/tls.c
441
if ((tlsent = ulwp->ul_tlsent) == NULL ||
usr/src/lib/libc/port/threads/tls.c
442
(ntlsent = ulwp->ul_ntlsent) == 0)
usr/src/lib/libc/port/threads/tls.c
452
lfree(ulwp->ul_tlsent, ntlsent * sizeof (tls_t));
usr/src/lib/libc/port/threads/tls.c
453
ulwp->ul_tlsent = NULL;
usr/src/lib/libc/port/threads/tls.c
454
ulwp->ul_ntlsent = 0;
usr/src/lib/libc/port/threads/tsd.c
442
tsd_free(ulwp_t *ulwp)
usr/src/lib/libc/port/threads/tsd.c
448
if ((stsd = ulwp->ul_stsd) != NULL)
usr/src/lib/libc/port/threads/tsd.c
450
ulwp->ul_stsd = NULL;
usr/src/lib/libc/sparc/threads/machdep.c
119
_fpinherit(ulwp_t *ulwp)
usr/src/lib/libc/sparc/threads/machdep.c
133
_getfsr(&ulwp->ul_fpuenv.fsr);
usr/src/lib/libc/sparc/threads/machdep.c
134
ulwp->ul_fpuenv.fpu_en = 1;
usr/src/lib/libc/sparc/threads/machdep.c
136
ulwp->ul_fpuenv.fpu_en = 0;
usr/src/lib/libc/sparc/threads/machdep.c
141
getgregs(ulwp_t *ulwp, gregset_t rs)
usr/src/lib/libc/sparc/threads/machdep.c
145
if (getlwpstatus(ulwp->ul_lwpid, &status) == 0) {
usr/src/lib/libc/sparc/threads/machdep.c
165
setgregs(ulwp_t *ulwp, gregset_t rs)
usr/src/lib/libc/sparc/threads/machdep.c
169
if (getlwpstatus(ulwp->ul_lwpid, &status) == 0) {
usr/src/lib/libc/sparc/threads/machdep.c
177
(void) putlwpregs(ulwp->ul_lwpid, status.pr_reg);
usr/src/lib/libc/sparc/threads/machdep.c
38
setup_top_frame(void *stk, size_t stksize, ulwp_t *ulwp)
usr/src/lib/libc/sparc/threads/machdep.c
64
ulwp_t *ulwp, caddr_t stk, size_t stksize)
usr/src/lib/libc/sparc/threads/machdep.c
75
stack = (uintptr_t)setup_top_frame(stk, stksize, ulwp);
usr/src/lib/libc/sparc/threads/machdep.c
83
ucp->uc_mcontext.gregs[REG_O0] = (greg_t)ulwp;
usr/src/lib/libc/sparc/threads/machdep.c
86
ucp->uc_mcontext.gregs[REG_G7] = (greg_t)ulwp;
usr/src/lib/libc_db/common/thread_db.c
1013
ulwp_t ulwp;
usr/src/lib/libc_db/common/thread_db.c
1016
&ulwp, sizeof (ulwp)) != PS_OK &&
usr/src/lib/libc_db/common/thread_db.c
1017
((void) memset(&ulwp, 0, sizeof (ulwp)),
usr/src/lib/libc_db/common/thread_db.c
1019
&ulwp, REPLACEMENT_SIZE)) != PS_OK) {
usr/src/lib/libc_db/common/thread_db.c
1023
next_lwp_addr = (psaddr_t)ulwp.ul_forw;
usr/src/lib/libc_db/common/thread_db.c
1025
ts_state = ulwp.ul_dead? TD_THR_ZOMBIE :
usr/src/lib/libc_db/common/thread_db.c
1026
ulwp.ul_stop? TD_THR_STOPPED :
usr/src/lib/libc_db/common/thread_db.c
1027
ulwp.ul_wchan? TD_THR_SLEEP :
usr/src/lib/libc_db/common/thread_db.c
1029
userpri = ulwp.ul_pri;
usr/src/lib/libc_db/common/thread_db.c
1030
userflags = ulwp.ul_usropts;
usr/src/lib/libc_db/common/thread_db.c
1031
if (ulwp.ul_dead)
usr/src/lib/libc_db/common/thread_db.c
1034
mask = *(sigset_t *)&ulwp.ul_sigmask;
usr/src/lib/libc_db/common/thread_db.c
1037
ulwp32_t ulwp;
usr/src/lib/libc_db/common/thread_db.c
1040
&ulwp, sizeof (ulwp)) != PS_OK &&
usr/src/lib/libc_db/common/thread_db.c
1041
((void) memset(&ulwp, 0, sizeof (ulwp)),
usr/src/lib/libc_db/common/thread_db.c
1043
&ulwp, REPLACEMENT_SIZE32)) != PS_OK) {
usr/src/lib/libc_db/common/thread_db.c
1047
next_lwp_addr = (psaddr_t)ulwp.ul_forw;
usr/src/lib/libc_db/common/thread_db.c
1049
ts_state = ulwp.ul_dead? TD_THR_ZOMBIE :
usr/src/lib/libc_db/common/thread_db.c
1050
ulwp.ul_stop? TD_THR_STOPPED :
usr/src/lib/libc_db/common/thread_db.c
1051
ulwp.ul_wchan? TD_THR_SLEEP :
usr/src/lib/libc_db/common/thread_db.c
1053
userpri = ulwp.ul_pri;
usr/src/lib/libc_db/common/thread_db.c
1054
userflags = ulwp.ul_usropts;
usr/src/lib/libc_db/common/thread_db.c
1055
if (ulwp.ul_dead)
usr/src/lib/libc_db/common/thread_db.c
1058
mask = *(sigset_t *)&ulwp.ul_sigmask;
usr/src/lib/libc_db/common/thread_db.c
1303
ulwp_t *ulwp, td_thrinfo_t *ti_p)
usr/src/lib/libc_db/common/thread_db.c
1307
if ((lwpid = ulwp->ul_lwpid) == 0)
usr/src/lib/libc_db/common/thread_db.c
1311
ti_p->ti_user_flags = ulwp->ul_usropts;
usr/src/lib/libc_db/common/thread_db.c
1313
ti_p->ti_exitval = ulwp->ul_rval;
usr/src/lib/libc_db/common/thread_db.c
1314
ti_p->ti_startfunc = (psaddr_t)ulwp->ul_startpc;
usr/src/lib/libc_db/common/thread_db.c
1315
if (!ulwp->ul_dead) {
usr/src/lib/libc_db/common/thread_db.c
1319
ti_p->ti_stkbase = (psaddr_t)ulwp->ul_stktop;
usr/src/lib/libc_db/common/thread_db.c
1320
ti_p->ti_stksize = ulwp->ul_stksiz;
usr/src/lib/libc_db/common/thread_db.c
1323
ti_p->ti_ro_size = ulwp->ul_replace?
usr/src/lib/libc_db/common/thread_db.c
1325
ti_p->ti_state = ulwp->ul_dead? TD_THR_ZOMBIE :
usr/src/lib/libc_db/common/thread_db.c
1326
ulwp->ul_stop? TD_THR_STOPPED :
usr/src/lib/libc_db/common/thread_db.c
1327
ulwp->ul_wchan? TD_THR_SLEEP :
usr/src/lib/libc_db/common/thread_db.c
1331
ti_p->ti_sp = ulwp->ul_sp;
usr/src/lib/libc_db/common/thread_db.c
1333
ti_p->ti_pri = ulwp->ul_pri;
usr/src/lib/libc_db/common/thread_db.c
1335
if (!ulwp->ul_dead)
usr/src/lib/libc_db/common/thread_db.c
1336
ti_p->ti_sigmask = ulwp->ul_sigmask;
usr/src/lib/libc_db/common/thread_db.c
1341
ti_p->ti_events = ulwp->ul_td_evbuf.eventmask;
usr/src/lib/libc_db/common/thread_db.c
1347
ulwp32_t *ulwp, td_thrinfo_t *ti_p)
usr/src/lib/libc_db/common/thread_db.c
1351
if ((lwpid = ulwp->ul_lwpid) == 0)
usr/src/lib/libc_db/common/thread_db.c
1355
ti_p->ti_user_flags = ulwp->ul_usropts;
usr/src/lib/libc_db/common/thread_db.c
1357
ti_p->ti_exitval = (void *)(uintptr_t)ulwp->ul_rval;
usr/src/lib/libc_db/common/thread_db.c
1358
ti_p->ti_startfunc = (psaddr_t)ulwp->ul_startpc;
usr/src/lib/libc_db/common/thread_db.c
1359
if (!ulwp->ul_dead) {
usr/src/lib/libc_db/common/thread_db.c
1363
ti_p->ti_stkbase = (psaddr_t)ulwp->ul_stktop;
usr/src/lib/libc_db/common/thread_db.c
1364
ti_p->ti_stksize = ulwp->ul_stksiz;
usr/src/lib/libc_db/common/thread_db.c
1367
ti_p->ti_ro_size = ulwp->ul_replace?
usr/src/lib/libc_db/common/thread_db.c
1369
ti_p->ti_state = ulwp->ul_dead? TD_THR_ZOMBIE :
usr/src/lib/libc_db/common/thread_db.c
1370
ulwp->ul_stop? TD_THR_STOPPED :
usr/src/lib/libc_db/common/thread_db.c
1371
ulwp->ul_wchan? TD_THR_SLEEP :
usr/src/lib/libc_db/common/thread_db.c
1375
ti_p->ti_sp = (uint32_t)ulwp->ul_sp;
usr/src/lib/libc_db/common/thread_db.c
1377
ti_p->ti_pri = ulwp->ul_pri;
usr/src/lib/libc_db/common/thread_db.c
1379
if (!ulwp->ul_dead)
usr/src/lib/libc_db/common/thread_db.c
1380
ti_p->ti_sigmask = *(sigset_t *)&ulwp->ul_sigmask;
usr/src/lib/libc_db/common/thread_db.c
1385
ti_p->ti_events = ulwp->ul_td_evbuf.eventmask;
usr/src/lib/libc_db/common/thread_db.c
1419
ulwp_t ulwp;
usr/src/lib/libc_db/common/thread_db.c
1421
if (ps_pdread(ph_p, psaddr, &ulwp, sizeof (ulwp)) != PS_OK &&
usr/src/lib/libc_db/common/thread_db.c
1422
((void) memset(&ulwp, 0, sizeof (ulwp)),
usr/src/lib/libc_db/common/thread_db.c
1423
ps_pdread(ph_p, psaddr, &ulwp, REPLACEMENT_SIZE)) != PS_OK)
usr/src/lib/libc_db/common/thread_db.c
1426
td_thr2to(ta_p, psaddr, &ulwp, ti_p);
usr/src/lib/libc_db/common/thread_db.c
1429
ulwp32_t ulwp;
usr/src/lib/libc_db/common/thread_db.c
1431
if (ps_pdread(ph_p, psaddr, &ulwp, sizeof (ulwp)) != PS_OK &&
usr/src/lib/libc_db/common/thread_db.c
1432
((void) memset(&ulwp, 0, sizeof (ulwp)),
usr/src/lib/libc_db/common/thread_db.c
1433
ps_pdread(ph_p, psaddr, &ulwp, REPLACEMENT_SIZE32)) !=
usr/src/lib/libc_db/common/thread_db.c
1437
td_thr2to32(ta_p, psaddr, &ulwp, ti_p);
usr/src/lib/libc_db/common/thread_db.c
1510
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
1511
psaddr_evset = (psaddr_t)&ulwp->ul_td_evbuf.eventmask;
usr/src/lib/libc_db/common/thread_db.c
1512
psaddr_enab = (psaddr_t)&ulwp->ul_td_events_enable;
usr/src/lib/libc_db/common/thread_db.c
1515
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
1516
psaddr_evset = (psaddr_t)&ulwp->ul_td_evbuf.eventmask;
usr/src/lib/libc_db/common/thread_db.c
1517
psaddr_enab = (psaddr_t)&ulwp->ul_td_events_enable;
usr/src/lib/libc_db/common/thread_db.c
1678
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
1681
psaddr = (psaddr_t)&ulwp->ul_td_evbuf;
usr/src/lib/libc_db/common/thread_db.c
1699
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
1702
psaddr = (psaddr_t)&ulwp->ul_td_evbuf;
usr/src/lib/libc_db/common/thread_db.c
1797
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
1799
if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_lwpid,
usr/src/lib/libc_db/common/thread_db.c
1806
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
1808
if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_lwpid,
usr/src/lib/libc_db/common/thread_db.c
2157
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2165
else if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_stsd,
usr/src/lib/libc_db/common/thread_db.c
2176
tsd_paddr = (psaddr_t)&ulwp->ul_ftsd[0];
usr/src/lib/libc_db/common/thread_db.c
2180
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2189
else if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_stsd,
usr/src/lib/libc_db/common/thread_db.c
2200
tsd_paddr = (psaddr_t)&ulwp->ul_ftsd[0];
usr/src/lib/libc_db/common/thread_db.c
2271
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2290
*base = (psaddr_t)ulwp - tlsmod.tm_stattlsoffset;
usr/src/lib/libc_db/common/thread_db.c
2291
else if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_tls,
usr/src/lib/libc_db/common/thread_db.c
2306
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2325
*base = (psaddr_t)ulwp - tlsmod.tm_stattlsoffset;
usr/src/lib/libc_db/common/thread_db.c
2326
else if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_tls,
usr/src/lib/libc_db/common/thread_db.c
2446
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2448
if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_wchan,
usr/src/lib/libc_db/common/thread_db.c
2453
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2456
if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_wchan,
usr/src/lib/libc_db/common/thread_db.c
2997
ulwp_t *ulwp = (ulwp_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
2999
if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_wchan,
usr/src/lib/libc_db/common/thread_db.c
3006
ulwp32_t *ulwp = (ulwp32_t *)th_p->th_unique;
usr/src/lib/libc_db/common/thread_db.c
3009
if (ps_pdread(ph_p, (psaddr_t)&ulwp->ul_wchan,