Lines Matching defs:sobj
139 #define IS_UPI(sobj) \
140 ((uintptr_t)(sobj) - (uintptr_t)upimutextab < sizeof (upimutextab))
163 #define TURNSTILE_SOBJ_HASH(sobj) \
164 ((((ulong_t)sobj >> 2) + ((ulong_t)sobj >> 9)) & TURNSTILE_HASH_MASK)
165 #define TURNSTILE_SOBJ_BUCKET(sobj) \
166 ((IS_UPI(sobj) ? 0 : TURNSTILE_HASH_SIZE) + TURNSTILE_SOBJ_HASH(sobj))
167 #define TURNSTILE_CHAIN(sobj) turnstile_table[TURNSTILE_SOBJ_BUCKET(sobj)]
278 * Grab the lock protecting the hash chain for sobj
279 * and return the active turnstile for sobj, if any.
282 turnstile_lookup(void *sobj)
285 turnstile_chain_t *tc = &TURNSTILE_CHAIN(sobj);
290 if (ts->ts_sobj == sobj)
297 * Drop the lock protecting the hash chain for sobj.
300 turnstile_exit(void *sobj)
302 disp_lock_exit(&TURNSTILE_CHAIN(sobj).tc_lock);
394 * lock held when calling turnstile_block() with a SOBJ_USER_PI sobj; holding
406 turnstile_block(turnstile_t *ts, int qnum, void *sobj, sobj_ops_t *sobj_ops,
413 turnstile_chain_t *tc = &TURNSTILE_CHAIN(sobj);
425 * This is the first thread to block on this sobj.
429 ts->ts_sobj = sobj;
436 * to block on this sobj, so ours isn't needed.
443 ASSERT(ts->ts_sobj == sobj);
460 t->t_wchan = sobj;
483 SOBJ_OWNER(sobj_ops, sobj) == NULL)
564 * the SOBJ_USER_PI sobj), so we will spin waiting for mp to
785 * of threads blocked on a SOBJ_USER_PI sobj.
790 * 2. When the owner of an sobj releases it, but no turnstile is found (i.e.
804 * the owner runs at an unnecessarily high priority only while sobj is held,