Lines Matching refs:child

638 	NDI_CONFIG_DEBUG((CE_CONT, "link_node: parent = %s child = %s\n",
885 * command to transform the child to canonical form 1. If there
987 * having a zero devi_ref during the child rebind process.
1799 * Add a child and bind to driver
1994 * We are called to wait for of a new child, and new child can
2185 * If a child is not named (dev_addr == NULL), there are three
2189 * (2) FIND_ADDR_BY_INIT: bring child to DS_INITIALIZED state
2227 * Walk the child list to find a match
2244 /* name the child based on the flag */
2272 * Find child of pdip with name: cname@caddr
2296 * Find a child of a given name and address, using a callback to name
2311 * Find a child of a given name and address, invoking initchild to name
2330 * Find a child of a given name and address, invoking initchild to name
2349 * Find a child of a given address, invoking initchild to name
2700 * There is no failure mode, since the nexus may or may not have child
2716 * Walk the child list to find all nodes bound to major
3827 dev_info_t *parent, *child;
3876 * Find and configure the child
3878 if (ndi_devi_config_one(parent, config_name, &child,
3887 ASSERT(i_ddi_devi_attached(child));
3889 parent = child;
3901 config_name, &child, 0) != NDI_SUCCESS) {
3911 ASSERT(i_ddi_devi_attached(child));
3913 parent = child;
4575 * Run initchild on all child nodes such that instance assignment
4966 struct brevq_node *child)
4977 brn->brn_child = child;
5055 /* now path contains the node path to the dip's child */
5069 dev_info_t *child;
5081 for (child = ddi_get_child(dip); child != NULL;
5082 child = ddi_get_next_sibling(child)) {
5083 if (i_ddi_node_state(child) >= DS_INITIALIZED) {
5084 (void) ddi_deviname(child, path);
5090 if (child != NULL && !(DEVI_EVREMOVE(child))) {
5146 * a queue of dip's child devinames for which branch remove events need
5254 dev_info_t *child, *next;
5277 child = ddi_get_child(pdip);
5278 while (child) {
5280 next = ddi_get_next_sibling(child);
5287 (major == ddi_driver_major(child)) ||
5288 ((flags & NDI_CONFIG) && (is_leaf_node(child) == 0)))
5289 (void) devi_attach_node(child, flags);
5290 child = next;
5304 /* multi-threaded configuration of child nexus */
5447 * child - break out of for(;;) loop if child found.
5464 * devinfo child.
5471 * Search for child by name, if not found then search
5474 * child found. To support path-oriented aliases
5489 * and look for child again.
5509 * to add child (or timeout). The addition of a new child (vhci
5513 * which we loop and search for the requested child again.
5516 "%s%d: waiting for child %s@%s, timeout %ld",
5533 * not immediately finding a new pHCI child
5546 /* attach and hold the child, returning pointer to child */
5559 * Enumerate and attach a child specified by name 'devnm'.
5579 "ndi_devi_config_one: par = %s%d (%p), child = %s\n",
5657 * Enumerate and attach a child specified by name 'devnm'.
5672 "par = %s%d (%p), child = %s\n", ddi_driver_name(parent),
6021 dev_info_t *child;
6028 * Scan forward to see if we will be processing a pHCI child. If we
6029 * have a child that is a pHCI and vHCI and pHCI are not siblings then
6034 for (child = ddi_get_child(dip); child;
6035 child = ddi_get_next_sibling(child)) {
6038 (major != ddi_driver_major(child))) ||
6039 ((flags & NDI_AUTODETACH) && !is_leaf_node(child)))
6042 if (MDI_PHCI(child)) {
6043 vdip = mdi_devi_get_vdip(child);
6060 child = ddi_get_child(dip);
6061 while (child) {
6062 next = ddi_get_next_sibling(child);
6065 (major != ddi_driver_major(child))) {
6066 child = next;
6071 if ((flags & NDI_AUTODETACH) && !is_leaf_node(child)) {
6072 child = next;
6076 if (devi_detach_node(child, flags) != NDI_SUCCESS) {
6078 ndi_hold_devi(child);
6079 *dipp = child;
6087 child = next;
6113 /* multi-threaded configuration of child nexus */
6124 * child devinames for which branch remove events need to be generated.
6243 * Unconfigure child by name
6249 dev_info_t *child;
6254 child = ndi_devi_findchild(pdip, devnm);
6257 * If child is pHCI and vHCI and pHCI are not siblings then enter vHCI
6261 if (child && MDI_PHCI(child)) {
6262 vdip = mdi_devi_get_vdip(child);
6269 child = ndi_devi_findchild(pdip, devnm);
6274 if (child) {
6275 rv = devi_detach_node(child, flags);
6299 dev_info_t *child;
6307 "ndi_devi_unconfig_one: par = %s%d (%p), child = %s\n",
6318 child = ndi_devi_findchild(pdip, devnm);
6321 * If child is pHCI and vHCI and pHCI are not siblings then enter vHCI
6325 if (child && MDI_PHCI(child)) {
6326 vdip = mdi_devi_get_vdip(child);
6333 child = ndi_devi_findchild(pdip, devnm);
6338 if (child == NULL) {
6346 * Unconfigure children/descendants of named child
6348 rv = devi_unconfig_branch(child, dipp, flags | NDI_UNCONFIG, &brevq);
6352 init_bound_node_ev(pdip, child, flags);
6357 rv = devi_detach_node(child, flags);
6365 log_and_free_brevq_dip(child, brevq);
6371 ndi_hold_devi(child);
6373 *dipp = child;
6466 /* bind child before merging .conf nodes */
6547 /* mark child as need config if requested. */
6582 * If child is pHCI and vHCI and pHCI are not siblings then enter vHCI
6656 * Find the child dev_info node of parent nexus 'p' whose unit address
6662 dev_info_t *child;
6669 child = find_sibling(ddi_get_child(pdip), cname, caddr,
6672 return (child);
6676 * Find the child dev_info node of parent nexus 'p' whose unit address
6682 dev_info_t *child;
6696 child = find_sibling(ddi_get_child(pdip), cname, caddr,
6699 return (child);
6708 * if new child spec has been added.
6722 /* coordinate child state update */
7221 * and invoke mt_config_driver() to attach child major.
7401 void *arg, dev_info_t **child, clock_t timeout)
7418 return (devi_config_one(pdip, (char *)arg, child, flags,
7662 * Multi-threaded config/unconfig of child nexus
7701 * Hold the child that we are processing so he does not get
7800 * Hold the child that we are processing so he does not get
8027 * This a special routine to enumerate vhci node (child of rootnex
8034 * as same lock is held before linking/unlinking any direct child