Lines Matching refs:nip

43 	viona_neti_t *nip = link->l_neti;  in viona_hook()  local
44 viona_nethook_t *vnh = &nip->vni_nethook; in viona_hook()
303 viona_neti_t *nip; in viona_neti_create() local
307 nip = kmem_zalloc(sizeof (*nip), KM_SLEEP); in viona_neti_create()
308 nip->vni_netid = netid; in viona_neti_create()
309 nip->vni_zid = net_getzoneidbynetid(netid); in viona_neti_create()
310 mutex_init(&nip->vni_lock, NULL, MUTEX_DRIVER, NULL); in viona_neti_create()
311 list_create(&nip->vni_dev_list, sizeof (viona_soft_state_t), in viona_neti_create()
314 if (viona_nethook_init(netid, &nip->vni_nethook, Hn_VIONA, in viona_neti_create()
316 nip->vni_nethook.vnh_hooked = B_TRUE; in viona_neti_create()
319 list_insert_tail(&viona_neti_list, nip); in viona_neti_create()
322 return (nip); in viona_neti_create()
334 viona_neti_t *nip = arg; in viona_neti_shutdown() local
336 ASSERT(nip != NULL); in viona_neti_shutdown()
337 VERIFY(nid == nip->vni_netid); in viona_neti_shutdown()
340 list_remove(&viona_neti_list, nip); in viona_neti_shutdown()
343 if (nip->vni_nethook.vnh_hooked) in viona_neti_shutdown()
344 viona_nethook_shutdown(&nip->vni_nethook); in viona_neti_shutdown()
355 viona_neti_t *nip = arg; in viona_neti_destroy() local
357 ASSERT(nip != NULL); in viona_neti_destroy()
358 VERIFY(nid == nip->vni_netid); in viona_neti_destroy()
360 mutex_enter(&nip->vni_lock); in viona_neti_destroy()
361 while (nip->vni_ref != 0) in viona_neti_destroy()
362 cv_wait(&nip->vni_ref_change, &nip->vni_lock); in viona_neti_destroy()
363 mutex_exit(&nip->vni_lock); in viona_neti_destroy()
365 VERIFY(!list_link_active(&nip->vni_node)); in viona_neti_destroy()
367 if (nip->vni_nethook.vnh_hooked) in viona_neti_destroy()
368 viona_nethook_fini(&nip->vni_nethook); in viona_neti_destroy()
370 mutex_destroy(&nip->vni_lock); in viona_neti_destroy()
371 list_destroy(&nip->vni_dev_list); in viona_neti_destroy()
372 kmem_free(nip, sizeof (*nip)); in viona_neti_destroy()
382 viona_neti_t *nip; in viona_neti_lookup_by_zid() local
385 for (nip = list_head(&viona_neti_list); nip != NULL; in viona_neti_lookup_by_zid()
386 nip = list_next(&viona_neti_list, nip)) { in viona_neti_lookup_by_zid()
387 if (nip->vni_zid == zid) { in viona_neti_lookup_by_zid()
388 mutex_enter(&nip->vni_lock); in viona_neti_lookup_by_zid()
389 nip->vni_ref++; in viona_neti_lookup_by_zid()
390 mutex_exit(&nip->vni_lock); in viona_neti_lookup_by_zid()
392 return (nip); in viona_neti_lookup_by_zid()
400 viona_neti_rele(viona_neti_t *nip) in viona_neti_rele() argument
402 mutex_enter(&nip->vni_lock); in viona_neti_rele()
403 VERIFY3S(nip->vni_ref, >, 0); in viona_neti_rele()
404 nip->vni_ref--; in viona_neti_rele()
405 mutex_exit(&nip->vni_lock); in viona_neti_rele()
406 cv_broadcast(&nip->vni_ref_change); in viona_neti_rele()