Lines Matching defs:nts

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