Lines Matching defs:nvl

129 static int nvlist_add_common(nvlist_t *nvl, const char *name, data_type_t type,
173 nvlist_lookup_nv_alloc(nvlist_t *nvl)
177 if (nvl == NULL ||
178 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
249 nvlist_init(nvlist_t *nvl, uint32_t nvflag, nvpriv_t *priv)
251 nvl->nvl_version = NV_VERSION;
252 nvl->nvl_nvflag = nvflag & (NV_UNIQUE_NAME|NV_UNIQUE_NAME_TYPE);
253 nvl->nvl_priv = (uint64_t)(uintptr_t)priv;
254 nvl->nvl_flag = 0;
255 nvl->nvl_pad = 0;
259 nvlist_nvflag(nvlist_t *nvl)
261 return (nvl->nvl_nvflag);
305 nvp_buf_alloc(nvlist_t *nvl, size_t len)
307 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
330 nvp_buf_free(nvlist_t *nvl, nvpair_t *nvp)
332 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
342 nvp_buf_link(nvlist_t *nvl, nvpair_t *nvp)
344 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
361 nvp_buf_unlink(nvlist_t *nvl, nvpair_t *nvp)
363 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
554 nvlist_free(nvlist_t *nvl)
559 if (nvl == NULL ||
560 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
572 nvp_buf_free(nvl, nvp);
576 nv_mem_free(priv, nvl, NV_ALIGN(sizeof (nvlist_t)));
578 nvl->nvl_priv = 0;
584 nvlist_contains_nvp(nvlist_t *nvl, nvpair_t *nvp)
586 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
604 nvlist_dup(nvlist_t *nvl, nvlist_t **nvlp, int kmflag)
607 return (nvlist_xdup(nvl, nvlp,
610 return (nvlist_xdup(nvl, nvlp, nv_alloc_nosleep));
615 nvlist_xdup(nvlist_t *nvl, nvlist_t **nvlp, nv_alloc_t *nva)
620 if (nvl == NULL || nvlp == NULL)
623 if ((err = nvlist_xalloc(&ret, nvl->nvl_nvflag, nva)) != 0)
626 if ((err = nvlist_copy_pairs(nvl, ret)) != 0)
638 nvlist_remove_all(nvlist_t *nvl, const char *name)
644 if (nvl == NULL || name == NULL ||
645 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
656 nvp_buf_unlink(nvl, nvp);
658 nvp_buf_free(nvl, nvp);
670 nvlist_remove(nvlist_t *nvl, const char *name, data_type_t type)
675 if (nvl == NULL || name == NULL ||
676 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
684 nvp_buf_unlink(nvl, nvp);
686 nvp_buf_free(nvl, nvp);
697 nvlist_remove_nvpair(nvlist_t *nvl, nvpair_t *nvp)
699 if (nvl == NULL || nvp == NULL)
702 nvp_buf_unlink(nvl, nvp);
704 nvp_buf_free(nvl, nvp);
833 nvlist_copy_embedded(nvlist_t *nvl, nvlist_t *onvl, nvlist_t *emb_nvl)
839 nvl->nvl_priv)) == NULL)
856 nvlist_add_common(nvlist_t *nvl, const char *name,
865 if (name == NULL || nvl == NULL || nvl->nvl_priv == 0)
889 if (data == nvl || data == NULL)
895 if (onvlp[i] == nvl || onvlp[i] == NULL)
909 if ((nvp = nvp_buf_alloc(nvl, nvp_sz)) == NULL)
940 if ((err = nvlist_copy_embedded(nvl, onvl, nnvl)) != 0) {
941 nvp_buf_free(nvl, nvp);
953 if ((err = nvlist_copy_embedded(nvl,
959 nvp_buf_free(nvl, nvp);
972 if (nvl->nvl_nvflag & NV_UNIQUE_NAME)
973 (void) nvlist_remove_all(nvl, name);
974 else if (nvl->nvl_nvflag & NV_UNIQUE_NAME_TYPE)
975 (void) nvlist_remove(nvl, name, type);
977 nvp_buf_link(nvl, nvp);
983 nvlist_add_boolean(nvlist_t *nvl, const char *name)
985 return (nvlist_add_common(nvl, name, DATA_TYPE_BOOLEAN, 0, NULL));
989 nvlist_add_boolean_value(nvlist_t *nvl, const char *name, boolean_t val)
991 return (nvlist_add_common(nvl, name, DATA_TYPE_BOOLEAN_VALUE, 1, &val));
995 nvlist_add_byte(nvlist_t *nvl, const char *name, uchar_t val)
997 return (nvlist_add_common(nvl, name, DATA_TYPE_BYTE, 1, &val));
1001 nvlist_add_int8(nvlist_t *nvl, const char *name, int8_t val)
1003 return (nvlist_add_common(nvl, name, DATA_TYPE_INT8, 1, &val));
1007 nvlist_add_uint8(nvlist_t *nvl, const char *name, uint8_t val)
1009 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT8, 1, &val));
1013 nvlist_add_int16(nvlist_t *nvl, const char *name, int16_t val)
1015 return (nvlist_add_common(nvl, name, DATA_TYPE_INT16, 1, &val));
1019 nvlist_add_uint16(nvlist_t *nvl, const char *name, uint16_t val)
1021 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT16, 1, &val));
1025 nvlist_add_int32(nvlist_t *nvl, const char *name, int32_t val)
1027 return (nvlist_add_common(nvl, name, DATA_TYPE_INT32, 1, &val));
1031 nvlist_add_uint32(nvlist_t *nvl, const char *name, uint32_t val)
1033 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT32, 1, &val));
1037 nvlist_add_int64(nvlist_t *nvl, const char *name, int64_t val)
1039 return (nvlist_add_common(nvl, name, DATA_TYPE_INT64, 1, &val));
1043 nvlist_add_uint64(nvlist_t *nvl, const char *name, uint64_t val)
1045 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT64, 1, &val));
1050 nvlist_add_double(nvlist_t *nvl, const char *name, double val)
1052 return (nvlist_add_common(nvl, name, DATA_TYPE_DOUBLE, 1, &val));
1057 nvlist_add_string(nvlist_t *nvl, const char *name, const char *val)
1059 return (nvlist_add_common(nvl, name, DATA_TYPE_STRING, 1, (void *)val));
1063 nvlist_add_boolean_array(nvlist_t *nvl, const char *name,
1066 return (nvlist_add_common(nvl, name, DATA_TYPE_BOOLEAN_ARRAY, n, a));
1070 nvlist_add_byte_array(nvlist_t *nvl, const char *name, uchar_t *a, uint_t n)
1072 return (nvlist_add_common(nvl, name, DATA_TYPE_BYTE_ARRAY, n, a));
1076 nvlist_add_int8_array(nvlist_t *nvl, const char *name, int8_t *a, uint_t n)
1078 return (nvlist_add_common(nvl, name, DATA_TYPE_INT8_ARRAY, n, a));
1082 nvlist_add_uint8_array(nvlist_t *nvl, const char *name, uint8_t *a, uint_t n)
1084 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT8_ARRAY, n, a));
1088 nvlist_add_int16_array(nvlist_t *nvl, const char *name, int16_t *a, uint_t n)
1090 return (nvlist_add_common(nvl, name, DATA_TYPE_INT16_ARRAY, n, a));
1094 nvlist_add_uint16_array(nvlist_t *nvl, const char *name, uint16_t *a, uint_t n)
1096 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT16_ARRAY, n, a));
1100 nvlist_add_int32_array(nvlist_t *nvl, const char *name, int32_t *a, uint_t n)
1102 return (nvlist_add_common(nvl, name, DATA_TYPE_INT32_ARRAY, n, a));
1106 nvlist_add_uint32_array(nvlist_t *nvl, const char *name, uint32_t *a, uint_t n)
1108 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT32_ARRAY, n, a));
1112 nvlist_add_int64_array(nvlist_t *nvl, const char *name, int64_t *a, uint_t n)
1114 return (nvlist_add_common(nvl, name, DATA_TYPE_INT64_ARRAY, n, a));
1118 nvlist_add_uint64_array(nvlist_t *nvl, const char *name, uint64_t *a, uint_t n)
1120 return (nvlist_add_common(nvl, name, DATA_TYPE_UINT64_ARRAY, n, a));
1124 nvlist_add_string_array(nvlist_t *nvl, const char *name,
1127 return (nvlist_add_common(nvl, name, DATA_TYPE_STRING_ARRAY, n, a));
1131 nvlist_add_hrtime(nvlist_t *nvl, const char *name, hrtime_t val)
1133 return (nvlist_add_common(nvl, name, DATA_TYPE_HRTIME, 1, &val));
1137 nvlist_add_nvlist(nvlist_t *nvl, const char *name, nvlist_t *val)
1139 return (nvlist_add_common(nvl, name, DATA_TYPE_NVLIST, 1, val));
1143 nvlist_add_nvlist_array(nvlist_t *nvl, const char *name, nvlist_t **a, uint_t n)
1145 return (nvlist_add_common(nvl, name, DATA_TYPE_NVLIST_ARRAY, n, a));
1150 nvlist_next_nvpair(nvlist_t *nvl, nvpair_t *nvp)
1155 if (nvl == NULL ||
1156 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1168 else if (priv->nvp_curr == curr || nvlist_contains_nvp(nvl, nvp))
1179 nvlist_prev_nvpair(nvlist_t *nvl, nvpair_t *nvp)
1184 if (nvl == NULL ||
1185 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1192 else if (priv->nvp_curr == curr || nvlist_contains_nvp(nvl, nvp))
1203 nvlist_empty(nvlist_t *nvl)
1207 if (nvl == NULL ||
1208 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1323 nvlist_lookup_common(nvlist_t *nvl, const char *name, data_type_t type,
1330 if (name == NULL || nvl == NULL ||
1331 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1334 if (!(nvl->nvl_nvflag & (NV_UNIQUE_NAME | NV_UNIQUE_NAME_TYPE)))
1348 nvlist_lookup_boolean(nvlist_t *nvl, const char *name)
1350 return (nvlist_lookup_common(nvl, name, DATA_TYPE_BOOLEAN, NULL, NULL));
1354 nvlist_lookup_boolean_value(nvlist_t *nvl, const char *name, boolean_t *val)
1356 return (nvlist_lookup_common(nvl, name,
1361 nvlist_lookup_byte(nvlist_t *nvl, const char *name, uchar_t *val)
1363 return (nvlist_lookup_common(nvl, name, DATA_TYPE_BYTE, NULL, val));
1367 nvlist_lookup_int8(nvlist_t *nvl, const char *name, int8_t *val)
1369 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT8, NULL, val));
1373 nvlist_lookup_uint8(nvlist_t *nvl, const char *name, uint8_t *val)
1375 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT8, NULL, val));
1379 nvlist_lookup_int16(nvlist_t *nvl, const char *name, int16_t *val)
1381 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT16, NULL, val));
1385 nvlist_lookup_uint16(nvlist_t *nvl, const char *name, uint16_t *val)
1387 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT16, NULL, val));
1391 nvlist_lookup_int32(nvlist_t *nvl, const char *name, int32_t *val)
1393 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT32, NULL, val));
1397 nvlist_lookup_uint32(nvlist_t *nvl, const char *name, uint32_t *val)
1399 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT32, NULL, val));
1403 nvlist_lookup_int64(nvlist_t *nvl, const char *name, int64_t *val)
1405 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT64, NULL, val));
1409 nvlist_lookup_uint64(nvlist_t *nvl, const char *name, uint64_t *val)
1411 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT64, NULL, val));
1416 nvlist_lookup_double(nvlist_t *nvl, const char *name, double *val)
1418 return (nvlist_lookup_common(nvl, name, DATA_TYPE_DOUBLE, NULL, val));
1423 nvlist_lookup_string(nvlist_t *nvl, const char *name, char **val)
1425 return (nvlist_lookup_common(nvl, name, DATA_TYPE_STRING, NULL, val));
1429 nvlist_lookup_nvlist(nvlist_t *nvl, const char *name, nvlist_t **val)
1431 return (nvlist_lookup_common(nvl, name, DATA_TYPE_NVLIST, NULL, val));
1435 nvlist_lookup_boolean_array(nvlist_t *nvl, const char *name,
1438 return (nvlist_lookup_common(nvl, name,
1443 nvlist_lookup_byte_array(nvlist_t *nvl, const char *name,
1446 return (nvlist_lookup_common(nvl, name, DATA_TYPE_BYTE_ARRAY, n, a));
1450 nvlist_lookup_int8_array(nvlist_t *nvl, const char *name, int8_t **a, uint_t *n)
1452 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT8_ARRAY, n, a));
1456 nvlist_lookup_uint8_array(nvlist_t *nvl, const char *name,
1459 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT8_ARRAY, n, a));
1463 nvlist_lookup_int16_array(nvlist_t *nvl, const char *name,
1466 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT16_ARRAY, n, a));
1470 nvlist_lookup_uint16_array(nvlist_t *nvl, const char *name,
1473 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT16_ARRAY, n, a));
1477 nvlist_lookup_int32_array(nvlist_t *nvl, const char *name,
1480 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT32_ARRAY, n, a));
1484 nvlist_lookup_uint32_array(nvlist_t *nvl, const char *name,
1487 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT32_ARRAY, n, a));
1491 nvlist_lookup_int64_array(nvlist_t *nvl, const char *name,
1494 return (nvlist_lookup_common(nvl, name, DATA_TYPE_INT64_ARRAY, n, a));
1498 nvlist_lookup_uint64_array(nvlist_t *nvl, const char *name,
1501 return (nvlist_lookup_common(nvl, name, DATA_TYPE_UINT64_ARRAY, n, a));
1505 nvlist_lookup_string_array(nvlist_t *nvl, const char *name,
1508 return (nvlist_lookup_common(nvl, name, DATA_TYPE_STRING_ARRAY, n, a));
1512 nvlist_lookup_nvlist_array(nvlist_t *nvl, const char *name,
1515 return (nvlist_lookup_common(nvl, name, DATA_TYPE_NVLIST_ARRAY, n, a));
1519 nvlist_lookup_hrtime(nvlist_t *nvl, const char *name, hrtime_t *val)
1521 return (nvlist_lookup_common(nvl, name, DATA_TYPE_HRTIME, NULL, val));
1525 nvlist_lookup_pairs(nvlist_t *nvl, int flag, ...)
1540 ret = nvlist_lookup_common(nvl, name, type, NULL, NULL);
1560 ret = nvlist_lookup_common(nvl, name, type, NULL, val);
1577 ret = nvlist_lookup_common(nvl, name, type, nelem, val);
1593 * Find the 'name'ed nvpair in the nvlist 'nvl'. If 'name' found, the function
1608 nvlist_lookup_nvpair_ei_sep(nvlist_t *nvl, const char *name, const char sep,
1624 if ((nvl == NULL) || (name == NULL))
1632 if (!(nvl->nvl_nvflag & NV_UNIQUE_NAME))
1716 for (nvp = nvlist_next_nvpair(nvl, NULL); nvp != NULL;
1717 nvp = nvlist_next_nvpair(nvl, nvp)) {
1746 nvl = EMBEDDED_NVL(nvp);
1753 nvl = nva[idx];
1763 /* search for match of next component in embedded 'nvl' list */
1775 nvlist_lookup_nvpair(nvlist_t *nvl, const char *name, nvpair_t **ret)
1777 return (nvlist_lookup_nvpair_ei_sep(nvl, name, 0, ret, NULL, NULL));
1785 int nvlist_lookup_nvpair_embedded_index(nvlist_t *nvl,
1788 return (nvlist_lookup_nvpair_ei_sep(nvl, name, '.', ret, ip, ep));
1792 nvlist_exists(nvlist_t *nvl, const char *name)
1798 if (name == NULL || nvl == NULL ||
1799 (priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
1974 nvlist_add_nvpair(nvlist_t *nvl, nvpair_t *nvp)
1976 if (nvl == NULL || nvp == NULL)
1979 return (nvlist_add_common(nvl, NVP_NAME(nvp), NVP_TYPE(nvp),
1986 * the values are taken from nvl in the case of duplicates.
1991 nvlist_merge(nvlist_t *dst, nvlist_t *nvl, int flag)
1993 if (nvl == NULL || dst == NULL)
1996 if (dst != nvl)
1997 return (nvlist_copy_pairs(nvl, dst));
2053 nvs_encode_pairs(nvstream_t *nvs, nvlist_t *nvl)
2055 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
2069 nvs_decode_pairs(nvstream_t *nvs, nvlist_t *nvl)
2087 if ((nvp = nvp_buf_alloc(nvl, nvsize)) == NULL)
2091 nvp_buf_free(nvl, nvp);
2097 nvp_buf_free(nvl, nvp);
2101 nvp_buf_link(nvl, nvp);
2107 nvs_getsize_pairs(nvstream_t *nvs, nvlist_t *nvl, size_t *buflen)
2109 nvpriv_t *priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv;
2130 nvs_operation(nvstream_t *nvs, nvlist_t *nvl, size_t *buflen)
2134 if (nvl->nvl_priv == 0)
2140 if ((err = nvs->nvs_ops->nvs_nvlist(nvs, nvl, buflen)) != 0)
2145 err = nvs_encode_pairs(nvs, nvl);
2149 err = nvs_decode_pairs(nvs, nvl);
2153 err = nvs_getsize_pairs(nvs, nvl, buflen);
2253 nvlist_common(nvlist_t *nvl, char *buf, size_t *buflen, int encoding,
2266 if (buflen == NULL || nvl == NULL ||
2267 (nvs.nvs_priv = (nvpriv_t *)(uintptr_t)nvl->nvl_priv) == NULL)
2321 err = nvs_native(&nvs, nvl, buf, buflen);
2324 err = nvs_xdr(&nvs, nvl, buf, buflen);
2335 nvlist_size(nvlist_t *nvl, size_t *size, int encoding)
2337 return (nvlist_common(nvl, NULL, size, encoding, NVS_OP_GETSIZE));
2345 nvlist_pack(nvlist_t *nvl, char **bufp, size_t *buflen, int encoding,
2349 return (nvlist_xpack(nvl, bufp, buflen, encoding,
2352 return (nvlist_xpack(nvl, bufp, buflen, encoding, nv_alloc_nosleep));
2357 nvlist_xpack(nvlist_t *nvl, char **bufp, size_t *buflen, int encoding,
2365 if (nva == NULL || nvl == NULL || bufp == NULL || buflen == NULL)
2369 return (nvlist_common(nvl, *bufp, buflen, encoding,
2386 if ((err = nvlist_size(nvl, &alloc_size, encoding)))
2392 if ((err = nvlist_common(nvl, buf, &alloc_size, encoding,
2421 nvlist_t *nvl;
2427 if ((err = nvlist_xalloc(&nvl, 0, nva)) != 0)
2430 if ((err = nvlist_common(nvl, buf, &buflen, 0, NVS_OP_DECODE)) != 0)
2431 nvlist_free(nvl);
2433 *nvlp = nvl;
2518 nvs_native_nvlist(nvstream_t *nvs, nvlist_t *nvl, size_t *size)
2531 if (native_cp(nvs, &nvl->nvl_version, sizeof (int32_t)) != 0 ||
2532 native_cp(nvs, &nvl->nvl_nvflag, sizeof (int32_t)) != 0)
2795 nvs_native(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
2806 err = nvs_operation(nvs, nvl, buflen);
2871 nvs_xdr_nvlist(nvstream_t *nvs, nvlist_t *nvl, size_t *size)
2878 if (!xdr_int(xdr, &nvl->nvl_version) ||
2879 !xdr_u_int(xdr, &nvl->nvl_nvflag))
3282 nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
3293 err = nvs_operation(nvs, nvl, buflen);