Lines Matching refs:sh_obj

95 	DB_LOCKOBJ *sh_obj, *sh_locker, *sh_parent;  local
183 list[i].obj, sh_obj, lt->region->table_size,
185 if (sh_obj == NULL) {
195 for (lp = SH_TAILQ_FIRST(&sh_obj->waiters, __db_lock);
197 lp = SH_TAILQ_FIRST(&sh_obj->waiters, __db_lock)) {
199 __lock_remove_waiter(lt, sh_obj, lp,
204 for (lp = SH_TAILQ_FIRST(&sh_obj->holders, __db_lock);
206 lp = SH_TAILQ_FIRST(&sh_obj->holders, __db_lock)) {
210 SH_TAILQ_REMOVE(&sh_obj->holders, lp, links,
218 __lock_freeobj(lt, sh_obj);
374 DB_LOCKOBJ *sh_obj; local
394 sh_obj = (DB_LOCKOBJ *)((u_int8_t *)lockp + lockp->obj);
401 __lock_remove_waiter(lt, sh_obj, lockp, DB_LSTAT_FREE);
403 SH_TAILQ_REMOVE(&sh_obj->holders, lockp, links, __db_lock);
405 state_changed = __lock_promote(lt, sh_obj);
408 if (SH_TAILQ_FIRST(&sh_obj->holders, __db_lock) == NULL) {
410 links, sh_obj, lt->region->table_size, __lock_lhash);
411 if (sh_obj->lockobj.size > sizeof(sh_obj->objdata))
413 SH_DBT_PTR(&sh_obj->lockobj));
414 SH_TAILQ_INSERT_HEAD(&lt->region->free_objs, sh_obj, links,
443 DB_LOCKOBJ *sh_obj, *sh_locker; local
477 if ((ret = __lock_getobj(lt, 0, obj, DB_LOCK_OBJTYPE, &sh_obj)) != 0)
484 newl->obj = SH_PTR_TO_OFF(newl, sh_obj);
508 for (lp = SH_TAILQ_FIRST(&sh_obj->holders, __db_lock);
544 SH_TAILQ_INSERT_HEAD(&sh_obj->waiters, newl, links, __db_lock);
549 for (lp = SH_TAILQ_FIRST(&sh_obj->waiters, __db_lock);
557 SH_TAILQ_INSERT_TAIL(&sh_obj->holders, newl, links);
559 SH_TAILQ_INSERT_TAIL(&sh_obj->waiters, newl, links);
618 (void)__lock_promote(lt, sh_obj);
642 SH_TAILQ_REMOVE(&sh_obj->holders,
677 DB_LOCKOBJ *sh_obj; local
684 dbt, sh_obj, lrp->table_size, __lock_ohash, __lock_cmp);
685 if (sh_obj == NULL)
688 for (lp = SH_TAILQ_FIRST(&sh_obj->holders, __db_lock);
690 lp = SH_TAILQ_FIRST(&sh_obj->holders, __db_lock)) {
793 DB_LOCKOBJ *sh_obj; local
802 HASHLOOKUP(lt->hashtab, __db_lockobj, links, dbt, sh_obj,
807 sh_obj, lrp->table_size, __lock_locker_hash,
816 if (sh_obj == NULL) {
818 if ((sh_obj =
823 sh_obj = SH_TAILQ_FIRST(&lrp->free_objs, __db_lockobj);
830 if (obj_size <= sizeof(sh_obj->objdata))
831 p = sh_obj->objdata;
840 sh_obj = SH_TAILQ_FIRST(&lrp->free_objs,
848 sh_obj->type = type;
849 SH_TAILQ_REMOVE(&lrp->free_objs, sh_obj, links, __db_lockobj);
851 SH_TAILQ_INIT(&sh_obj->waiters);
853 SH_LIST_INIT(&sh_obj->heldby);
855 SH_TAILQ_INIT(&sh_obj->holders);
856 sh_obj->lockobj.size = obj_size;
857 sh_obj->lockobj.off = SH_PTR_TO_OFF(&sh_obj->lockobj, p);
860 __db_lockobj, links, sh_obj, lrp->table_size, __lock_lhash);
866 *objp = sh_obj;
878 __lock_remove_waiter(lt, sh_obj, lockp, status) in __lock_remove_waiter() argument
880 DB_LOCKOBJ *sh_obj;
884 SH_TAILQ_REMOVE(&sh_obj->waiters, lockp, links, __db_lock);