Lines Matching refs:irb
264 * the ire and irb as CONDEMNED. When the
283 irb_refhold(irb_t *irb)
285 rw_enter(&irb->irb_lock, RW_WRITER);
286 irb->irb_refcnt++;
287 ASSERT(irb->irb_refcnt != 0);
288 rw_exit(&irb->irb_lock);
292 irb_refhold_locked(irb_t *irb)
294 ASSERT(RW_WRITE_HELD(&irb->irb_lock));
295 irb->irb_refcnt++;
296 ASSERT(irb->irb_refcnt != 0);
305 irb_refrele(irb_t *irb)
307 if (irb->irb_marks & IRB_MARK_DYNAMIC) {
308 irb_refrele_ftable(irb);
310 rw_enter(&irb->irb_lock, RW_WRITER);
311 ASSERT(irb->irb_refcnt != 0);
312 if (--irb->irb_refcnt == 0 &&
313 (irb->irb_marks & IRB_MARK_CONDEMNED)) {
316 ire_list = ire_unlink(irb);
317 rw_exit(&irb->irb_lock);
321 rw_exit(&irb->irb_lock);
982 irb_t *irb;
988 irb = &rt->rt_irb;
989 for (ire = irb->irb_ire; ire != NULL; ire = ire->ire_next) {
1014 irb_t *irb;
1029 irb = &irb_ptr[j];
1030 if (irb->irb_ire == NULL)
1033 irb_refhold(irb);
1034 for (ire = irb->irb_ire; ire != NULL;
1049 irb_refrele(irb);
1403 ire_unlink(irb_t *irb)
1410 ASSERT(RW_WRITE_HELD(&irb->irb_lock));
1411 ASSERT(((irb->irb_marks & IRB_MARK_DYNAMIC) && irb->irb_refcnt == 1) ||
1412 (irb->irb_refcnt == 0));
1413 ASSERT(irb->irb_marks & IRB_MARK_CONDEMNED);
1414 ASSERT(irb->irb_ire != NULL);
1416 for (ire = irb->irb_ire; ire != NULL; ire = ire1) {
1442 irb->irb_marks &= ~IRB_MARK_CONDEMNED;
1452 irb_inactive(irb_t *irb)
1456 ip_stack_t *ipst = irb->irb_ipst;
1458 ASSERT(irb->irb_ipst != NULL);
1460 rt = IRB2RT(irb);
1465 rw_enter(&irb->irb_lock, RW_WRITER);
1466 if (irb->irb_refcnt == 1 && irb->irb_nire == 0) {
1476 rw_exit(&irb->irb_lock);
1492 irb_t *irb;
1495 if ((irb = ire->ire_bucket) == NULL) {
1523 rw_enter(&irb->irb_lock, RW_WRITER);
1529 rw_exit(&irb->irb_lock);
1538 rw_exit(&irb->irb_lock);
1542 irb->irb_ire_cnt--;
1546 if (irb->irb_refcnt != 0) {
1551 irb->irb_marks |= IRB_MARK_CONDEMNED;
1552 rw_exit(&irb->irb_lock);
1578 rw_exit(&irb->irb_lock);
1645 irb_t *irb;
1685 irb = ire->ire_bucket;
1687 if (irb != NULL && ill != NULL) {
1703 if (irb != NULL && (irb->irb_marks & IRB_MARK_DYNAMIC)) {
1704 rw_enter(&irb->irb_lock, RW_WRITER);
1705 irb->irb_nire--;
1713 irb_refhold_locked(irb);
1714 rw_exit(&irb->irb_lock);
1715 irb_refrele(irb);
1754 irb_increment_generation(irb_t *irb)
1759 if (irb == NULL || irb->irb_ire_cnt == 0)
1762 ipst = irb->irb_ipst;
1774 rw_enter(&irb->irb_lock, RW_WRITER);
1775 for (ire = irb->irb_ire; ire != NULL; ire = ire->ire_next) {
1780 rw_exit(&irb->irb_lock);
1795 irb_t *irb = ire->ire_bucket;
1796 struct rt_entry *rt = IRB2RT(irb);
2091 irb_t *irb;
2097 irb = &rt->rt_irb;
2099 if (irb->irb_ire_cnt == 0)
2102 rw_enter(&irb->irb_lock, RW_READER);
2103 for (ire = irb->irb_ire; ire != NULL; ire = ire->ire_next) {
2121 rw_exit(&irb->irb_lock);
2124 rw_exit(&irb->irb_lock);