Lines Matching defs:hwp

1311 hc_walk_sibling(topo_mod_t *mod, tnode_t *node, struct hc_walk *hwp,
1315 topo_walk_t *wp = hwp->hcw_wp;
1323 if (hc_match(mod, np, hwp->hcw_fmri, name, inst,
1327 status = wp->tw_cb(mod, np, hwp);
1329 status = wp->tw_cb(wp->tw_thp, np, hwp);
1354 struct hc_walk *hwp = (struct hc_walk *)pdata;
1360 i = hwp->hcw_index;
1361 if (i > hwp->hcw_end) {
1362 if (hwp->hcw_fac != NULL) {
1363 if ((err = hwp->hcw_cb(mod, node, hwp->hcw_priv))
1379 err = nvlist_lookup_string(hwp->hcw_list[i], FM_FMRI_HC_NAME, &name);
1380 err |= nvlist_lookup_string(hwp->hcw_list[i], FM_FMRI_HC_ID, &id);
1395 if (hc_match(mod, node, hwp->hcw_fmri, name, inst, &match) != 0)
1399 return (hc_walk_sibling(mod, node, hwp, name, inst));
1403 topo_node_instance(node), name, inst, i, hwp->hcw_end);
1405 if (i == hwp->hcw_end) {
1411 if (hwp->hcw_fac != NULL) {
1412 err = nvlist_lookup_string(hwp->hcw_fac,
1414 err |= nvlist_lookup_string(hwp->hcw_fac,
1420 hwp->hcw_index++;
1423 return (topo_walk_byid(hwp->hcw_wp, fname, 0));
1429 if ((err = hwp->hcw_cb(mod, node, hwp->hcw_priv)) != 0) {
1444 hwp->hcw_index = ++i;
1445 err = nvlist_lookup_string(hwp->hcw_list[i], FM_FMRI_HC_NAME, &name);
1446 err |= nvlist_lookup_string(hwp->hcw_list[i], FM_FMRI_HC_ID, &id);
1453 return (topo_walk_byid(hwp->hcw_wp, name, inst));
1463 struct hc_walk *hwp;
1466 if ((hwp = topo_mod_alloc(mod, sizeof (struct hc_walk))) == NULL) {
1471 if (nvlist_lookup_nvlist_array(rsrc, FM_FMRI_HC_LIST, &hwp->hcw_list,
1475 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1479 if ((ret = nvlist_lookup_nvlist(rsrc, FM_FMRI_FACILITY, &hwp->hcw_fac))
1484 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1488 hwp->hcw_fac = NULL;
1492 hwp->hcw_fmri = rsrc;
1493 hwp->hcw_end = sz - 1;
1494 hwp->hcw_index = 0;
1495 hwp->hcw_priv = pdata;
1496 hwp->hcw_cb = cb;
1497 if ((wp = topo_mod_walk_init(mod, node, hc_walker, (void *)hwp, &err))
1501 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1506 hwp->hcw_wp = wp;
1508 return (hwp);
1539 struct hc_walk *hwp;
1572 if ((hwp = hc_walk_init(mod, node, plp->pl_rsrc, hc_prop_get,
1574 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
1579 topo_walk_fini(hwp->hcw_wp);
1580 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1611 struct hc_walk *hwp;
1629 if ((hwp = hc_walk_init(mod, node, plp->pl_rsrc, hc_pgrp_get,
1631 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
1636 topo_walk_fini(hwp->hcw_wp);
1637 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1670 struct hc_walk *hwp;
1700 if ((hwp = hc_walk_init(mod, node, plp->pl_rsrc, hc_prop_setprop,
1702 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
1707 topo_walk_fini(hwp->hcw_wp);
1708 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1800 struct hc_walk *hwp;
1811 if ((hwp = hc_walk_init(mod, node, hap->ha_fmri, hc_is_present,
1813 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
1818 topo_walk_fini(hwp->hcw_wp);
1819 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1918 struct hc_walk *hwp;
1929 if ((hwp = hc_walk_init(mod, node, hap->ha_fmri, hc_is_replaced,
1931 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
1936 topo_walk_fini(hwp->hcw_wp);
1937 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
1983 struct hc_walk *hwp;
1994 if ((hwp = hc_walk_init(mod, node, hap->ha_fmri, hc_unusable,
1996 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
2001 topo_walk_fini(hwp->hcw_wp);
2002 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
2077 struct hc_walk *hwp;
2111 if ((hwp = hc_walk_init(mod, node, flp->fl_rsrc, hc_fac_get,
2113 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
2118 topo_walk_fini(hwp->hcw_wp);
2119 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
2181 struct hc_walk *hwp;
2192 if ((hwp = hc_walk_init(mod, node, hap->ha_fmri, hc_expand,
2194 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
2199 topo_walk_fini(hwp->hcw_wp);
2204 topo_mod_free(mod, hwp, sizeof (struct hc_walk));
2241 struct hc_walk *hwp;
2254 if ((hwp = hc_walk_init(mod, node, hap->ha_fmri, hc_retire_subr,
2256 if (topo_walk_step(hwp->hcw_wp, TOPO_WALK_CHILD) ==
2261 topo_walk_fini(hwp->hcw_wp);
2266 topo_mod_free(mod, hwp, sizeof (struct hc_walk));