Lines Matching refs:pv

120 prop_method_get(tnode_t *node, topo_propval_t *pv, topo_propmethod_t *pm,
128 if (topo_hdl_nvalloc(pv->tp_hdl, &args, NV_UNIQUE_NAME) < 0 ||
144 topo_prop_hold(pv);
149 topo_prop_rele(pv);
153 topo_prop_rele(pv);
159 if (ret != 0 || strcmp(name, pv->tp_name) != 0)
163 if (ret != 0 || type != pv->tp_type)
167 nvlist_free(pv->tp_val);
168 pv->tp_val = nvl;
177 topo_propval_t *pv = NULL;
179 if ((pv = propval_get(pgroup_get(node, pgname), pname)) == NULL) {
184 if (pv->tp_flag & TOPO_PROP_NONVOLATILE && pv->tp_val != NULL)
185 return (pv);
187 if (pv->tp_method != NULL) {
188 if (prop_method_get(node, pv, pv->tp_method, pargs, err) < 0)
192 return (pv);
209 topo_propval_t *pv;
212 if ((pv = prop_get(node, pgname, pname, NULL, err))
216 if (pv->tp_type != type)
221 ret = nvlist_lookup_int32(pv->tp_val, TOPO_PROP_VAL_VAL,
225 ret = nvlist_lookup_uint32(pv->tp_val,
229 ret = nvlist_lookup_int64(pv->tp_val, TOPO_PROP_VAL_VAL,
233 ret = nvlist_lookup_uint64(pv->tp_val,
237 ret = nvlist_lookup_double(pv->tp_val,
243 ret = nvlist_lookup_string(pv->tp_val,
257 ret = nvlist_lookup_nvlist(pv->tp_val,
267 if ((ret = nvlist_lookup_int32_array(pv->tp_val,
283 if ((ret = nvlist_lookup_uint32_array(pv->tp_val,
299 if ((ret = nvlist_lookup_int64_array(pv->tp_val,
315 if ((ret = nvlist_lookup_uint64_array(pv->tp_val,
331 if ((ret = nvlist_lookup_string_array(pv->tp_val,
356 if ((ret = nvlist_lookup_nvlist_array(pv->tp_val,
500 topo_propval_t *pv;
503 pv = pvl->tp_pval;
504 topo_propval_destroy(pv);
520 topo_propval_t *pv;
532 if ((pv = propval_get(pg, pname)) != NULL) {
533 if (pv->tp_type != type)
535 else if (! (pv->tp_flag & TOPO_PROP_MUTABLE))
538 nvlist_free(pv->tp_val);
539 pv->tp_val = NULL;
545 if ((pv = topo_hdl_zalloc(thp, sizeof (topo_propval_t)))
549 pv->tp_hdl = thp;
550 pvl->tp_pval = pv;
552 if ((pv->tp_name = topo_hdl_strdup(thp, pname))
555 pv->tp_flag = flag;
556 pv->tp_type = type;
557 topo_prop_hold(pv);
561 return (pv);
769 topo_propval_t *pv;
785 if ((pv = prop_create(node, pgname, name, type, flag, err)) == NULL)
792 if (pv->tp_method != NULL) {
793 topo_propmethod_t *pm = pv->tp_method;
795 if (topo_hdl_nvalloc(pv->tp_hdl, &args, NV_UNIQUE_NAME) < 0) {
824 topo_prop_hold(pv);
829 topo_prop_rele(pv);
842 pv->tp_val = nvl;
875 topo_propval_t *pv = NULL;
906 if ((pv = propval_get(pgroup_get(node, pgname), pname)) == NULL)
907 if ((pv = prop_create(node, pgname, pname, ptype,
913 if (pv->tp_method != NULL)
917 if (pv->tp_val != NULL) {
918 nvlist_free(pv->tp_val);
919 pv->tp_val = NULL;
921 pv->tp_method = pm;
976 topo_propval_t *pv;
997 pv = pvl->tp_pval;
998 if (strcmp(pv->tp_name, pname) == 0) {
1000 assert(pv->tp_refs == 1);
1001 topo_prop_rele(pv);
1014 topo_propval_t *pv = NULL;
1017 if ((pv = propval_get(pgroup_get(node, pgname), pname)) == NULL) {
1027 if (pv->tp_refs > 1) {
1032 pv->tp_flag |= TOPO_PROP_MUTABLE;
1042 topo_propval_t *pv = NULL;
1045 if ((pv = propval_get(pgroup_get(node, pgname), pname)) == NULL) {
1051 pv->tp_flag |= TOPO_PROP_NONVOLATILE;
1075 topo_propval_t *pv;
1092 if ((pv = propval_get(pgroup_get(pnode, pgname), name)) == NULL)
1098 if (pv->tp_flag & TOPO_PROP_MUTABLE)
1112 topo_prop_hold(pv);
1113 pvl->tp_pval = pv;
1299 propmethod_destroy(topo_hdl_t *thp, topo_propval_t *pv)
1303 pm = pv->tp_method;
1309 pv->tp_method = NULL;
1314 topo_propval_destroy(topo_propval_t *pv)
1318 if (pv == NULL)
1321 thp = pv->tp_hdl;
1323 if (pv->tp_name != NULL)
1324 topo_hdl_strfree(thp, pv->tp_name);
1326 nvlist_free(pv->tp_val);
1328 propmethod_destroy(thp, pv);
1330 topo_hdl_free(thp, pv, sizeof (topo_propval_t));
1334 topo_prop_hold(topo_propval_t *pv)
1336 pv->tp_refs++;
1340 topo_prop_rele(topo_propval_t *pv)
1342 pv->tp_refs--;
1344 assert(pv->tp_refs >= 0);
1346 if (pv->tp_refs == 0)
1347 topo_propval_destroy(pv);
1359 topo_propval_t *pv;
1362 if ((pv = prop_get(node, pgname, pname, args, err)) == NULL) {
1367 if (topo_hdl_nvdup(thp, pv->tp_val, prop) != 0) {
1377 prop_val_add(tnode_t *node, nvlist_t **nvl, topo_propval_t *pv, int *err)
1379 if (pv->tp_method != NULL)
1380 if (prop_method_get(node, pv, pv->tp_method, NULL, err) < 0)
1383 if (pv->tp_val == NULL) {
1388 if (topo_hdl_nvdup(pv->tp_hdl, pv->tp_val, nvl) != 0) {
1416 topo_propval_t *pv;
1445 pv = pvl->tp_pval;
1446 if (prop_val_add(node, &pvnvl, pv, err) < 0) {
1487 topo_propval_t *pv;
1514 pv = pvl->tp_pval;
1515 if (prop_val_add(node, &pvnvl, pv, err) < 0) {