Lines Matching refs:mp

69 xmlattr_to_stab(topo_mod_t *mp, xmlNodePtr n, const char *stabname,
81 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
83 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
104 return (topo_mod_seterrno(mp, ETOPO_PRSR_BADSTAB));
111 xmlattr_to_int(topo_mod_t *mp,
117 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "xmlattr_to_int(propname=%s)\n",
120 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
125 return (topo_mod_seterrno(mp, ETOPO_PRSR_BADNUM));
132 xmlattr_to_fmri(topo_mod_t *mp,
137 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "xmlattr_to_fmri(propname=%s)\n",
140 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
141 if (topo_mod_str2nvl(mp, (const char *)str, rnvl) < 0) {
150 xmlattr_to_type(topo_mod_t *mp, xmlNodePtr xn, xmlChar *attr)
155 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "%s attribute missing",
157 (void) topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
185 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
187 (void) topo_mod_seterrno(mp, ETOPO_PRSR_BADTYPE);
196 xlate_common(topo_mod_t *mp, xmlNodePtr xn, topo_type_t ptype, nvlist_t *nvl,
209 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "xlate_common(name=%s)\n", name);
212 if (xmlattr_to_int(mp, xn, Value, &ui) < 0)
217 if (xmlattr_to_int(mp, xn, Value, &ui) < 0)
222 if (xmlattr_to_int(mp, xn, Value, &ui) < 0)
227 if (xmlattr_to_int(mp, xn, Value, &ui) < 0)
232 if (xmlattr_to_fmri(mp, xn, Value, &fmri) < 0)
253 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "No <propitem> "
257 if ((arrbuf = topo_mod_alloc(mp, (nelems * sizeof (uint64_t))))
259 return (topo_mod_seterrno(mp, ETOPO_NOMEM));
268 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "No <propitem> "
272 if ((strarrbuf = topo_mod_alloc(mp, (nelems * sizeof (char *))))
274 return (topo_mod_seterrno(mp, ETOPO_NOMEM));
283 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "No <propitem> "
287 if ((nvlarrbuf = topo_mod_alloc(mp, (nelems *
289 return (topo_mod_seterrno(mp, ETOPO_NOMEM));
292 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
294 return (topo_mod_seterrno(mp, ETOPO_PRSR_BADTYPE));
384 topo_mod_strdup(mp, (const char *)str);
390 strarr_free(mp, strarrbuf, nelems);
401 if (topo_mod_str2nvl(mp, (const char *)str,
417 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
419 return (topo_mod_seterrno(mp, ETOPO_NOMEM));
425 xmlprop_xlate(topo_mod_t *mp, xmlNodePtr xn, nvlist_t *nvl)
430 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "xmlprop_xlate\n");
443 if ((ptype = xmlattr_to_type(mp, xn, (xmlChar *)Type))
450 return (xlate_common(mp, xn, ptype, nvl, INV_PVAL));
454 dependent_create(topo_mod_t *mp,
461 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "dependent_create\n");
463 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
465 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
475 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
478 return (topo_mod_seterrno(mp, ETOPO_PRSR_BADGRP));
486 if ((np = topo_xml_walk(mp, xinfo, dxn, ptn)) == NULL) {
487 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
489 "%s\n", topo_strerror(topo_mod_errno(mp)));
502 dependents_create(topo_mod_t *mp,
507 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "dependents_create\n");
510 if (dependent_create(mp, xinfo, pad, cn, ptn) < 0)
518 prop_create(topo_mod_t *mp,
531 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "prop_create(pgrp = %s, "
579 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
581 return (topo_mod_seterrno(mp, e));
634 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "prop set "
636 return (topo_mod_seterrno(mp, err));
642 props_create(topo_mod_t *mp,
653 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "props_create(pgrp = %s)\n",
658 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
661 return (topo_mod_seterrno(mp, ETOPO_PRSR_NVPROP));
665 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
668 return (topo_mod_seterrno(mp, ETOPO_PRSR_NVPROP));
675 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
678 return (topo_mod_seterrno(mp, ETOPO_PRSR_NVPROP));
681 if (prop_create(mp, props[pn], ptn, gnm, pnm, ptype, flag) < 0)
688 pgroups_create(topo_mod_t *mp, tf_pad_t *pad, tnode_t *ptn)
699 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "pgroups_create: %s=%d\n",
705 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
708 return (topo_mod_seterrno(mp, ETOPO_PRSR_NVPROP));
714 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
717 return (topo_mod_seterrno(mp,
727 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
730 return (topo_mod_seterrno(mp,
739 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
742 return (topo_mod_seterrno(mp, ETOPO_PRSR_NVPROP));
750 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
766 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
771 if (props_create(mp, ptn, gnm, props, nprops) < 0)
779 pval_record(topo_mod_t *mp, xmlNodePtr xn)
784 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "pval_record\n");
786 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
788 (void) topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
791 if (topo_mod_nvalloc(mp, &pnvl, NV_UNIQUE_NAME) < 0) {
803 if (xmlprop_xlate(mp, xn, pnvl) < 0) {
821 register_method(topo_mod_t *mp, tnode_t *ptn, struct propmeth_data *meth)
829 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "failed to register "
837 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
845 pmeth_record(topo_mod_t *mp, const char *pg_name, xmlNodePtr xn, tnode_t *tn,
859 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "pmeth_record: %s=%d "
866 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
868 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
870 if (xmlattr_to_int(mp, xn, Version, &meth_ver) < 0) {
871 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
873 ret = topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
880 (void) xmlattr_to_int(mp, xn, Mutable, &is_mutable);
881 (void) xmlattr_to_int(mp, xn, Nonvolatile, &is_nonvolatile);
884 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
886 ret = topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
889 if ((prop_type = xmlattr_to_type(mp, xn, (xmlChar *)Proptype))
891 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
893 ret = topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
900 if (topo_mod_nvalloc(mp, &arg_nvl, NV_UNIQUE_NAME) < 0) {
901 ret = topo_mod_seterrno(mp, ETOPO_NOMEM);
910 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
914 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
916 ret = topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
919 if ((ptype = xmlattr_to_type(mp, cn, (xmlChar *)Type))
921 ret = topo_mod_seterrno(mp, ETOPO_PRSR_BADTYPE);
925 if (xlate_common(mp, cn, ptype, arg_nvl,
927 ret = topo_mod_seterrno(mp, ETOPO_PRSR_BADTYPE);
962 if (register_method(mp, tmp, &meth) != 0) {
963 ret = topo_mod_seterrno(mp,
971 ret = topo_mod_seterrno(mp,
980 ret = topo_mod_seterrno(mp,
988 if (register_method(mp, tn, &meth) != 0) {
989 ret = topo_mod_seterrno(mp, ETOPO_PRSR_REGMETH);
995 ret = topo_mod_seterrno(mp,
1003 ret = topo_mod_seterrno(mp,
1021 pgroup_record(topo_mod_t *mp, xmlNodePtr pxn, tnode_t *tn, const char *rname,
1034 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "pgroup_record\n");
1036 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1038 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
1040 if (xmlattr_to_int(mp, pxn, Version, &ver) < 0) {
1041 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1043 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
1045 if (xmlattr_to_stab(mp, pxn, Namestab, &nmstab) < 0) {
1046 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1048 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
1050 if (xmlattr_to_stab(mp, pxn, Datastab, &dstab) < 0) {
1051 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1053 return (topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR));
1056 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "pgroup %s\n", (char *)name);
1062 if (topo_mod_nvalloc(mp, &pgnvl, NV_UNIQUE_NAME) < 0) {
1064 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1066 return (topo_mod_seterrno(mp, ETOPO_NOMEM));
1076 (apl = topo_mod_zalloc(mp, pcnt * sizeof (nvlist_t *)))
1080 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1083 return (topo_mod_seterrno(mp, ETOPO_NOMEM));
1088 if ((apl[ai] = pval_record(mp, cn)) == NULL)
1093 if (pmeth_record(mp, (const char *)name, cn, tn, rname,
1105 topo_mod_free(mp, apl, pcnt * sizeof (nvlist_t *));
1116 pgroups_record(topo_mod_t *mp, xmlNodePtr pxn, tnode_t *tn, const char *rname,
1122 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "pgroups_record: pxn->name=%s\n",
1126 if (pgroup_record(mp, cn, tn, rname, rpad, pi++, ppgrp)
1142 set_contains(topo_mod_t *mp, char *key, char *set)
1147 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "set_contains(key = %s, "
1167 pad_process(topo_mod_t *mp, tf_rdata_t *rd, xmlNodePtr pxn, tnode_t *ptn,
1182 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1187 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1211 if (mp->tm_hdl->th_product)
1212 key = mp->tm_hdl->th_product;
1214 key = mp->tm_hdl->th_platform;
1224 else if (set_contains(mp, key, (char *)set)) {
1242 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1253 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1262 if ((tmp_rd.rd_einfo = enum_attributes_process(mp, ecn))
1265 tmp_rd.rd_mod = mp;
1270 if (enum_run(mp, &tmp_rd) < 0) {
1274 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1277 tf_edata_free(mp, tmp_rd.rd_einfo);
1287 if ((new = tf_pad_new(mp, pgcnt, dcnt)) == NULL)
1292 topo_mod_zalloc(mp, pgcnt * sizeof (nvlist_t *));
1294 tf_pad_free(mp, new);
1328 if (fac_enum_process(mp, target, ct) < 0)
1331 if (fac_process(mp, target, rd, ct) < 0)
1335 if (fac_enum_process(mp, target, ptn) < 0)
1337 if (fac_process(mp, target, rd, ptn) < 0)
1340 if (pgcnt > 0 && pgroups_record(mp, target, ptn, rd->rd_name,
1342 tf_pad_free(mp, new);
1349 if (dependents_create(mp, rd->rd_finfo, new, pxn, ptn) < 0)
1353 if (pgroups_create(mp, new, ptn) < 0)
1361 fac_enum_process(topo_mod_t *mp, xmlNodePtr pn, tnode_t *ptn)
1367 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1383 if (fac_enum_run(mp, ptn, (const char *)fprov) != 0) {
1384 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1392 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "fac-enum processing failed\n");
1402 fac_process(topo_mod_t *mp, xmlNodePtr pn, tf_rdata_t *rd, tnode_t *ptn)
1411 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1423 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1436 if ((ntn = topo_node_facbind(mp, ptn, (char *)fname,
1446 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1457 if (fac_enum_run(mp, ntn, (const char *)provider) != 0) {
1458 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "fac_process: "
1464 if ((newi = tf_idata_new(mp, 0, ntn)) == NULL)
1470 if (pad_process(mp, rd, cn, ntn, &newi->ti_pad) < 0)
1473 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "done with "
1484 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR, "facility processing failed\n");
1499 node_process(topo_mod_t *mp, xmlNodePtr nn, tf_rdata_t *rd)
1509 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1512 if (xmlattr_to_int(mp, nn, Instance, &ui) < 0)
1542 if ((newi = tf_idata_new(mp, inst, ntn)) == NULL) {
1543 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1548 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1552 if (pad_process(mp, rd, nn, ntn, &newi->ti_pad) < 0)
1554 if (fac_process(mp, nn, rd, ntn) < 0)
1558 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "done with node %s.\n",
1564 enum_attributes_process(topo_mod_t *mp, xmlNodePtr en)
1569 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "enum_attributes_process\n");
1570 if ((einfo = topo_mod_zalloc(mp, sizeof (tf_edata_t))) == NULL) {
1571 (void) topo_mod_seterrno(mp, ETOPO_NOMEM);
1576 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1578 (void) topo_mod_seterrno(mp, ETOPO_PRSR_NOATTR);
1585 if (strcmp(einfo->te_name, mp->tm_name) == 0) {
1586 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1589 (void) topo_mod_seterrno(mp, ETOPO_ENUM_RECURS);
1592 if (xmlattr_to_int(mp, en, Version, &ui) < 0)
1601 topo_mod_free(mp, einfo, sizeof (tf_edata_t));
1606 enum_run(topo_mod_t *mp, tf_rdata_t *rd)
1608 topo_hdl_t *thp = mp->tm_hdl;
1611 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "enum_run\n");
1620 if ((rd->rd_mod = topo_mod_load(mp, rd->rd_einfo->te_name,
1622 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1625 topo_strerror(topo_mod_errno(mp)));
1626 (void) topo_hdl_seterrno(thp, topo_mod_errno(mp));
1633 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "enumerate request. (%s)\n",
1637 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "back from enumeration. %d\n",
1640 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1642 topo_strerror(topo_mod_errno(mp)));
1644 return (topo_mod_seterrno(mp, EMOD_PARTIAL_ENUM));
1650 fac_enum_run(topo_mod_t *mp, tnode_t *node, const char *name)
1652 topo_hdl_t *thp = mp->tm_hdl;
1664 if ((fmod = topo_mod_load(mp, name, TOPO_VERSION)) == NULL) {
1667 name, topo_strerror(topo_mod_errno(mp)));
1668 (void) topo_hdl_seterrno(thp, topo_mod_errno(mp));
1681 topo_strerror(topo_mod_errno(mp)));
1683 return (topo_mod_seterrno(mp, EMOD_PARTIAL_ENUM));
1689 decorate_nodes(topo_mod_t *mp, tf_rdata_t *rd, xmlNodePtr pxn, tnode_t *ptn,
1701 if (pad_process(mp, rd, pxn, ctn, rpad) < 0)
1703 if (decorate_nodes(mp, rd, pxn, ctn, rpad) < 0)
1711 topo_xml_range_process(topo_mod_t *mp, xmlNodePtr rn, tf_rdata_t *rd)
1723 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "topo_xml_range_process\n"
1727 e = topo_node_range_create(mp,
1729 if (e != 0 && topo_mod_errno(mp) != EMOD_NODE_DUP) {
1730 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1732 topo_strerror(topo_mod_errno(mp)));
1750 if ((rd->rd_einfo = enum_attributes_process(mp, enum_node))
1753 if (enum_run(mp, rd) < 0) {
1757 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1767 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "found a propmap "
1771 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1774 if (topo_file_load(mp, rd->rd_pn,
1778 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1781 topo_strerror(topo_mod_errno(mp)));
1790 if (node_process(mp, cn, rd) < 0) {
1791 topo_dprintf(mp->tm_hdl, TOPO_DBG_ERR,
1793 topo_strerror(topo_mod_errno(mp)));
1794 return (topo_mod_seterrno(mp,
1810 (void) decorate_nodes(mp, rd, rn, rd->rd_pn, &rd->rd_pad);
1819 if (pad_process(mp, rd, rn, ct, &rd->rd_pad)
1823 if (fac_process(mp, rn, rd, ct) < 0)
1831 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "topo_xml_range_process: end "
1838 topo_xml_walk(topo_mod_t *mp,
1847 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML, "topo_xml_walk\n");
1855 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1865 if (mp->tm_hdl->th_product)
1866 key = mp->tm_hdl->th_product;
1868 key = mp->tm_hdl->th_platform;
1878 else if (set_contains(mp, key, (char *)set)) {
1880 if ((rdp = topo_xml_walk(mp, xinfo, curr,
1882 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1902 if ((rdp = topo_xml_walk(mp, xinfo, def_set, troot)) == NULL) {
1903 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1921 topo_dprintf(mp->tm_hdl, TOPO_DBG_XML,
1927 if ((rdp = tf_rdata_new(mp, xinfo, curr, troot)) == NULL) {