Lines Matching refs:np

62 static void in_dealloc_node(in_node_t *np);
64 static void in_enlist(in_node_t *ap, in_node_t *np);
67 static in_drv_t *in_drvwalk(in_node_t *np, char *binding_name);
69 static void in_endrv(in_node_t *np, in_drv_t *dp);
70 static void in_dq_drv(in_drv_t *np);
544 in_node_t *ap, *np; in e_ddi_assign_instance() local
574 np = in_devwalk(dip, &ap, NULL); in e_ddi_assign_instance()
575 if (np == NULL) { in e_ddi_assign_instance()
577 np = in_devwalk(dip, &ap, NULL); in e_ddi_assign_instance()
580 np = in_alloc_node(name, ddi_get_name_addr(dip)); in e_ddi_assign_instance()
581 ASSERT(np != NULL); in e_ddi_assign_instance()
582 in_enlist(ap, np); /* insert into tree */ in e_ddi_assign_instance()
585 ASSERT(np == in_devwalk(dip, &ap, NULL)); in e_ddi_assign_instance()
590 if (DEVI(dip)->devi_in_node || np->in_devi) { in e_ddi_assign_instance()
592 "interlink fields are not NULL", (void *)np); in e_ddi_assign_instance()
594 DEVI(dip)->devi_in_node = np; in e_ddi_assign_instance()
595 np->in_devi = dip; in e_ddi_assign_instance()
601 dp = in_drvwalk(np, bname); in e_ddi_assign_instance()
605 e_ddi_borrow_instance(dip, np); in e_ddi_assign_instance()
608 if ((dp = in_drvwalk(np, bname)) == NULL) { in e_ddi_assign_instance()
613 in_endrv(np, dp); in e_ddi_assign_instance()
629 mkpathname(char *path, in_node_t *np, int len) in mkpathname() argument
633 if (np == e_ddi_inst_state.ins_root) in mkpathname()
636 if (mkpathname(path, np->in_parent, len) == DDI_FAILURE) in mkpathname()
640 len_needed += strlen(np->in_node_name) + 1; /* for '/' */ in mkpathname()
641 if (np->in_unit_addr) { in mkpathname()
642 len_needed += strlen(np->in_unit_addr) + 1; /* for '@' */ in mkpathname()
652 if (np->in_unit_addr[0] == '\0') in mkpathname()
653 (void) sprintf(path+strlen(path), "/%s", np->in_node_name); in mkpathname()
655 (void) sprintf(path+strlen(path), "/%s@%s", np->in_node_name, in mkpathname()
656 np->in_unit_addr); in mkpathname()
777 in_node_t *np; in e_ddi_free_instance() local
806 np = in_devwalk(dip, &ap, addr); in e_ddi_free_instance()
807 ASSERT(np); in e_ddi_free_instance()
812 if (DEVI(dip)->devi_in_node != np || np->in_devi != dip) { in e_ddi_free_instance()
814 "wrong instance node: %p", (void *)np); in e_ddi_free_instance()
817 np->in_devi = NULL; in e_ddi_free_instance()
819 dp = in_drvwalk(np, name); in e_ddi_free_instance()
825 e_ddi_return_instance(dip, addr, np); in e_ddi_free_instance()
827 if (np->in_drivers == NULL) { in e_ddi_free_instance()
828 in_removenode(dnp, np, ap); in e_ddi_free_instance()
839 in_node_t *np, *ap; in e_ddi_keep_instance() local
863 np = in_devwalk(dip, &ap, NULL); in e_ddi_keep_instance()
864 ASSERT(np); in e_ddi_keep_instance()
865 dp = in_drvwalk(np, (char *)ddi_driver_name(dip)); in e_ddi_keep_instance()
921 in_node_t *np; in in_removenode() local
942 for (np = ap->in_child; np; np = np->in_sibling) { in in_removenode()
943 if (np->in_sibling == mp) { in in_removenode()
944 np->in_sibling = mp->in_sibling; in in_removenode()
962 in_node_t *np; in in_devwalk() local
975 np = in_devwalk(ddi_get_parent(dip), ap, NULL); in in_devwalk()
976 if (np == NULL) in in_devwalk()
977 return (np); in in_devwalk()
978 *ap = np; in in_devwalk()
979 np = np->in_child; in in_devwalk()
984 while (np) { in in_devwalk()
985 if (in_eqstr(np->in_node_name, name) && in in_devwalk()
986 in_eqstr(np->in_unit_addr, addr)) { in in_devwalk()
987 return (np); in in_devwalk()
989 np = np->in_sibling; in in_devwalk()
992 return (np); in in_devwalk()
1001 in_node_t *np; in in_pathin() local
1022 np = in_make_path(cp); in in_pathin()
1023 ASSERT(np); in in_pathin()
1025 dp = in_drvwalk(np, bname); in in_pathin()
1041 in_endrv(np, dp); in in_pathin()
1057 in_node_t *np; /* working node pointer */ in in_make_path() local
1084 np = e_ddi_inst_state.ins_root->in_child; in in_make_path()
1085 rp = np; in in_make_path()
1087 while (name && np) { in in_make_path()
1088 if (in_eqstr(name, np->in_node_name) && in in_make_path()
1089 in_eqstr(addr, np->in_unit_addr)) { in in_make_path()
1092 return (np); in in_make_path()
1093 ap = np; in in_make_path()
1094 np = np->in_child; in in_make_path()
1096 np = np->in_sibling; in in_make_path()
1099 np = in_alloc_node(name, addr); in in_make_path()
1100 in_enlist(ap, np); /* insert into tree */ in in_make_path()
1101 rp = np; /* value to return if we quit */ in in_make_path()
1102 ap = np; /* new parent */ in in_make_path()
1103 np = NULL; /* can have no children */ in in_make_path()
1114 in_enlist(in_node_t *ap, in_node_t *np) in in_enlist() argument
1121 ASSERT(ap && np); in in_enlist()
1123 ap->in_child = np; in in_enlist()
1127 mp->in_sibling = np; in in_enlist()
1131 np->in_parent = ap; in in_enlist()
1138 in_endrv(in_node_t *np, in_drv_t *dp) in in_endrv() argument
1142 ASSERT(np && dp); in in_endrv()
1143 mp = np->in_drivers; in in_endrv()
1144 np->in_drivers = dp; in in_endrv()
1146 dp->ind_node = np; in in_endrv()
1193 in_node_t *np; in in_alloc_node() local
1210 np = (in_node_t *)cp; in in_alloc_node()
1212 np->in_node_name = cp + sizeof (in_node_t); in in_alloc_node()
1213 (void) strcpy(np->in_node_name, name); in in_alloc_node()
1215 np->in_unit_addr = cp + sizeof (in_node_t) + namelen; in in_alloc_node()
1216 (void) strcpy(np->in_unit_addr, addr); in in_alloc_node()
1217 return (np); in in_alloc_node()
1251 in_dealloc_node(in_node_t *np) in in_dealloc_node() argument
1256 ASSERT(np->in_node_name && np->in_unit_addr); in in_dealloc_node()
1258 kmem_free(np, sizeof (in_node_t) + strlen(np->in_node_name) in in_dealloc_node()
1259 + strlen(np->in_unit_addr) + 2); in in_dealloc_node()
1420 in_drvwalk(in_node_t *np, char *binding_name) in in_drvwalk() argument
1423 in_drv_t *dp = np->in_drivers; in in_drvwalk()
1517 in_walk_instances(in_node_t *np, char *path, char *this, in in_walk_instances() argument
1524 while (np != NULL) { in in_walk_instances()
1526 if (np->in_unit_addr[0] == 0) in in_walk_instances()
1527 (void) sprintf(this, "/%s", np->in_node_name); in in_walk_instances()
1529 (void) sprintf(this, "/%s@%s", np->in_node_name, in in_walk_instances()
1530 np->in_unit_addr); in in_walk_instances()
1533 for (dp = np->in_drivers; dp; dp = dp->ind_next_drv) { in in_walk_instances()
1535 rval = (*f)(path, np, dp, arg); in in_walk_instances()
1541 if (np->in_child) { in in_walk_instances()
1542 rval = in_walk_instances(np->in_child, in in_walk_instances()
1548 np = np->in_sibling; in in_walk_instances()
1581 in_node_t *np; in e_ddi_path_to_instance() local
1583 np = in_make_path(path); in e_ddi_path_to_instance()
1584 if (np && np->in_drivers && np->in_drivers->ind_state == IN_PERMANENT) { in e_ddi_path_to_instance()
1585 return (np); in e_ddi_path_to_instance()