| 1346 | } |
| 1347 | |
| 1348 | nvpair_t * |
| 1349 | nvpair_create_number_array(const char *name, const uint64_t *value, |
| 1350 | size_t nitems) |
| 1351 | { |
| 1352 | nvpair_t *nvp; |
| 1353 | size_t size; |
| 1354 | void *data; |
| 1355 | |
| 1356 | if (value == NULL || nitems == 0) { |
| 1357 | ERRNO_SET(EINVAL); |
| 1358 | return (NULL); |
| 1359 | } |
| 1360 | |
| 1361 | size = sizeof(value[0]) * nitems; |
| 1362 | data = nv_malloc(size); |
| 1363 | if (data == NULL) |
| 1364 | return (NULL); |
| 1365 | |
| 1366 | memcpy(data, value, size); |
| 1367 | nvp = nvpair_allocv(name, NV_TYPE_NUMBER_ARRAY, |
| 1368 | (uint64_t)(uintptr_t)data, size, nitems); |
| 1369 | if (nvp == NULL) { |
| 1370 | ERRNO_SAVE(); |
| 1371 | nv_free(data); |
| 1372 | ERRNO_RESTORE(); |
| 1373 | } |
| 1374 | |
| 1375 | return (nvp); |
| 1376 | } |
| 1377 | |
| 1378 | nvpair_t * |
| 1379 | nvpair_create_string_array(const char *name, const char * const *value, |
no test coverage detected