Lines Matching refs:nts
100 neti_stack_t *nts; in neti_stack_init() local
102 nts = kmem_zalloc(sizeof (*nts), KM_SLEEP); in neti_stack_init()
103 LIST_INIT(&nts->nts_instances); in neti_stack_init()
104 nts->nts_id = (netid_t)stackid; in neti_stack_init()
105 nts->nts_stackid = stackid; in neti_stack_init()
106 nts->nts_netstack = ns; in neti_stack_init()
107 nts->nts_zoneid = netstackid_to_zoneid(stackid); in neti_stack_init()
108 nts->nts_flags = NSF_ZONE_CREATE; in neti_stack_init()
109 cv_init(&nts->nts_cv, NULL, CV_DRIVER, NULL); in neti_stack_init()
110 mutex_init(&nts->nts_lock, NULL, MUTEX_DRIVER, NULL); in neti_stack_init()
113 LIST_INSERT_HEAD(&neti_stack_list, nts, nts_next); in neti_stack_init()
123 mutex_enter(&nts->nts_lock); in neti_stack_init()
124 LIST_INSERT_HEAD(&nts->nts_instances, dup, nini_next); in neti_stack_init()
125 mutex_exit(&nts->nts_lock); in neti_stack_init()
128 neti_apply_all_instances(nts, neti_stack_apply_create); in neti_stack_init()
130 mutex_enter(&nts->nts_lock); in neti_stack_init()
131 nts->nts_flags &= ~NSF_ZONE_CREATE; in neti_stack_init()
132 mutex_exit(&nts->nts_lock); in neti_stack_init()
136 return (nts); in neti_stack_init()
146 neti_stack_t *nts = arg; in neti_stack_shutdown() local
150 ASSERT(nts != NULL); in neti_stack_shutdown()
153 mutex_enter(&nts->nts_lock); in neti_stack_shutdown()
158 LIST_FOREACH(nd, &nts->nts_netd_head, netd_list) { in neti_stack_shutdown()
166 LIST_FOREACH(n, &nts->nts_instances, nini_next) { in neti_stack_shutdown()
185 nts->nts_flags |= NSF_ZONE_SHUTDOWN; in neti_stack_shutdown()
186 mutex_exit(&nts->nts_lock); in neti_stack_shutdown()
188 neti_apply_all_instances(nts, neti_stack_apply_shutdown); in neti_stack_shutdown()
190 mutex_enter(&nts->nts_lock); in neti_stack_shutdown()
192 nts->nts_netstack = NULL; in neti_stack_shutdown()
193 nts->nts_flags &= ~NSF_ZONE_SHUTDOWN; in neti_stack_shutdown()
194 mutex_exit(&nts->nts_lock); in neti_stack_shutdown()
197 ASSERT(nts != NULL); in neti_stack_shutdown()
214 neti_stack_t *nts = arg; in neti_stack_fini() local
219 mutex_enter(&nts->nts_lock); in neti_stack_fini()
221 LIST_REMOVE(nts, nts_next); in neti_stack_fini()
227 LIST_FOREACH(nd, &nts->nts_netd_head, netd_list) { in neti_stack_fini()
231 LIST_FOREACH(n, &nts->nts_instances, nini_next) { in neti_stack_fini()
236 mutex_exit(&nts->nts_lock); in neti_stack_fini()
238 neti_apply_all_instances(nts, neti_stack_apply_destroy); in neti_stack_fini()
240 while (!LIST_EMPTY(&nts->nts_instances)) { in neti_stack_fini()
241 n = LIST_FIRST(&nts->nts_instances); in neti_stack_fini()
248 ASSERT(LIST_EMPTY(&nts->nts_netd_head)); in neti_stack_fini()
250 mutex_destroy(&nts->nts_lock); in neti_stack_fini()
251 cv_destroy(&nts->nts_cv); in neti_stack_fini()
253 kmem_free(nts, sizeof (*nts)); in neti_stack_fini()
349 neti_stack_t *nts; in net_instance_register() local
375 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_instance_register()
376 mutex_enter(&nts->nts_lock); in net_instance_register()
381 if ((nts->nts_flags & NSF_ZONE_SHUTDOWN) || in net_instance_register()
382 (nts->nts_netstack == NULL)) { in net_instance_register()
383 mutex_exit(&nts->nts_lock); in net_instance_register()
394 LIST_INSERT_HEAD(&nts->nts_instances, tmp, nini_next); in net_instance_register()
395 mutex_exit(&nts->nts_lock); in net_instance_register()
417 neti_stack_t *nts; in net_instance_unregister() local
434 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_instance_unregister()
435 mutex_enter(&nts->nts_lock); in net_instance_unregister()
436 LIST_FOREACH(tmp, &nts->nts_instances, nini_next) { in net_instance_unregister()
463 mutex_exit(&nts->nts_lock); in net_instance_unregister()
479 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_instance_unregister()
480 mutex_enter(&nts->nts_lock); in net_instance_unregister()
481 LIST_FOREACH(tmp, &nts->nts_instances, nini_next) { in net_instance_unregister()
497 mutex_exit(&nts->nts_lock); in net_instance_unregister()
506 neti_apply_all_instances(neti_stack_t *nts, napplyfn_t *applyfn) in neti_apply_all_instances() argument
512 n = LIST_FIRST(&nts->nts_instances); in neti_apply_all_instances()
514 if ((applyfn)(nts, n->nini_parent)) { in neti_apply_all_instances()
516 n = LIST_FIRST(&nts->nts_instances); in neti_apply_all_instances()
526 neti_stack_t *nts; in neti_apply_all_stacks() local
530 nts = LIST_FIRST(&neti_stack_list); in neti_apply_all_stacks()
531 while (nts != NULL) { in neti_apply_all_stacks()
539 if ((applyfn)(nts, parent)) { in neti_apply_all_stacks()
541 nts = LIST_FIRST(&neti_stack_list); in neti_apply_all_stacks()
543 nts = LIST_NEXT(nts, nts_next); in neti_apply_all_stacks()
549 neti_stack_apply_create(neti_stack_t *nts, void *parent) in neti_stack_apply_create() argument
559 mutex_enter(&nts->nts_lock); in neti_stack_apply_create()
561 LIST_FOREACH(tmp, &nts->nts_instances, nini_next) { in neti_stack_apply_create()
566 mutex_exit(&nts->nts_lock); in neti_stack_apply_create()
572 if (wait_for_nini_inprogress(nts, tmp, 0)) in neti_stack_apply_create()
580 neti_stack_t *, nts, net_instance_int_t *, tmp); in neti_stack_apply_create()
581 mutex_exit(&nts->nts_lock); in neti_stack_apply_create()
588 netstackid_t, nts->nts_id, in neti_stack_apply_create()
589 neti_stack_t *, nts); in neti_stack_apply_create()
590 result = (nin->nin_create)(nts->nts_id); in neti_stack_apply_create()
592 void *, result, neti_stack_t *, nts); in neti_stack_apply_create()
596 mutex_enter(&nts->nts_lock); in neti_stack_apply_create()
602 neti_stack_t *, nts, net_instance_int_t *, tmp); in neti_stack_apply_create()
610 mutex_exit(&nts->nts_lock); in neti_stack_apply_create()
616 neti_stack_apply_shutdown(neti_stack_t *nts, void *parent) in neti_stack_apply_shutdown() argument
625 mutex_enter(&nts->nts_lock); in neti_stack_apply_shutdown()
627 LIST_FOREACH(tmp, &nts->nts_instances, nini_next) { in neti_stack_apply_shutdown()
632 mutex_exit(&nts->nts_lock); in neti_stack_apply_shutdown()
639 if (wait_for_nini_inprogress(nts, tmp, NSS_CREATE_NEEDED)) in neti_stack_apply_shutdown()
658 mutex_exit(&nts->nts_lock); in neti_stack_apply_shutdown()
667 neti_stack_t *, nts, net_instance_int_t *, tmp); in neti_stack_apply_shutdown()
668 mutex_exit(&nts->nts_lock); in neti_stack_apply_shutdown()
674 netstackid_t, nts->nts_id, in neti_stack_apply_shutdown()
675 neti_stack_t *, nts); in neti_stack_apply_shutdown()
676 (nin->nin_shutdown)(nts->nts_id, tmp->nini_created); in neti_stack_apply_shutdown()
678 neti_stack_t *, nts); in neti_stack_apply_shutdown()
681 mutex_enter(&nts->nts_lock); in neti_stack_apply_shutdown()
686 neti_stack_t *, nts, net_instance_int_t *, tmp); in neti_stack_apply_shutdown()
695 mutex_exit(&nts->nts_lock); in neti_stack_apply_shutdown()
700 neti_stack_apply_destroy(neti_stack_t *nts, void *parent) in neti_stack_apply_destroy() argument
709 mutex_enter(&nts->nts_lock); in neti_stack_apply_destroy()
711 LIST_FOREACH(tmp, &nts->nts_instances, nini_next) { in neti_stack_apply_destroy()
716 mutex_exit(&nts->nts_lock); in neti_stack_apply_destroy()
726 if (wait_for_nini_inprogress(nts, tmp, in neti_stack_apply_destroy()
736 neti_stack_t *, nts, net_instance_int_t *, tmp); in neti_stack_apply_destroy()
737 mutex_exit(&nts->nts_lock); in neti_stack_apply_destroy()
743 netstackid_t, nts->nts_id, in neti_stack_apply_destroy()
744 neti_stack_t *, nts); in neti_stack_apply_destroy()
745 (nin->nin_destroy)(nts->nts_id, tmp->nini_created); in neti_stack_apply_destroy()
747 neti_stack_t *, nts); in neti_stack_apply_destroy()
750 mutex_enter(&nts->nts_lock); in neti_stack_apply_destroy()
755 neti_stack_t *, nts, net_instance_int_t *, tmp); in neti_stack_apply_destroy()
763 mutex_exit(&nts->nts_lock); in neti_stack_apply_destroy()
768 wait_for_nini_inprogress(neti_stack_t *nts, net_instance_int_t *nini, in wait_for_nini_inprogress() argument
777 neti_stack_t *, nts, net_instance_int_t *, nini); in wait_for_nini_inprogress()
781 cv_wait(&nini->nini_cv, &nts->nts_lock); in wait_for_nini_inprogress()
784 mutex_exit(&nts->nts_lock); in wait_for_nini_inprogress()
786 neti_stack_t *, nts, net_instance_int_t *, nini); in wait_for_nini_inprogress()
788 mutex_enter(&nts->nts_lock); in wait_for_nini_inprogress()
791 neti_stack_t *, nts, net_instance_int_t *, nini); in wait_for_nini_inprogress()
801 neti_stack_t *nts; in net_zoneidtonetid() local
804 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_zoneidtonetid()
805 if (nts->nts_zoneid == zoneid) { in net_zoneidtonetid()
807 return (nts->nts_id); in net_zoneidtonetid()
818 neti_stack_t *nts; in net_getzoneidbynetid() local
821 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_getzoneidbynetid()
822 if (nts->nts_id == netid) { in net_getzoneidbynetid()
824 return (nts->nts_zoneid); in net_getzoneidbynetid()
835 neti_stack_t *nts; in net_getnetstackidbynetid() local
838 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_getnetstackidbynetid()
839 if (nts->nts_id == netid) { in net_getnetstackidbynetid()
841 return (nts->nts_stackid); in net_getnetstackidbynetid()
852 neti_stack_t *nts; in net_getnetidbynetstackid() local
855 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_getnetidbynetstackid()
856 if (nts->nts_stackid == netstackid) { in net_getnetidbynetstackid()
858 return (nts->nts_id); in net_getnetidbynetstackid()
869 neti_stack_t *nts; in net_getnetistackbyid() local
872 LIST_FOREACH(nts, &neti_stack_list, nts_next) { in net_getnetistackbyid()
873 if (nts->nts_id == netid) { in net_getnetistackbyid()
875 return (nts); in net_getnetistackbyid()