Lines Matching refs:nvl

130 static int nvlist_add_common(nvlist_t *nvl, const char *name, data_type_t type,
179 nvlist_lookup_nv_alloc(nvlist_t *nvl)
183 if (nvl == NULL ||
184 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
255 nvlist_init(nvlist_t *nvl, uint32_t nvflag, nvpriv_t *priv)
257 nvl->nvl_version = NV_VERSION;
258 nvl->nvl_nvflag = nvflag & (NV_UNIQUE_NAME|NV_UNIQUE_NAME_TYPE);
259 nvl->nvl_priv = (uint64_t)(uintptr_t)priv;
260 nvl->nvl_flag = 0;
261 nvl->nvl_pad = 0;
265 nvlist_nvflag(nvlist_t *nvl)
267 return (nvl->nvl_nvflag);
311 nvp_buf_alloc(nvlist_t *nvl, size_t len)
313 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
336 nvp_buf_free(nvlist_t *nvl, nvpair_t *nvp)
338 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
348 nvp_buf_link(nvlist_t *nvl, nvpair_t *nvp)
350 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
367 nvp_buf_unlink(nvlist_t *nvl, nvpair_t *nvp)
369 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
560 nvlist_free(nvlist_t *nvl)
565 if (nvl == NULL ||
566 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
578 nvp_buf_free(nvl, nvp);
582 nv_mem_free(priv, nvl, NV_ALIGN(sizeof (nvlist_t)));
584 nvl->nvl_priv = 0;
590 nvlist_contains_nvp(nvlist_t *nvl, nvpair_t *nvp)
592 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
610 nvlist_dup(nvlist_t *nvl, nvlist_t **nvlp, int kmflag)
613 return (nvlist_xdup(nvl, nvlp,
616 return (nvlist_xdup(nvl, nvlp, nv_alloc_nosleep));
621 nvlist_xdup(nvlist_t *nvl, nvlist_t **nvlp, nv_alloc_t *nva)
626 if (nvl == NULL || nvlp == NULL)
629 if ((err = nvlist_xalloc(&ret, nvl->nvl_nvflag, nva)) != 0)
632 if ((err = nvlist_copy_pairs(nvl, ret)) != 0)
644 nvlist_remove_all(nvlist_t *nvl, const char *name)
650 if (nvl == NULL || name == NULL ||
651 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
662 nvp_buf_unlink(nvl, nvp);
664 nvp_buf_free(nvl, nvp);
676 nvlist_remove(nvlist_t *nvl, const char *name, data_type_t type)
681 if (nvl == NULL || name == NULL ||
682 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
690 nvp_buf_unlink(nvl, nvp);
692 nvp_buf_free(nvl, nvp);
703 nvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *nvp)
705 if (nvl == NULL || nvp == NULL)
708 nvp_buf_unlink(nvl, nvp);
710 nvp_buf_free(nvl, nvp);
839 nvlist_copy_embedded(nvlist_t *nvl, nvlist_t *onvl, nvlist_t *emb_nvl)
845 nvl->nvl_priv)) == NULL)
862 nvlist_add_common(nvlist_t *nvl, const char *name,
871 if (name == NULL || nvl == NULL || nvl->nvl_priv == 0)
895 if (data == nvl || data == NULL)
901 if (onvlp[i] == nvl || onvlp[i] == NULL)
917 if ((nvp = nvp_buf_alloc(nvl, nvp_sz)) == NULL)
948 if ((err = nvlist_copy_embedded(nvl, onvl, nnvl)) != 0) {
949 nvp_buf_free(nvl, nvp);
961 if ((err = nvlist_copy_embedded(nvl,
967 nvp_buf_free(nvl, nvp);
980 if (nvl->nvl_nvflag & NV_UNIQUE_NAME)
981 (void) nvlist_remove_all(nvl, name);
982 else if (nvl->nvl_nvflag & NV_UNIQUE_NAME_TYPE)
983 (void) nvlist_remove(nvl, name, type);
985 nvp_buf_link(nvl, nvp);
991 nvlist_add_boolean(nvlist_t *nvl, const char *name)
993 return (nvlist_add_common(nvl, name, DATA_TYPE_BOOLEAN, 0, NULL));
997 nvlist_add_boolean_value(nvlist_t *nvl, const char *name, boolean_t val)
999 return (nvlist_add_common(nvl, name, DATA_TYPE_BOOLEAN_VALUE, 1, &val));
1003 nvlist_add_byte(nvlist_t *nvl, const char *name, uchar_t val)
1005 return (nvlist_add_common(nvl, name, DATA_TYPE_BYTE, 1, &val));
1009 nvlist_add_int8(nvlist_t *nvl, const char *name, int8_t val)
1011 return (nvlist_add_common(nvl, name, DATA_TYPE_INT8, 1, &val));
1015 nvlist_add_uint8(nvlist_t *nvl, const char *name, uint8_t val)
1017 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT8, 1, &val));
1021 nvlist_add_int16(nvlist_t *nvl, const char *name, int16_t val)
1023 return (nvlist_add_common(nvl, name, DATA_TYPE_INT16, 1, &val));
1027 nvlist_add_uint16(nvlist_t *nvl, const char *name, uint16_t val)
1029 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT16, 1, &val));
1033 nvlist_add_int32(nvlist_t *nvl, const char *name, int32_t val)
1035 return (nvlist_add_common(nvl, name, DATA_TYPE_INT32, 1, &val));
1039 nvlist_add_uint32(nvlist_t *nvl, const char *name, uint32_t val)
1041 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT32, 1, &val));
1045 nvlist_add_int64(nvlist_t *nvl, const char *name, int64_t val)
1047 return (nvlist_add_common(nvl, name, DATA_TYPE_INT64, 1, &val));
1051 nvlist_add_uint64(nvlist_t *nvl, const char *name, uint64_t val)
1053 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT64, 1, &val));
1058 nvlist_add_double(nvlist_t *nvl, const char *name, double val)
1060 return (nvlist_add_common(nvl, name, DATA_TYPE_DOUBLE, 1, &val));
1065 nvlist_add_string(nvlist_t *nvl, const char *name, const char *val)
1067 return (nvlist_add_common(nvl, name, DATA_TYPE_STRING, 1, (void *)val));
1071 nvlist_add_boolean_array(nvlist_t *nvl, const char *name,
1074 return (nvlist_add_common(nvl, name, DATA_TYPE_BOOLEAN_ARRAY, n, a));
1078 nvlist_add_byte_array(nvlist_t *nvl, const char *name, uchar_t *a, uint_t n)
1080 return (nvlist_add_common(nvl, name, DATA_TYPE_BYTE_ARRAY, n, a));
1084 nvlist_add_int8_array(nvlist_t *nvl, const char *name, int8_t *a, uint_t n)
1086 return (nvlist_add_common(nvl, name, DATA_TYPE_INT8_ARRAY, n, a));
1090 nvlist_add_uint8_array(nvlist_t *nvl, const char *name, uint8_t *a, uint_t n)
1092 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT8_ARRAY, n, a));
1096 nvlist_add_int16_array(nvlist_t *nvl, const char *name, int16_t *a, uint_t n)
1098 return (nvlist_add_common(nvl, name, DATA_TYPE_INT16_ARRAY, n, a));
1102 nvlist_add_uint16_array(nvlist_t *nvl, const char *name, uint16_t *a, uint_t n)
1104 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT16_ARRAY, n, a));
1108 nvlist_add_int32_array(nvlist_t *nvl, const char *name, int32_t *a, uint_t n)
1110 return (nvlist_add_common(nvl, name, DATA_TYPE_INT32_ARRAY, n, a));
1114 nvlist_add_uint32_array(nvlist_t *nvl, const char *name, uint32_t *a, uint_t n)
1116 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT32_ARRAY, n, a));
1120 nvlist_add_int64_array(nvlist_t *nvl, const char *name, int64_t *a, uint_t n)
1122 return (nvlist_add_common(nvl, name, DATA_TYPE_INT64_ARRAY, n, a));
1126 nvlist_add_uint64_array(nvlist_t *nvl, const char *name, uint64_t *a, uint_t n)
1128 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT64_ARRAY, n, a));
1132 nvlist_add_string_array(nvlist_t *nvl, const char *name,
1135 return (nvlist_add_common(nvl, name, DATA_TYPE_STRING_ARRAY, n, a));
1139 nvlist_add_hrtime(nvlist_t *nvl, const char *name, hrtime_t val)
1141 return (nvlist_add_common(nvl, name, DATA_TYPE_HRTIME, 1, &val));
1145 nvlist_add_nvlist(nvlist_t *nvl, const char *name, nvlist_t *val)
1147 return (nvlist_add_common(nvl, name, DATA_TYPE_NVLIST, 1, val));
1151 nvlist_add_nvlist_array(nvlist_t *nvl, const char *name, nvlist_t **a, uint_t n)
1153 return (nvlist_add_common(nvl, name, DATA_TYPE_NVLIST_ARRAY, n, a));
1158 nvlist_next_nvpair(nvlist_t *nvl, nvpair_t *nvp)
1163 if (nvl == NULL ||
1164 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1176 else if (priv->nvp_curr == curr || nvlist_contains_nvp(nvl, nvp))
1187 nvlist_prev_nvpair(nvlist_t *nvl, nvpair_t *nvp)
1192 if (nvl == NULL ||
1193 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1200 else if (priv->nvp_curr == curr || nvlist_contains_nvp(nvl, nvp))
1211 nvlist_empty(nvlist_t *nvl)
1215 if (nvl == NULL ||
1216 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1331 nvlist_lookup_common(nvlist_t *nvl, const char *name, data_type_t type,
1338 if (name == NULL || nvl == NULL ||
1339 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1342 if (!(nvl->nvl_nvflag & (NV_UNIQUE_NAME | NV_UNIQUE_NAME_TYPE)))
1356 nvlist_lookup_boolean(nvlist_t *nvl, const char *name)
1358 return (nvlist_lookup_common(nvl, name, DATA_TYPE_BOOLEAN, NULL, NULL));
1362 nvlist_lookup_boolean_value(nvlist_t *nvl, const char *name, boolean_t *val)
1364 return (nvlist_lookup_common(nvl, name,
1369 nvlist_lookup_byte(nvlist_t *nvl, const char *name, uchar_t *val)
1371 return (nvlist_lookup_common(nvl, name, DATA_TYPE_BYTE, NULL, val));
1375 nvlist_lookup_int8(nvlist_t *nvl, const char *name, int8_t *val)
1377 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT8, NULL, val));
1381 nvlist_lookup_uint8(nvlist_t *nvl, const char *name, uint8_t *val)
1383 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT8, NULL, val));
1387 nvlist_lookup_int16(nvlist_t *nvl, const char *name, int16_t *val)
1389 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT16, NULL, val));
1393 nvlist_lookup_uint16(nvlist_t *nvl, const char *name, uint16_t *val)
1395 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT16, NULL, val));
1399 nvlist_lookup_int32(nvlist_t *nvl, const char *name, int32_t *val)
1401 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT32, NULL, val));
1405 nvlist_lookup_uint32(nvlist_t *nvl, const char *name, uint32_t *val)
1407 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT32, NULL, val));
1411 nvlist_lookup_int64(nvlist_t *nvl, const char *name, int64_t *val)
1413 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT64, NULL, val));
1417 nvlist_lookup_uint64(nvlist_t *nvl, const char *name, uint64_t *val)
1419 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT64, NULL, val));
1424 nvlist_lookup_double(nvlist_t *nvl, const char *name, double *val)
1426 return (nvlist_lookup_common(nvl, name, DATA_TYPE_DOUBLE, NULL, val));
1431 nvlist_lookup_string(nvlist_t *nvl, const char *name, char **val)
1433 return (nvlist_lookup_common(nvl, name, DATA_TYPE_STRING, NULL, val));
1437 nvlist_lookup_nvlist(nvlist_t *nvl, const char *name, nvlist_t **val)
1439 return (nvlist_lookup_common(nvl, name, DATA_TYPE_NVLIST, NULL, val));
1443 nvlist_lookup_boolean_array(nvlist_t *nvl, const char *name,
1446 return (nvlist_lookup_common(nvl, name,
1451 nvlist_lookup_byte_array(nvlist_t *nvl, const char *name,
1454 return (nvlist_lookup_common(nvl, name, DATA_TYPE_BYTE_ARRAY, n, a));
1458 nvlist_lookup_int8_array(nvlist_t *nvl, const char *name, int8_t **a, uint_t *n)
1460 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT8_ARRAY, n, a));
1464 nvlist_lookup_uint8_array(nvlist_t *nvl, const char *name,
1467 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT8_ARRAY, n, a));
1471 nvlist_lookup_int16_array(nvlist_t *nvl, const char *name,
1474 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT16_ARRAY, n, a));
1478 nvlist_lookup_uint16_array(nvlist_t *nvl, const char *name,
1481 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT16_ARRAY, n, a));
1485 nvlist_lookup_int32_array(nvlist_t *nvl, const char *name,
1488 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT32_ARRAY, n, a));
1492 nvlist_lookup_uint32_array(nvlist_t *nvl, const char *name,
1495 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT32_ARRAY, n, a));
1499 nvlist_lookup_int64_array(nvlist_t *nvl, const char *name,
1502 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT64_ARRAY, n, a));
1506 nvlist_lookup_uint64_array(nvlist_t *nvl, const char *name,
1509 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT64_ARRAY, n, a));
1513 nvlist_lookup_string_array(nvlist_t *nvl, const char *name,
1516 return (nvlist_lookup_common(nvl, name, DATA_TYPE_STRING_ARRAY, n, a));
1520 nvlist_lookup_nvlist_array(nvlist_t *nvl, const char *name,
1523 return (nvlist_lookup_common(nvl, name, DATA_TYPE_NVLIST_ARRAY, n, a));
1527 nvlist_lookup_hrtime(nvlist_t *nvl, const char *name, hrtime_t *val)
1529 return (nvlist_lookup_common(nvl, name, DATA_TYPE_HRTIME, NULL, val));
1533 nvlist_lookup_pairs(nvlist_t *nvl, int flag, ...)
1548 ret = nvlist_lookup_common(nvl, name, type, NULL, NULL);
1568 ret = nvlist_lookup_common(nvl, name, type, NULL, val);
1585 ret = nvlist_lookup_common(nvl, name, type, nelem, val);
1601 * Find the 'name'ed nvpair in the nvlist 'nvl'. If 'name' found, the function
1616 nvlist_lookup_nvpair_ei_sep(nvlist_t *nvl, const char *name, const char sep,
1632 if ((nvl == NULL) || (name == NULL))
1640 if (!(nvl->nvl_nvflag & NV_UNIQUE_NAME))
1724 for (nvp = nvlist_next_nvpair(nvl, NULL); nvp != NULL;
1725 nvp = nvlist_next_nvpair(nvl, nvp)) {
1754 nvl = EMBEDDED_NVL(nvp);
1761 nvl = nva[idx];
1771 /* search for match of next component in embedded 'nvl' list */
1783 nvlist_lookup_nvpair(nvlist_t *nvl, const char *name, nvpair_t **ret)
1785 return (nvlist_lookup_nvpair_ei_sep(nvl, name, 0, ret, NULL, NULL));
1793 int nvlist_lookup_nvpair_embedded_index(nvlist_t *nvl,
1796 return (nvlist_lookup_nvpair_ei_sep(nvl, name, '.', ret, ip, ep));
1800 nvlist_exists(nvlist_t *nvl, const char *name)
1806 if (name == NULL || nvl == NULL ||
1807 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1982 nvlist_add_nvpair(nvlist_t *nvl, nvpair_t *nvp)
1984 if (nvl == NULL || nvp == NULL)
1987 return (nvlist_add_common(nvl, NVP_NAME(nvp), NVP_TYPE(nvp),
1994 * the values are taken from nvl in the case of duplicates.
1999 nvlist_merge(nvlist_t *dst, nvlist_t *nvl, int flag)
2001 if (nvl == NULL || dst == NULL)
2004 if (dst != nvl)
2005 return (nvlist_copy_pairs(nvl, dst));
2062 nvs_encode_pairs(nvstream_t *nvs, nvlist_t *nvl)
2064 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
2078 nvs_decode_pairs(nvstream_t *nvs, nvlist_t *nvl)
2096 if ((nvp = nvp_buf_alloc(nvl, nvsize)) == NULL)
2100 nvp_buf_free(nvl, nvp);
2106 nvp_buf_free(nvl, nvp);
2110 nvp_buf_link(nvl, nvp);
2116 nvs_getsize_pairs(nvstream_t *nvs, nvlist_t *nvl, size_t *buflen)
2118 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
2139 nvs_operation(nvstream_t *nvs, nvlist_t *nvl, size_t *buflen)
2143 if (nvl->nvl_priv == 0)
2149 if ((err = nvs->nvs_ops->nvs_nvlist(nvs, nvl, buflen)) != 0)
2154 err = nvs_encode_pairs(nvs, nvl);
2158 err = nvs_decode_pairs(nvs, nvl);
2162 err = nvs_getsize_pairs(nvs, nvl, buflen);
2273 nvlist_common(nvlist_t *nvl, char *buf, size_t *buflen, int encoding,
2286 if (buflen == NULL || nvl == NULL ||
2287 (nvs.nvs_priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
2342 err = nvs_native(&nvs, nvl, buf, buflen);
2345 err = nvs_xdr(&nvs, nvl, buf, buflen);
2356 nvlist_size(nvlist_t *nvl, size_t *size, int encoding)
2358 return (nvlist_common(nvl, NULL, size, encoding, NVS_OP_GETSIZE));
2366 nvlist_pack(nvlist_t *nvl, char **bufp, size_t *buflen, int encoding,
2370 return (nvlist_xpack(nvl, bufp, buflen, encoding,
2373 return (nvlist_xpack(nvl, bufp, buflen, encoding, nv_alloc_nosleep));
2378 nvlist_xpack(nvlist_t *nvl, char **bufp, size_t *buflen, int encoding,
2386 if (nva == NULL || nvl == NULL || bufp == NULL || buflen == NULL)
2390 return (nvlist_common(nvl, *bufp, buflen, encoding,
2407 if ((err = nvlist_size(nvl, &alloc_size, encoding)))
2413 if ((err = nvlist_common(nvl, buf, &alloc_size, encoding,
2442 nvlist_t *nvl;
2448 if ((err = nvlist_xalloc(&nvl, 0, nva)) != 0)
2451 if ((err = nvlist_common(nvl, buf, &buflen, 0, NVS_OP_DECODE)) != 0)
2452 nvlist_free(nvl);
2454 *nvlp = nvl;
2539 nvs_native_nvlist(nvstream_t *nvs, nvlist_t *nvl, size_t *size)
2552 if (native_cp(nvs, &nvl->nvl_version, sizeof (int32_t)) != 0 ||
2553 native_cp(nvs, &nvl->nvl_nvflag, sizeof (int32_t)) != 0)
2816 nvs_native(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
2827 err = nvs_operation(nvs, nvl, buflen);
2892 nvs_xdr_nvlist(nvstream_t *nvs, nvlist_t *nvl, size_t *size)
2899 if (!xdr_int(xdr, &nvl->nvl_version) ||
2900 !xdr_u_int(xdr, &nvl->nvl_nvflag))
3303 nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
3314 err = nvs_operation(nvs, nvl, buflen);