Symbol: upimutex
usr/src/lib/libfakekernel/common/sys/thread.h
66
struct upimutex;
usr/src/uts/common/sys/lwp_upimutex_impl.h
37
typedef struct upimutex upimutex_t;
usr/src/uts/common/sys/thread.h
107
struct upimutex;
usr/src/uts/common/sys/thread.h
299
struct upimutex *t_upimutex; /* list of upimutexes owned by thread */
usr/src/uts/common/syscall/lwp_sobj.c
1000
if (upimutex == NULL || upimutex->upi_owner != curthread) {
usr/src/uts/common/syscall/lwp_sobj.c
1017
upimutex_unlock((upimutex_t *)upimutex, flag);
usr/src/uts/common/syscall/lwp_sobj.c
1108
struct upimutex *upip;
usr/src/uts/common/syscall/lwp_sobj.c
2884
volatile struct upimutex *upimutex = NULL;
usr/src/uts/common/syscall/lwp_sobj.c
2897
upimutex_unlock((upimutex_t *)upimutex, 0);
usr/src/uts/common/syscall/lwp_sobj.c
2910
upimutex = upi_get(upibp, &lwpchan);
usr/src/uts/common/syscall/lwp_sobj.c
2911
if (upimutex == NULL || upimutex->upi_owner != curthread) {
usr/src/uts/common/syscall/lwp_sobj.c
2919
upimutex_unlock((upimutex_t *)upimutex, flag);
usr/src/uts/common/syscall/lwp_sobj.c
531
static struct upimutex *
usr/src/uts/common/syscall/lwp_sobj.c
534
struct upimutex *upip;
usr/src/uts/common/syscall/lwp_sobj.c
546
upi_chain_add(upib_t *upibp, struct upimutex *upimutex)
usr/src/uts/common/syscall/lwp_sobj.c
556
upimutex->upi_nextchain = upibp->upib_first;
usr/src/uts/common/syscall/lwp_sobj.c
557
upibp->upib_first = upimutex;
usr/src/uts/common/syscall/lwp_sobj.c
561
upi_chain_del(upib_t *upibp, struct upimutex *upimutex)
usr/src/uts/common/syscall/lwp_sobj.c
563
struct upimutex **prev;
usr/src/uts/common/syscall/lwp_sobj.c
568
while (*prev != upimutex) {
usr/src/uts/common/syscall/lwp_sobj.c
571
*prev = upimutex->upi_nextchain;
usr/src/uts/common/syscall/lwp_sobj.c
572
upimutex->upi_nextchain = NULL;
usr/src/uts/common/syscall/lwp_sobj.c
580
upi_mylist_add(struct upimutex *upimutex)
usr/src/uts/common/syscall/lwp_sobj.c
589
upimutex->upi_nextowned = t->t_upimutex;
usr/src/uts/common/syscall/lwp_sobj.c
590
t->t_upimutex = upimutex;
usr/src/uts/common/syscall/lwp_sobj.c
600
upi_mylist_del(struct upimutex *upimutex)
usr/src/uts/common/syscall/lwp_sobj.c
603
struct upimutex **prev;
usr/src/uts/common/syscall/lwp_sobj.c
611
while (*prev != upimutex) {
usr/src/uts/common/syscall/lwp_sobj.c
614
*prev = upimutex->upi_nextowned;
usr/src/uts/common/syscall/lwp_sobj.c
615
upimutex->upi_nextowned = NULL;
usr/src/uts/common/syscall/lwp_sobj.c
633
static struct upimutex *
usr/src/uts/common/syscall/lwp_sobj.c
638
struct upimutex *upimutex;
usr/src/uts/common/syscall/lwp_sobj.c
646
upimutex = upi_get(upibp, &lwpchan);
usr/src/uts/common/syscall/lwp_sobj.c
647
if (upimutex == NULL || upimutex->upi_owner != curthread) {
usr/src/uts/common/syscall/lwp_sobj.c
652
return (upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
660
upimutex_unlock(struct upimutex *upimutex, uint16_t flag)
usr/src/uts/common/syscall/lwp_sobj.c
666
upi_mylist_del(upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
667
upibp = upimutex->upi_upibp;
usr/src/uts/common/syscall/lwp_sobj.c
669
if (upimutex->upi_waiter != 0) { /* if waiters */
usr/src/uts/common/syscall/lwp_sobj.c
670
ts = turnstile_lookup(upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
674
upimutex->upi_owner = newowner;
usr/src/uts/common/syscall/lwp_sobj.c
676
upimutex->upi_waiter = 0;
usr/src/uts/common/syscall/lwp_sobj.c
690
turnstile_exit(upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
699
upi_chain_del(upimutex->upi_upibp, upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
701
kmem_free(upimutex, sizeof (upimutex_t));
usr/src/uts/common/syscall/lwp_sobj.c
712
volatile struct upimutex *upimutex = NULL;
usr/src/uts/common/syscall/lwp_sobj.c
719
upimutex_unlock((upimutex_t *)upimutex, 0);
usr/src/uts/common/syscall/lwp_sobj.c
731
upimutex = upi_get(upibp, &lwpchan);
usr/src/uts/common/syscall/lwp_sobj.c
732
if (upimutex == NULL) {
usr/src/uts/common/syscall/lwp_sobj.c
734
upimutex = kmem_zalloc(sizeof (upimutex_t), KM_SLEEP);
usr/src/uts/common/syscall/lwp_sobj.c
735
upi_chain_add(upibp, (upimutex_t *)upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
736
upimutex->upi_owner = curthread; /* grab lock */
usr/src/uts/common/syscall/lwp_sobj.c
737
upimutex->upi_upibp = upibp;
usr/src/uts/common/syscall/lwp_sobj.c
738
upimutex->upi_vaddr = lp;
usr/src/uts/common/syscall/lwp_sobj.c
739
upimutex->upi_lwpchan = lwpchan;
usr/src/uts/common/syscall/lwp_sobj.c
741
nupinest = upi_mylist_add((upimutex_t *)upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
746
upimutex_unlock((upimutex_t *)upimutex, flag);
usr/src/uts/common/syscall/lwp_sobj.c
759
upimutex_unlock((upimutex_t *)upimutex, flag);
usr/src/uts/common/syscall/lwp_sobj.c
777
ASSERT(upimutex->upi_owner != NULL);
usr/src/uts/common/syscall/lwp_sobj.c
778
if (upimutex->upi_owner == curthread) {
usr/src/uts/common/syscall/lwp_sobj.c
843
ts = turnstile_lookup((upimutex_t *)upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
844
upimutex->upi_waiter = 1;
usr/src/uts/common/syscall/lwp_sobj.c
845
error = turnstile_block(ts, TS_WRITER_Q, (upimutex_t *)upimutex,
usr/src/uts/common/syscall/lwp_sobj.c
858
(upimutex = lwp_upimutex_owned(lp, type))) {
usr/src/uts/common/syscall/lwp_sobj.c
863
(void) upi_mylist_add((upimutex_t *)upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
864
upimutex_unlock((upimutex_t *)upimutex, 0);
usr/src/uts/common/syscall/lwp_sobj.c
871
(error == EDEADLK && !upi_owned((upimutex_t *)upimutex)));
usr/src/uts/common/syscall/lwp_sobj.c
876
ASSERT(lwp_upimutex_owned(lp, type) == upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
877
nupinest = upi_mylist_add((upimutex_t *)upimutex);
usr/src/uts/common/syscall/lwp_sobj.c
910
upimutex_unlock((upimutex_t *)upimutex, flag);
usr/src/uts/common/syscall/lwp_sobj.c
978
volatile struct upimutex *upimutex = NULL;
usr/src/uts/common/syscall/lwp_sobj.c
983
upimutex_unlock((upimutex_t *)upimutex, 0);
usr/src/uts/common/syscall/lwp_sobj.c
994
upimutex = upi_get(upibp, &lwpchan);