| 1787 | |
| 1788 | #ifdef DDB |
| 1789 | int |
| 1790 | lockmgr_chain(struct thread *td, struct thread **ownerp) |
| 1791 | { |
| 1792 | const struct lock *lk; |
| 1793 | |
| 1794 | lk = td->td_wchan; |
| 1795 | |
| 1796 | if (LOCK_CLASS(&lk->lock_object) != &lock_class_lockmgr) |
| 1797 | return (0); |
| 1798 | db_printf("blocked on lockmgr %s", lk->lock_object.lo_name); |
| 1799 | if (lk->lk_lock & LK_SHARE) |
| 1800 | db_printf("SHARED (count %ju)\n", |
| 1801 | (uintmax_t)LK_SHARERS(lk->lk_lock)); |
| 1802 | else |
| 1803 | db_printf("EXCL\n"); |
| 1804 | *ownerp = lockmgr_xholder(lk); |
| 1805 | |
| 1806 | return (1); |
| 1807 | } |
| 1808 | |
| 1809 | static void |
| 1810 | db_show_lockmgr(const struct lock_object *lock) |
no test coverage detected