ldi_usage
di_ldi_callback(const ldi_usage_t *ldi_usage, void *arg)
if ((ldi_usage->src_dip == NULL) || (ldi_usage->tgt_dip == NULL))
ASSERT(e_ddi_devi_holdcnt(ldi_usage->src_dip));
ASSERT(e_ddi_devi_holdcnt(ldi_usage->tgt_dip));
if (di_dip_find(st, ldi_usage->src_dip, &soff) != 0)
if (di_dip_find(st, ldi_usage->tgt_dip, &toff) != 0)
i_lnode = i_lnode_alloc(ldi_usage->src_modid);
i_lnode->devt = ldi_usage->src_devt;
i_lnode = i_lnode_alloc(ldi_usage->tgt_modid);
i_lnode->devt = ldi_usage->tgt_devt;
i_link = i_link_alloc(ldi_usage->tgt_spec_type);
ldi_usage_walker_tgt_helper(ldi_usage_t *ldi_usage, vnode_t *vp)
ldi_usage->tgt_name = mod_major_to_name(getmajor(dev));
ldi_usage->tgt_modid = mod_name_to_modid(ldi_usage->tgt_name);
ldi_usage->tgt_devt = dev;
ldi_usage->tgt_spec_type = VTYP_TO_STYP(vp->v_type);
ldi_usage->tgt_dip = dip;
ldi_usage_t ldi_usage;
ldi_usage_walker_tgt_helper(&ldi_usage, vp);
ldi_usage.src_modid = lip->li_modid;
ldi_usage.src_name = lip->li_modname;
ldi_usage.src_devt = dev;
ldi_usage.src_dip = dip;
ret = callback(&ldi_usage, arg);
if (ldi_usage.tgt_dip != NULL)
ddi_release_devi(ldi_usage.tgt_dip);
ldi_usage.src_dip = dip;
ret = callback(&ldi_usage, arg);
if (ldi_usage.tgt_dip != NULL)
ddi_release_devi(ldi_usage.tgt_dip);
int (*callback)(const ldi_usage_t *ldi_usage, void *arg));
dofkusers_walker(const ldi_usage_t *ldi_usage, void *arg)
if (fvp->v_rdev != ldi_usage->tgt_devt) {
if (VTOCS(fvp)->s_dip != ldi_usage->tgt_dip)
modid = ldi_usage->src_modid;
if (ldi_usage->src_dip != NULL) {
instance = DEVI(ldi_usage->src_dip)->devi_instance;
if (ldi_usage->src_devt != DDI_DEV_T_NONE) {
minor = getminor(ldi_usage->src_devt);