Lines Matching refs:idn

83 idn_global_t	idn;  variable
247 struct idn *idn_i2s_table[IDN_MAXMAX_NETS << 1];
590 idn.version = IDN_VERSION; in _init()
616 struct idn *sip; in idnattach()
640 if (idn.state != IDNGS_OFFLINE) { in idnattach()
653 rw_enter(&idn.struprwlock, RW_READER); in idnattach()
654 for (stp = idn.strup; stp; stp = stp->ss_nextp) in idnattach()
659 rw_exit(&idn.struprwlock); in idnattach()
679 mutex_enter(&idn.siplock); in idnattach()
683 mutex_exit(&idn.siplock); in idnattach()
687 if (idn.smr.ready == 0) { in idnattach()
689 idn.enabled = 1; in idnattach()
698 mutex_exit(&idn.siplock); in idnattach()
703 ASSERT(idn.smr.ready || idn.enabled); in idnattach()
705 if (idn.dip == NULL) { in idnattach()
711 mutex_exit(&idn.siplock); in idnattach()
718 mutex_exit(&idn.siplock); in idnattach()
723 ASSERT(idn.dip); in idnattach()
735 sip = GETSTRUCT(struct idn, 1); in idnattach()
738 sip->si_nextp = idn.sip; in idnattach()
739 idn.sip = sip; in idnattach()
741 mutex_exit(&idn.siplock); in idnattach()
756 mutex_enter(&idn.sigbintr.sb_mutex); in idnattach()
758 mutex_exit(&idn.sigbintr.sb_mutex); in idnattach()
761 mutex_enter(&idn.sigbintr.sb_mutex); in idnattach()
763 idn.sigbintr.sb_cpuid = (uchar_t)-1; in idnattach()
764 idn.sigbintr.sb_busy = IDNSIGB_INACTIVE; in idnattach()
765 mutex_exit(&idn.sigbintr.sb_mutex); in idnattach()
769 mutex_enter(&idn.siplock); in idnattach()
772 idn.sip = sip->si_nextp; in idnattach()
773 mutex_exit(&idn.siplock); in idnattach()
786 mutex_enter(&idn.sigbintr.sb_mutex); in idnattach()
788 idn.sigbintr.sb_cpuid = (uchar_t)-1; in idnattach()
789 idn.sigbintr.sb_busy = IDNSIGB_INACTIVE; in idnattach()
790 mutex_exit(&idn.sigbintr.sb_mutex); in idnattach()
794 mutex_enter(&idn.siplock); in idnattach()
797 idn.sip = sip->si_nextp; in idnattach()
798 mutex_exit(&idn.siplock); in idnattach()
824 struct idn *sip, *hsip, *tsip; in idndetach()
844 if (idn.state != IDNGS_OFFLINE) { in idndetach()
850 idngs_str[idn.state]); in idndetach()
882 if (idn.enabled == 0) { in idndetach()
884 ASSERT(idn.dip == NULL); in idndetach()
904 mutex_enter(&idn.siplock); in idndetach()
905 if (idn.sip && (idn.sip->si_nextp == NULL)) { in idndetach()
915 mutex_exit(&idn.siplock); in idndetach()
923 mutex_enter(&idn.sigbintr.sb_mutex); in idndetach()
925 idn.sigbintr.sb_cpuid = (uchar_t)-1; in idndetach()
926 idn.sigbintr.sb_busy = IDNSIGB_NOTREADY; in idndetach()
927 mutex_exit(&idn.sigbintr.sb_mutex); in idndetach()
941 if ((hsip = tsip = idn.sip) == sip) { in idndetach()
942 idn.sip = sip->si_nextp; in idndetach()
950 mutex_exit(&idn.siplock); in idndetach()
956 FREESTRUCT(sip, struct idn, 1); in idndetach()
1113 if (idn.nchannels > 0) in idn_size_check()
1115 ((idn.nchannels - 1) * IDN_WINDOW_INCR); in idn_size_check()
1138 if (idn.smr.ready) in idn_init_smr()
1152 idn.smr.prom_paddr = obp_paddr; in idn_init_smr()
1153 idn.smr.prom_size = obp_size; in idn_init_smr()
1154 idn.smr.vaddr = vmem_alloc(heap_arena, ptob(npages), VM_SLEEP); in idn_init_smr()
1155 ASSERT(((ulong_t)idn.smr.vaddr & MMU_PAGEOFFSET) == 0); in idn_init_smr()
1156 idn.smr.locpfn = (pfn_t)(obp_paddr >> MMU_PAGESHIFT); in idn_init_smr()
1157 idn.smr.rempfn = idn.smr.rempfnlim = PFN_INVALID; in idn_init_smr()
1160 PR_PROTO("%s: smr vaddr = %p\n", proc, (void *)idn.smr.vaddr); in idn_init_smr()
1162 smr_remap(&kas, idn.smr.vaddr, idn.smr.locpfn, IDN_SMR_SIZE); in idn_init_smr()
1164 idn.localid = PADDR_TO_DOMAINID(obp_paddr); in idn_init_smr()
1166 idn.smr.ready = 1; in idn_init_smr()
1176 if (idn.smr.ready == 0) in idn_deinit_smr()
1179 smr_remap(&kas, idn.smr.vaddr, PFN_INVALID, IDN_SMR_SIZE); in idn_deinit_smr()
1183 vmem_free(heap_arena, idn.smr.vaddr, ptob(npages)); in idn_deinit_smr()
1185 idn.localid = IDN_NIL_DOMID; in idn_deinit_smr()
1189 idn.smr.ready = 0; in idn_deinit_smr()
1200 mutex_enter(&idn.idnsb_mutex); in idn_sigb_setup()
1202 idn.idnsb = NULL; in idn_sigb_setup()
1203 idn.idnsb_eventp = NULL; in idn_sigb_setup()
1204 mutex_exit(&idn.idnsb_mutex); in idn_sigb_setup()
1207 idn.idnsb_eventp = (idnsb_event_t *)sigbp->sigb_idn; in idn_sigb_setup()
1208 idn.idnsb = (idnsb_t *)&idn.idnsb_eventp->idn_reserved1; in idn_sigb_setup()
1209 mutex_exit(&idn.idnsb_mutex); in idn_sigb_setup()
1219 ASSERT(MUTEX_HELD(&idn.siplock)); in idn_init()
1221 if (!idn.enabled) { in idn_init()
1227 if (idn.dip != NULL) { in idn_init()
1229 proc, (void *)idn.dip); in idn_init()
1242 PR_DRV("%s: locpfn = 0x%lx\n", proc, idn.smr.locpfn); in idn_init()
1243 PR_DRV("%s: rempfn = 0x%lx\n", proc, idn.smr.rempfn); in idn_init()
1246 rw_init(&idn.grwlock, NULL, RW_DEFAULT, NULL); in idn_init()
1247 rw_init(&idn.struprwlock, NULL, RW_DEFAULT, NULL); in idn_init()
1248 mutex_init(&idn.sync.sz_mutex, NULL, MUTEX_DEFAULT, NULL); in idn_init()
1249 mutex_init(&idn.sipwenlock, NULL, MUTEX_DEFAULT, NULL); in idn_init()
1261 idn.bframe_shift = s; in idn_init()
1263 proc, idn.bframe_shift, IDN_SMR_BUFSIZE_MIN); in idn_init()
1314 mutex_destroy(&idn.sipwenlock); in idn_init()
1315 mutex_destroy(&idn.sync.sz_mutex); in idn_init()
1316 rw_destroy(&idn.grwlock); in idn_init()
1317 rw_destroy(&idn.struprwlock); in idn_init()
1336 idn.dip = dip; in idn_init()
1349 ASSERT(MUTEX_HELD(&idn.siplock)); in idn_deinit()
1353 if (idn.state != IDNGS_OFFLINE) { in idn_deinit()
1358 "(state = %s)", idngs_str[idn.state]); in idn_deinit()
1377 if (idn.dip == NULL) { in idn_deinit()
1393 idn.nchannels = 0; in idn_deinit()
1394 ASSERT(idn.chan_servers == NULL); in idn_deinit()
1410 ASSERT(idn.localid == IDN_NIL_DOMID); in idn_deinit()
1416 mutex_destroy(&idn.sipwenlock); in idn_deinit()
1417 mutex_destroy(&idn.sync.sz_mutex); in idn_deinit()
1418 rw_destroy(&idn.grwlock); in idn_deinit()
1419 rw_destroy(&idn.struprwlock); in idn_deinit()
1421 idn.dip = NULL; in idn_deinit()
1429 mutex_init(&idn.xmit_lock, NULL, MUTEX_DEFAULT, NULL); in idn_xmit_monitor_init()
1430 idn.xmit_tid = (timeout_id_t)NULL; in idn_xmit_monitor_init()
1431 CHANSET_ZERO(idn.xmit_chanset_wanted); in idn_xmit_monitor_init()
1439 mutex_enter(&idn.xmit_lock); in idn_xmit_monitor_deinit()
1440 CHANSET_ZERO(idn.xmit_chanset_wanted); in idn_xmit_monitor_deinit()
1441 if ((tid = idn.xmit_tid) != (timeout_id_t)NULL) { in idn_xmit_monitor_deinit()
1442 idn.xmit_tid = (timeout_id_t)NULL; in idn_xmit_monitor_deinit()
1443 mutex_exit(&idn.xmit_lock); in idn_xmit_monitor_deinit()
1446 mutex_exit(&idn.xmit_lock); in idn_xmit_monitor_deinit()
1448 mutex_destroy(&idn.xmit_lock); in idn_xmit_monitor_deinit()
1490 rw_enter(&idn.struprwlock, RW_WRITER); in idnopen()
1491 mutex_enter(&idn.sipwenlock); in idnopen()
1492 pstp = &idn.strup; in idnopen()
1494 if (idn.enabled == 0) { in idnopen()
1497 mutex_exit(&idn.sipwenlock); in idnopen()
1498 rw_exit(&idn.struprwlock); in idnopen()
1506 mutex_exit(&idn.sipwenlock); in idnopen()
1507 rw_exit(&idn.struprwlock); in idnopen()
1566 mutex_exit(&idn.sipwenlock); in idnopen()
1567 rw_exit(&idn.struprwlock); in idnopen()
1597 rw_enter(&idn.struprwlock, RW_WRITER); in idnclose()
1598 mutex_enter(&idn.sipwenlock); in idnclose()
1599 pstp = &idn.strup; in idnclose()
1611 mutex_exit(&idn.sipwenlock); in idnclose()
1612 rw_exit(&idn.struprwlock); in idnclose()
1627 struct idn *sip; in idnwput()
1721 struct idn *sip; in idnwsrv()
1933 ASSERT(sbp == &idn.sigbintr); in idn_sigbhandler_thread()
1935 mutex_enter(&idn.sigbintr.sb_mutex); in idn_sigbhandler_thread()
1942 cv_wait(&sbp->sb_cv, &idn.sigbintr.sb_mutex); in idn_sigbhandler_thread()
1974 mutex_exit(&idn.sigbintr.sb_mutex); in idn_sigbhandler_thread()
1991 if (idn.enabled == 0) { in idn_sigbhandler_thread()
2028 if (idn.ndomains <= 1) in idn_sigbhandler_thread()
2060 domset = idn.domset.ds_trans_on | in idn_sigbhandler_thread()
2061 idn.domset.ds_connected | in idn_sigbhandler_thread()
2062 idn.domset.ds_trans_off | in idn_sigbhandler_thread()
2063 idn.domset.ds_awol | in idn_sigbhandler_thread()
2064 idn.domset.ds_relink; in idn_sigbhandler_thread()
2182 mutex_enter(&idn.sigbintr.sb_mutex); in idn_sigbhandler_thread()
2198 idn.sigb_threadp = NULL; in idn_sigbhandler_thread()
2200 mutex_exit(&idn.sigbintr.sb_mutex); in idn_sigbhandler_thread()
2212 if (idn.sigb_threadp) { in idn_sigbhandler_create()
2215 "exists (0x%p)", (void *)idn.sigb_threadp); in idn_sigbhandler_create()
2218 cv_init(&idn.sigbintr.sb_cv, NULL, CV_DEFAULT, NULL); in idn_sigbhandler_create()
2219 sbp = &idn.sigbintr; in idn_sigbhandler_create()
2221 idn.sigb_threadp = thread_create(NULL, 0, in idn_sigbhandler_create()
2231 if (idn.sigb_threadp) { in idn_sigbhandler_kill()
2234 sbp = &idn.sigbintr; in idn_sigbhandler_kill()
2240 while (idn.sigb_threadp != NULL) in idn_sigbhandler_kill()
2241 cv_wait(&sbp->sb_cv, &idn.sigbintr.sb_mutex); in idn_sigbhandler_kill()
2251 mutex_enter(&idn.sigbintr.sb_mutex); in idn_sigbhandler_wakeup()
2252 if (idn.sigbintr.sb_busy == IDNSIGB_STARTED) { in idn_sigbhandler_wakeup()
2253 idn.sigbintr.sb_busy = IDNSIGB_ACTIVE; in idn_sigbhandler_wakeup()
2254 cv_signal(&idn.sigbintr.sb_cv); in idn_sigbhandler_wakeup()
2256 mutex_exit(&idn.sigbintr.sb_mutex); in idn_sigbhandler_wakeup()
2264 struct sigbintr *sbp = &idn.sigbintr; in idn_sigbhandler()
2298 if (!mutex_tryenter(&idn.sigbintr.sb_mutex)) { in idn_sigbhandler()
2311 if ((idn.sigb_threadp == NULL) || in idn_sigbhandler()
2352 mutex_exit(&idn.sigbintr.sb_mutex); in idn_sigbhandler()
2372 sinfo.idn_state = (uchar_t)idn.state; in idn_info()
2374 switch (idn.state) { in idn_info()
2378 proc, idngs_str[idn.state]); in idn_info()
2389 proc, idngs_str[idn.state]); in idn_info()
2393 local_id = idn.localid; in idn_info()
2402 sinfo.awol_domset = (ushort_t)idn.domset.ds_awol; in idn_info()
2403 sinfo.conn_domset = (ushort_t)(idn.domset.ds_connected & in idn_info()
2404 ~idn.domset.ds_trans_on); in idn_info()
2405 DOMAINSET_ADD(sinfo.conn_domset, idn.localid); in idn_info()
2459 if (!idn.strup && idn_ndlist) in idn_param_cleanup()
2500 if (idn.enabled == 0) { in idn_param_set()
2632 !CHAN_IN_SET(idn.chanset, net)) in idn_set_net_binding()
2659 idn.nchannels); in idn_get_net_binding()
2661 if (idn.nchannels == 0) in idn_get_net_binding()
2670 if (!CHAN_IN_SET(idn.chanset, c)) in idn_get_net_binding()
2673 csp = &idn.chan_servers[c]; in idn_get_net_binding()
2731 domid = idn.localid; in idnioc_unlink()
2843 if (idn.dopers) in idn_dopers_init()
2846 idn.dopers = GETSTRUCT(struct dopers, 1); in idn_dopers_init()
2848 bzero(idn.dopers, sizeof (struct dopers)); in idn_dopers_init()
2850 dwl = &idn.dopers->_dop_wcache[0]; in idn_dopers_init()
2855 idn.dopers->dop_freelist = &idn.dopers->_dop_wcache[0]; in idn_dopers_init()
2856 idn.dopers->dop_waitcount = 0; in idn_dopers_init()
2857 idn.dopers->dop_domset = 0; in idn_dopers_init()
2858 idn.dopers->dop_waitlist = NULL; in idn_dopers_init()
2860 cv_init(&idn.dopers->dop_cv, NULL, CV_DEFAULT, NULL); in idn_dopers_init()
2861 mutex_init(&idn.dopers->dop_mutex, NULL, MUTEX_DEFAULT, NULL); in idn_dopers_init()
2870 if (idn.dopers == NULL) in idn_dopers_deinit()
2873 for (dwl = idn.dopers->dop_waitlist; dwl; dwl = next_dwl) { in idn_dopers_deinit()
2879 cv_destroy(&idn.dopers->dop_cv); in idn_dopers_deinit()
2880 mutex_destroy(&idn.dopers->dop_mutex); in idn_dopers_deinit()
2882 FREESTRUCT(idn.dopers, struct dopers, 1); in idn_dopers_deinit()
2883 idn.dopers = NULL; in idn_dopers_deinit()
2899 mutex_enter(&idn.dopers->dop_mutex); in idn_init_op()
2900 if ((dwl = idn.dopers->dop_freelist) == NULL) { in idn_init_op()
2903 idn.dopers->dop_freelist = dwl->dw_next; in idn_init_op()
2909 dwl->dw_next = idn.dopers->dop_waitlist; in idn_init_op()
2911 idn.dopers->dop_waitlist = dwl; in idn_init_op()
2912 idn.dopers->dop_waitcount++; in idn_init_op()
2913 idn.dopers->dop_domset |= domset; in idn_init_op()
2914 mutex_exit(&idn.dopers->dop_mutex); in idn_init_op()
2932 mutex_enter(&idn.dopers->dop_mutex); in idn_add_op()
2933 if ((idn.dopers->dop_waitcount == 0) || in idn_add_op()
2934 ((idn.dopers->dop_domset & domset) == 0)) { in idn_add_op()
2935 mutex_exit(&idn.dopers->dop_mutex); in idn_add_op()
2938 for (dwl = idn.dopers->dop_waitlist; dwl; dwl = dwl->dw_next) in idn_add_op()
2941 mutex_exit(&idn.dopers->dop_mutex); in idn_add_op()
2956 mutex_enter(&idn.dopers->dop_mutex); in idn_update_op()
2962 if ((idn.dopers->dop_waitcount == 0) || in idn_update_op()
2963 ((idn.dopers->dop_domset & domset) == 0)) { in idn_update_op()
2964 mutex_exit(&idn.dopers->dop_mutex); in idn_update_op()
2970 for (dw = idn.dopers->dop_waitlist; dw; dw = dw->dw_next) { in idn_update_op()
3006 cv_broadcast(&idn.dopers->dop_cv); in idn_update_op()
3008 mutex_exit(&idn.dopers->dop_mutex); in idn_update_op()
3018 mutex_enter(&idn.dopers->dop_mutex); in idn_deinit_op()
3020 ASSERT(idn.dopers->dop_waitlist); in idn_deinit_op()
3022 if (dwl == idn.dopers->dop_waitlist) { in idn_deinit_op()
3023 idn.dopers->dop_waitlist = dwl->dw_next; in idn_deinit_op()
3025 dwl->dw_next = idn.dopers->dop_freelist; in idn_deinit_op()
3026 idn.dopers->dop_freelist = dwl; in idn_deinit_op()
3031 for (tw = idn.dopers->dop_waitlist, hw = tw->dw_next; in idn_deinit_op()
3049 for (hw = idn.dopers->dop_waitlist, domset = 0; hw; hw = hw->dw_next) in idn_deinit_op()
3052 idn.dopers->dop_waitcount--; in idn_deinit_op()
3053 idn.dopers->dop_domset = domset; in idn_deinit_op()
3055 mutex_exit(&idn.dopers->dop_mutex); in idn_deinit_op()
3081 mutex_enter(&idn.dopers->dop_mutex); in idn_wait_op()
3084 rv = cv_reltimedwait_sig(&idn.dopers->dop_cv, in idn_wait_op()
3085 &idn.dopers->dop_mutex, (wait_timeout * hz), TR_CLOCK_TICK); in idn_wait_op()
3124 mutex_exit(&idn.dopers->dop_mutex); in idn_wait_op()
3222 ldp = &idn_domain[idn.localid]; in idn_open_domain()
3230 if (DOMAIN_IN_SET(idn.domset.ds_relink, domid)) { in idn_open_domain()
3263 if (domid != idn.localid) in idn_open_domain()
3264 IDN_DLOCK_EXCL(idn.localid); in idn_open_domain()
3266 if (idn.ndomains == 1) { in idn_open_domain()
3282 if (domid != idn.localid) in idn_open_domain()
3283 IDN_DUNLOCK(idn.localid); in idn_open_domain()
3290 idn.ndomains++; in idn_open_domain()
3292 if (domid != idn.localid) in idn_open_domain()
3293 IDN_DUNLOCK(idn.localid); in idn_open_domain()
3299 if (domid != idn.localid) { in idn_open_domain()
3349 DOMAINSET_DEL(idn.domset.ds_trans_on, domid); in idn_close_domain()
3350 DOMAINSET_DEL(idn.domset.ds_ready_on, domid); in idn_close_domain()
3351 DOMAINSET_DEL(idn.domset.ds_connected, domid); in idn_close_domain()
3352 DOMAINSET_DEL(idn.domset.ds_trans_off, domid); in idn_close_domain()
3353 DOMAINSET_DEL(idn.domset.ds_ready_off, domid); in idn_close_domain()
3354 DOMAINSET_DEL(idn.domset.ds_hwlinked, domid); in idn_close_domain()
3355 DOMAINSET_DEL(idn.domset.ds_flush, domid); in idn_close_domain()
3362 if (DOMAIN_IN_SET(idn.domset.ds_awol, domid)) in idn_close_domain()
3365 idn.ndomains--; in idn_close_domain()
3453 ASSERT(idn.smr.locpfn); in idn_domains_init()
3456 idn.ndomains = 0; /* note that open_domain will get us to 1 */ in idn_domains_init()
3458 IDN_DLOCK_EXCL(idn.localid); in idn_domains_init()
3459 d = idn_open_domain(idn.localid, (int)CPU->cpu_id, 0); in idn_domains_init()
3465 ldp = &idn_domain[idn.localid]; in idn_domains_init()
3470 ASSERT(idn.ndomains == 1); in idn_domains_init()
3491 CPUSET_ZERO(idn.dc_cpuset); in idn_domains_init()
3492 CPUSET_OR(idn.dc_cpuset, ldp->dcpuset); in idn_domains_init()
3493 idn.dc_boardset = ldp->dhw.dh_boardset; in idn_domains_init()
3504 IDN_DUNLOCK(idn.localid); in idn_domains_init()
3514 IDN_DLOCK_EXCL(idn.localid); in idn_domains_deinit()
3515 IDN_DSTATE_TRANSITION(&idn_domain[idn.localid], IDNDS_CLOSED); in idn_domains_deinit()
3516 idn_close_domain(idn.localid); in idn_domains_deinit()
3517 IDN_DUNLOCK(idn.localid); in idn_domains_deinit()
3519 idn.localid = IDN_NIL_DOMID; in idn_domains_deinit()
3542 ASSERT(idn.retryqueue.rq_cache == NULL); in idn_retrytask_init()
3544 mutex_init(&idn.retryqueue.rq_mutex, NULL, MUTEX_DEFAULT, NULL); in idn_retrytask_init()
3545 idn.retryqueue.rq_cache = kmem_cache_create("idn_retryjob_cache", in idn_retrytask_init()
3554 if (idn.retryqueue.rq_cache == NULL) in idn_retrytask_deinit()
3557 kmem_cache_destroy(idn.retryqueue.rq_cache); in idn_retrytask_deinit()
3558 mutex_destroy(&idn.retryqueue.rq_mutex); in idn_retrytask_deinit()
3560 bzero(&idn.retryqueue, sizeof (idn.retryqueue)); in idn_retrytask_deinit()
3569 ASSERT(idn.timer_cache == NULL); in idn_timercache_init()
3571 idn.timer_cache = kmem_cache_create("idn_timer_cache", in idn_timercache_init()
3580 if (idn.timer_cache == NULL) in idn_timercache_deinit()
3583 kmem_cache_destroy(idn.timer_cache); in idn_timercache_deinit()
3584 idn.timer_cache = NULL; in idn_timercache_deinit()
3592 tp = kmem_cache_alloc(idn.timer_cache, KM_SLEEP); in idn_timer_alloc()
3604 kmem_cache_free(idn.timer_cache, tp); in idn_timer_free()
3876 if (idn.slabpool == NULL) { in idn_slabpool_report()
3883 for (p = nfree = 0; p < idn.slabpool->npools; p++) in idn_slabpool_report()
3884 nfree += idn.slabpool->pool[p].nfree; in idn_slabpool_report()
3889 idn.slabpool->ntotslabs, in idn_slabpool_report()
3890 idn.slabpool->ntotslabs - nfree, in idn_slabpool_report()
3891 idn.slabpool->npools); in idn_slabpool_report()
3895 for (p = 0; p < idn.slabpool->npools; p++) { in idn_slabpool_report()
3900 for (s = 0; s < idn.slabpool->pool[p].nslabs; s++) { in idn_slabpool_report()
3903 dd = idn.slabpool->pool[p].sarray[s].sl_domid; in idn_slabpool_report()
3923 p, idn.slabpool->pool[p].nslabs, in idn_slabpool_report()
3924 idn.slabpool->pool[p].nfree, in idn_slabpool_report()
3928 p, idn.slabpool->pool[p].nslabs, in idn_slabpool_report()
3929 idn.slabpool->pool[p].nfree, in idn_slabpool_report()
3946 if (idn.localid == IDN_NIL_DOMID) { in idn_buffer_report()
3948 idn.localid); in idn_buffer_report()
3953 idn_domain[idn.localid].dnslabs); in idn_buffer_report()
3955 DSLAB_LOCK_SHARED(idn.localid); in idn_buffer_report()
3956 if ((sp = idn_domain[idn.localid].dslab) == NULL) { in idn_buffer_report()
3957 DSLAB_UNLOCK(idn.localid); in idn_buffer_report()
3978 DSLAB_UNLOCK(idn.localid); in idn_buffer_report()
4110 if ((map = idn.mboxarea) == NULL) { in idn_mboxtbl_report()
4114 map = (idn_mboxtbl_t *)idn.smr.vaddr; in idn_mboxtbl_report()
4125 if (!idn.nchannels) { in idn_mboxtbl_report()
4132 IDN_CHAN_LOCK_GLOBAL(&idn.chan_servers[c]); in idn_mboxtbl_report()
4133 if (!IDN_CHANNEL_IS_ATTACHED(&idn.chan_servers[c])) { in idn_mboxtbl_report()
4134 IDN_CHAN_UNLOCK_GLOBAL(&idn.chan_servers[c]); in idn_mboxtbl_report()
4206 IDN_CHAN_UNLOCK_GLOBAL(&idn.chan_servers[c]); in idn_mboxtbl_report()
4230 IDN_CHAN_LOCK_GLOBAL(&idn.chan_servers[c]); in idn_mainmbox_domain_report()
4231 if (IDN_CHANNEL_IS_DETACHED(&idn.chan_servers[c])) { in idn_mainmbox_domain_report()
4234 IDN_CHAN_UNLOCK_GLOBAL(&idn.chan_servers[c]); in idn_mainmbox_domain_report()
4258 IDN_CHAN_UNLOCK_GLOBAL(&idn.chan_servers[c]); in idn_mainmbox_domain_report()
4349 idngs_str[idn.state], idn.state); in idn_global_report()
4353 (void) mi_mpprintf(mp, " 0x%p", (void *)idn.smr.vaddr); in idn_global_report()
4357 locpfn_upper = (uint_t)(idn.smr.locpfn >> (32 - PAGESHIFT)); in idn_global_report()
4358 locpfn_lower = (uint_t)(idn.smr.locpfn << PAGESHIFT); in idn_global_report()
4359 if (idn.smr.rempfn == PFN_INVALID) { in idn_global_report()
4362 rempfn_upper = (uint_t)(idn.smr.rempfn >> (32 - PAGESHIFT)); in idn_global_report()
4363 rempfn_lower = (uint_t)(idn.smr.rempfn << PAGESHIFT); in idn_global_report()
4387 idn.localid, in idn_global_report()
4388 idn_domain[idn.localid].dname, in idn_global_report()
4390 (idn.localid == masterid) ? "MASTER" : in idn_global_report()
4394 IDN_CHAN_LOCK_GLOBAL(&idn.chan_servers[i]); in idn_global_report()
4395 if (IDN_CHANNEL_IS_ACTIVE(&idn.chan_servers[i])) in idn_global_report()
4397 IDN_CHAN_UNLOCK_GLOBAL(&idn.chan_servers[i]); in idn_global_report()
4401 idn.nchannels, nactive, IDN_MAX_NETS); in idn_global_report()
4402 (void) mi_mpprintf(mp, " Number of Domains = %d", idn.ndomains); in idn_global_report()
4403 (void) mi_mpprintf(mp, " Number of AWOLs = %d", idn.nawols); in idn_global_report()
4409 connected = idn.domset.ds_connected & ~idn.domset.ds_trans_on; in idn_global_report()
4410 DOMAINSET_ADD(connected, idn.localid); in idn_global_report()
4413 domainset2str(idn.domset.ds_trans_on, dbp); in idn_global_report()
4415 idn.domset.ds_trans_on ? dbp : "<>"); in idn_global_report()
4416 domainset2str(idn.domset.ds_trans_off, dbp); in idn_global_report()
4418 idn.domset.ds_trans_off ? dbp : "<>"); in idn_global_report()
4419 mutex_enter(&idn.retryqueue.rq_mutex); in idn_global_report()
4420 nretry = idn.retryqueue.rq_count; in idn_global_report()
4422 for (i = 0, rp = idn.retryqueue.rq_jobs; i < nretry; i++, in idn_global_report()
4431 mutex_exit(&idn.retryqueue.rq_mutex); in idn_global_report()
4435 domainset2str(idn.domset.ds_hitlist, dbp); in idn_global_report()
4437 idn.domset.ds_hitlist ? dbp : "<>"); in idn_global_report()
4438 domainset2str(idn.domset.ds_relink, dbp); in idn_global_report()
4440 idn.domset.ds_relink ? dbp : "<>"); in idn_global_report()
4441 if (idn.domset.ds_relink) in idn_global_report()
4467 if (idn.ndomains <= 1) { in idn_global_report()
4495 if (idn.nawols == 0) { in idn_global_report()
4504 if (!DOMAIN_IN_SET(idn.domset.ds_awol, d) || in idn_global_report()
4523 zp = &idn.sync.sz_zone[i]; in idn_global_report()
4546 zp = &idn.sync.sz_zone[i]; in idn_global_report()
4606 domset = DOMAINSET(idn.localid); in idn_domain_report()
4637 (d && (idn.ndomains > 1)) ? "\n" : "", in idn_domain_report()
4641 (d && (idn.ndomains > 1)) ? "\n" : "", in idn_domain_report()
4644 if (d == idn.localid) in idn_domain_report()
4778 if (idn.intr.dmv_data != NULL) { in idn_init_handler()
4797 idn.intr.dmv_data_len = len; in idn_init_handler()
4798 idn.intr.dmv_data = kmem_zalloc(len, KM_SLEEP); in idn_init_handler()
4800 PR_PROTO("%s: DMV data area = %p\n", proc, (void *)idn.intr.dmv_data); in idn_init_handler()
4802 idn_dmv_data = (idn_dmv_data_t *)idn.intr.dmv_data; in idn_init_handler()
4803 basep = (idn_dmv_msg_t *)roundup((size_t)idn.intr.dmv_data + in idn_init_handler()
4828 idn.intr.dmv_inum = STARFIRE_DMV_IDN_BASE; in idn_init_handler()
4829 idn.intr.soft_inum = add_softintr((uint_t)idn_pil, idn_handler, 0, in idn_init_handler()
4831 idn_dmv_data->idn_soft_inum = idn.intr.soft_inum; in idn_init_handler()
4838 if (dmv_add_intr(idn.intr.dmv_inum, idn_dmv_handler, in idn_init_handler()
4851 if (idn.intr.dmv_data == NULL) in idn_deinit_handler()
4854 (void) dmv_rem_intr(idn.intr.dmv_inum); in idn_deinit_handler()
4855 (void) rem_softintr(idn.intr.soft_inum); in idn_deinit_handler()
4856 kmem_free(idn.intr.dmv_data, idn.intr.dmv_data_len); in idn_deinit_handler()
4857 idn.intr.dmv_data = NULL; in idn_deinit_handler()
4908 if (((int)xp->iv_ver == idn.version) && mtype) { in idn_handler()
4997 mutex_enter(&idn.idnsb_mutex); in idn_awol_event_set()
4998 sbp = idn.idnsb_eventp; in idn_awol_event_set()
5004 mutex_exit(&idn.idnsb_mutex); in idn_awol_event_set()
5011 mutex_exit(&idn.idnsb_mutex); in idn_awol_event_set()
5017 mutex_exit(&idn.idnsb_mutex); in idn_awol_event_set()
5028 mutex_enter(&idn.idnsb_mutex); in idn_awol_event_clear()
5029 sbp = idn.idnsb_eventp; in idn_awol_event_clear()
5035 mutex_exit(&idn.idnsb_mutex); in idn_awol_event_clear()
5042 mutex_exit(&idn.idnsb_mutex); in idn_awol_event_clear()
5048 mutex_exit(&idn.idnsb_mutex); in idn_awol_event_clear()
5058 if ((ksp = kstat_create(IDNNAME, ddi_get_instance(idn.dip),
5063 if ((ksp = kstat_create(IDNNAME, ddi_get_instance(idn.dip),
5073 idn.ksp = ksp;
5115 if (idn.ksp)
5116 kstat_delete(idn.ksp);
5117 idn.ksp = NULL;
5207 orig_gstate = idn.state;
5473 dmv_word0 = DMV_MAKE_DMV(idn.intr.dmv_inum, pdata);
5634 mutex_enter(&idn.idnsb_mutex);
5635 if ((sbp = idn.idnsb_eventp) == NULL) {
5637 mutex_exit(&idn.idnsb_mutex);
5645 sbp->idn_version = (uchar_t)idn.version;
5649 mutex_exit(&idn.idnsb_mutex);
5658 mutex_enter(&idn.idnsb_mutex);
5659 if ((sbp = idn.idnsb_eventp) == NULL) {
5661 mutex_exit(&idn.idnsb_mutex);
5667 sbp->idn_version = (uchar_t)idn.version;
5671 mutex_exit(&idn.idnsb_mutex);