Lines Matching defs:pv

121 prop_method_get(tnode_t *node, topo_propval_t *pv, topo_propmethod_t *pm,
129 if (topo_hdl_nvalloc(pv->tp_hdl, &args, NV_UNIQUE_NAME) < 0 ||
145 topo_prop_hold(pv);
150 topo_prop_rele(pv);
154 topo_prop_rele(pv);
160 if (ret != 0 || strcmp(name, pv->tp_name) != 0)
164 if (ret != 0 || type != pv->tp_type)
168 if (pv->tp_val != NULL)
169 nvlist_free(pv->tp_val);
170 pv->tp_val = nvl;
179 topo_propval_t *pv = NULL;
181 if ((pv = propval_get(pgroup_get(node, pgname), pname)) == NULL) {
186 if (pv->tp_flag & TOPO_PROP_NONVOLATILE && pv->tp_val != NULL)
187 return (pv);
189 if (pv->tp_method != NULL) {
190 if (prop_method_get(node, pv, pv->tp_method, pargs, err) < 0)
194 return (pv);
211 topo_propval_t *pv;
214 if ((pv = prop_get(node, pgname, pname, NULL, err))
218 if (pv->tp_type != type)
223 ret = nvlist_lookup_int32(pv->tp_val, TOPO_PROP_VAL_VAL,
227 ret = nvlist_lookup_uint32(pv->tp_val,
231 ret = nvlist_lookup_int64(pv->tp_val, TOPO_PROP_VAL_VAL,
235 ret = nvlist_lookup_uint64(pv->tp_val,
239 ret = nvlist_lookup_double(pv->tp_val,
245 ret = nvlist_lookup_string(pv->tp_val,
259 ret = nvlist_lookup_nvlist(pv->tp_val,
269 if ((ret = nvlist_lookup_int32_array(pv->tp_val,
285 if ((ret = nvlist_lookup_uint32_array(pv->tp_val,
301 if ((ret = nvlist_lookup_int64_array(pv->tp_val,
317 if ((ret = nvlist_lookup_uint64_array(pv->tp_val,
333 if ((ret = nvlist_lookup_string_array(pv->tp_val,
358 if ((ret = nvlist_lookup_nvlist_array(pv->tp_val,
502 topo_propval_t *pv;
505 pv = pvl->tp_pval;
506 topo_propval_destroy(pv);
522 topo_propval_t *pv;
534 if ((pv = propval_get(pg, pname)) != NULL) {
535 if (pv->tp_type != type)
537 else if (! (pv->tp_flag & TOPO_PROP_MUTABLE))
540 nvlist_free(pv->tp_val);
541 pv->tp_val = NULL;
547 if ((pv = topo_hdl_zalloc(thp, sizeof (topo_propval_t)))
551 pv->tp_hdl = thp;
552 pvl->tp_pval = pv;
554 if ((pv->tp_name = topo_hdl_strdup(thp, pname))
557 pv->tp_flag = flag;
558 pv->tp_type = type;
559 topo_prop_hold(pv);
563 return (pv);
768 topo_propval_t *pv;
784 if ((pv = prop_create(node, pgname, name, type, flag, err)) == NULL)
791 if (pv->tp_method != NULL) {
792 topo_propmethod_t *pm = pv->tp_method;
794 if (topo_hdl_nvalloc(pv->tp_hdl, &args, NV_UNIQUE_NAME) < 0) {
823 topo_prop_hold(pv);
828 topo_prop_rele(pv);
841 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;
1310 pv->tp_method = NULL;
1315 topo_propval_destroy(topo_propval_t *pv)
1319 if (pv == NULL)
1322 thp = pv->tp_hdl;
1324 if (pv->tp_name != NULL)
1325 topo_hdl_strfree(thp, pv->tp_name);
1327 if (pv->tp_val != NULL)
1328 nvlist_free(pv->tp_val);
1330 propmethod_destroy(thp, pv);
1332 topo_hdl_free(thp, pv, sizeof (topo_propval_t));
1336 topo_prop_hold(topo_propval_t *pv)
1338 pv->tp_refs++;
1342 topo_prop_rele(topo_propval_t *pv)
1344 pv->tp_refs--;
1346 assert(pv->tp_refs >= 0);
1348 if (pv->tp_refs == 0)
1349 topo_propval_destroy(pv);
1361 topo_propval_t *pv;
1364 if ((pv = prop_get(node, pgname, pname, args, err)) == NULL) {
1369 if (topo_hdl_nvdup(thp, pv->tp_val, prop) != 0) {
1379 prop_val_add(tnode_t *node, nvlist_t **nvl, topo_propval_t *pv, int *err)
1381 if (pv->tp_method != NULL)
1382 if (prop_method_get(node, pv, pv->tp_method, NULL, err) < 0)
1385 if (pv->tp_val == NULL) {
1390 if (topo_hdl_nvdup(pv->tp_hdl, pv->tp_val, nvl) != 0) {
1419 topo_propval_t *pv;
1448 pv = pvl->tp_pval;
1449 if (prop_val_add(node, &pvnvl, pv, err) < 0) {
1491 topo_propval_t *pv;
1518 pv = pvl->tp_pval;
1519 if (prop_val_add(node, &pvnvl, pv, err) < 0) {