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