libnv: Remove nvlist argument from cnvlist_{take,free}_* functions.
All information which are need for those operations is already stored in the cookie. We decided not to bump libnv version because this API is not used yet in the base system. Reviewed by: pjd
This commit is contained in:
parent
9d5f6dd992
commit
0838a645fc
@ -575,7 +575,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_bool)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
ATF_REQUIRE_EQ(cnvlist_take_bool(nvl, cookie), value);
|
||||
ATF_REQUIRE_EQ(cnvlist_take_bool(cookie), value);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -618,7 +618,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_number)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
ATF_REQUIRE_EQ(cnvlist_take_number(nvl, cookie), value);
|
||||
ATF_REQUIRE_EQ(cnvlist_take_number(cookie), value);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -662,7 +662,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_string)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
out_string = cnvlist_take_string(nvl, cookie);
|
||||
out_string = cnvlist_take_string(cookie);
|
||||
ATF_REQUIRE(out_string != NULL);
|
||||
ATF_REQUIRE_EQ(strcmp(out_string, value), 0);
|
||||
|
||||
@ -725,7 +725,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_nvlist)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
result = cnvlist_take_nvlist(nvl, cookie);
|
||||
result = cnvlist_take_nvlist(cookie);
|
||||
ATF_REQUIRE(!nvlist_exists_nvlist(nvl, key));
|
||||
ATF_REQUIRE(result == value);
|
||||
|
||||
@ -784,7 +784,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_bool_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
out_array = cnvlist_take_bool_array(nvl, cookie, &nitems);
|
||||
out_array = cnvlist_take_bool_array(cookie, &nitems);
|
||||
ATF_REQUIRE_EQ(nitems, 16);
|
||||
ATF_REQUIRE(out_array != NULL);
|
||||
for (i = 0; i < 16; i++)
|
||||
@ -836,7 +836,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_number_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
out_array = cnvlist_take_number_array(nvl, cookie, &nitems);
|
||||
out_array = cnvlist_take_number_array(cookie, &nitems);
|
||||
|
||||
ATF_REQUIRE(out_array != NULL);
|
||||
ATF_REQUIRE_EQ(nitems, 16);
|
||||
@ -885,7 +885,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_string_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
out_array = cnvlist_take_string_array(nvl, cookie, &nitems);
|
||||
out_array = cnvlist_take_string_array(cookie, &nitems);
|
||||
ATF_REQUIRE_EQ(nitems, 4);
|
||||
for (i = 0; i < 4; i++) {
|
||||
ATF_REQUIRE(out_array[i] != NULL);
|
||||
@ -957,7 +957,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_nvlist_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
result = cnvlist_take_nvlist_array(nvl, cookie, &num_items);
|
||||
result = cnvlist_take_nvlist_array(cookie, &num_items);
|
||||
|
||||
ATF_REQUIRE(result != NULL);
|
||||
ATF_REQUIRE_EQ(num_items, 8);
|
||||
@ -1022,7 +1022,7 @@ ATF_TEST_CASE_BODY(cnvlist_take_binary)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
out_binary = cnvlist_take_binary(nvl, cookie, &out_size);
|
||||
out_binary = cnvlist_take_binary(cookie, &out_size);
|
||||
ATF_REQUIRE_EQ(out_size, in_size);
|
||||
ATF_REQUIRE_EQ(memcmp(in_binary, out_binary, out_size), 0);
|
||||
|
||||
@ -1069,7 +1069,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_bool)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_bool(nvl, cookie);
|
||||
cnvlist_free_bool(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1112,7 +1112,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_number)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_number(nvl, cookie);
|
||||
cnvlist_free_number(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1155,7 +1155,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_string)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_string(nvl, cookie);
|
||||
cnvlist_free_string(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1215,7 +1215,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_nvlist)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_nvlist(nvl, cookie);
|
||||
cnvlist_free_nvlist(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1262,7 +1262,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_binary)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_binary(nvl, cookie);
|
||||
cnvlist_free_binary(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1309,7 +1309,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_bool_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_bool_array(nvl, cookie);
|
||||
cnvlist_free_bool_array(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1354,7 +1354,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_number_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_number_array(nvl, cookie);
|
||||
cnvlist_free_number_array(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1396,7 +1396,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_string_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_string_array(nvl, cookie);
|
||||
cnvlist_free_string_array(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
@ -1459,7 +1459,7 @@ ATF_TEST_CASE_BODY(cnvlist_free_nvlist_array)
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(strcmp(key, nvlist_next(nvl, &type, &cookie)), 0);
|
||||
cnvlist_free_nvlist_array(nvl, cookie);
|
||||
cnvlist_free_nvlist_array(cookie);
|
||||
|
||||
cookie = NULL;
|
||||
ATF_REQUIRE_EQ(nvlist_error(nvl), 0);
|
||||
|
@ -66,52 +66,52 @@
|
||||
.Fn cnvlist_get_descriptor_array "const void *cookie" "size_t *nitemsp"
|
||||
.\"
|
||||
.Ft bool
|
||||
.Fn cnvlist_take_bool "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_take_bool "void *cookie"
|
||||
.Ft uint64_t
|
||||
.Fn cnvlist_take_number "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_take_number "void *cookie"
|
||||
.Ft "const char *"
|
||||
.Fn cnvlist_take_string "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_take_string "void *cookie"
|
||||
.Ft "const nvlist_t *"
|
||||
.Fn cnvlist_take_nvlist "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_take_nvlist "void *cookie"
|
||||
.Ft "const void *"
|
||||
.Fn cnvlist_take_binary "nvlist_t *nvl" "void *cookie" "size_t *sizep"
|
||||
.Fn cnvlist_take_binary "void *cookie" "size_t *sizep"
|
||||
.Ft "const bool *"
|
||||
.Fn cnvlist_take_bool_array "nvlist_t *nvl" "void *cookie" "size_t *nitemsp"
|
||||
.Fn cnvlist_take_bool_array "void *cookie" "size_t *nitemsp"
|
||||
.Ft "const uint64_t *"
|
||||
.Fn cnvlist_take_number_array "nvlist_t *nvl" "void *cookie" "size_t *nitemsp"
|
||||
.Fn cnvlist_take_number_array "void *cookie" "size_t *nitemsp"
|
||||
.Ft "const char * const *"
|
||||
.Fn cnvlist_take_string_array "nvlist_t *nvl" "void *cookie" "size_t *nitemsp"
|
||||
.Fn cnvlist_take_string_array "void *cookie" "size_t *nitemsp"
|
||||
.Ft "const nvlist_t * const *"
|
||||
.Fn cnvlist_take_nvlist_array "nvlist_t *nvl" "void *cookie" "size_t *nitemsp"
|
||||
.Fn cnvlist_take_nvlist_array "void *cookie" "size_t *nitemsp"
|
||||
.Ft int
|
||||
.Fn cnvlist_take_descriptor "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_take_descriptor "void *cookie"
|
||||
.Ft "const int *"
|
||||
.Fn cnvlist_take_descriptor_array "nvlist_t *nvl" "void *cookie" "size_t *nitemsp"
|
||||
.Fn cnvlist_take_descriptor_array "void *cookie" "size_t *nitemsp"
|
||||
.\"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_null "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_null "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_bool "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_bool "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_number "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_number "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_string "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_string "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_nvlist "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_nvlist "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_descriptor "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_descriptor "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_binary "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_binary "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_bool_array "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_bool_array "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_number_array "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_number_array "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_string_array "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_string_array "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_nvlist_array "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_nvlist_array "void *cookie"
|
||||
.Ft void
|
||||
.Fn cnvlist_free_descriptor_array "nvlist_t *nvl" "void *cookie"
|
||||
.Fn cnvlist_free_descriptor_array "void *cookie"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm libnv
|
||||
@ -192,8 +192,8 @@ while (nvlist_next(nvl, &type, &cookie) != NULL) {
|
||||
}
|
||||
}
|
||||
|
||||
name = cnvlist_take_string(nvl, scookie);
|
||||
cnvlist_free_bool(nvl, bcookie);
|
||||
name = cnvlist_take_string(scookie);
|
||||
cnvlist_free_bool(bcookie);
|
||||
|
||||
printf("test2: %s\\n", name);
|
||||
free(name);
|
||||
|
@ -124,14 +124,16 @@ cnvlist_get_binary(const void *cookie, size_t *sizep)
|
||||
|
||||
#define CNVLIST_TAKE(ftype, type, NVTYPE) \
|
||||
ftype \
|
||||
cnvlist_take_##type(nvlist_t *nvl, void *cookie) \
|
||||
cnvlist_take_##type(void *cookie) \
|
||||
{ \
|
||||
ftype value; \
|
||||
nvlist_t *nvl; \
|
||||
\
|
||||
if (nvpair_type(cookie) != NV_TYPE_##NVTYPE) { \
|
||||
nvlist_report_missing(NV_TYPE_##NVTYPE, \
|
||||
nvpair_name(cookie)); \
|
||||
} \
|
||||
nvl = nvpair_nvlist(cookie); \
|
||||
value = (ftype)(intptr_t)nvpair_get_##type(cookie); \
|
||||
nvlist_remove_nvpair(nvl, cookie); \
|
||||
nvpair_free_structure(cookie); \
|
||||
@ -150,14 +152,16 @@ CNVLIST_TAKE(int, descriptor, DESCRIPTOR)
|
||||
|
||||
#define CNVLIST_TAKE_ARRAY(ftype, type, NVTYPE) \
|
||||
ftype \
|
||||
cnvlist_take_##type(nvlist_t *nvl, void *cookie, size_t *nitemsp) \
|
||||
cnvlist_take_##type(void *cookie, size_t *nitemsp) \
|
||||
{ \
|
||||
ftype value; \
|
||||
nvlist_t *nvl; \
|
||||
\
|
||||
if (nvpair_type(cookie) != NV_TYPE_##NVTYPE) { \
|
||||
nvlist_report_missing(NV_TYPE_##NVTYPE, \
|
||||
nvpair_name(cookie)); \
|
||||
} \
|
||||
nvl = nvpair_nvlist(cookie); \
|
||||
value = (ftype)(intptr_t)nvpair_get_##type(cookie, nitemsp); \
|
||||
nvlist_remove_nvpair(nvl, cookie); \
|
||||
nvpair_free_structure(cookie); \
|
||||
@ -175,12 +179,14 @@ CNVLIST_TAKE_ARRAY(int *, descriptor_array, DESCRIPTOR_ARRAY);
|
||||
#undef CNVLIST_TAKE_ARRAY
|
||||
|
||||
void *
|
||||
cnvlist_take_binary(nvlist_t *nvl, void *cookie, size_t *sizep)
|
||||
cnvlist_take_binary(void *cookie, size_t *sizep)
|
||||
{
|
||||
void *value;
|
||||
nvlist_t *nvl;
|
||||
|
||||
if (nvpair_type(cookie) != NV_TYPE_BINARY)
|
||||
nvlist_report_missing(NV_TYPE_BINARY, nvpair_name(cookie));
|
||||
nvl = nvpair_nvlist(cookie);
|
||||
value = (void *)(intptr_t)nvpair_get_binary(cookie, sizep);
|
||||
nvlist_remove_nvpair(nvl, cookie);
|
||||
nvpair_free_structure(cookie);
|
||||
@ -190,10 +196,10 @@ cnvlist_take_binary(nvlist_t *nvl, void *cookie, size_t *sizep)
|
||||
|
||||
#define CNVLIST_FREE(type) \
|
||||
void \
|
||||
cnvlist_free_##type(nvlist_t *nvl, void *cookie) \
|
||||
cnvlist_free_##type(void *cookie) \
|
||||
{ \
|
||||
\
|
||||
nvlist_free_nvpair(nvl, cookie); \
|
||||
nvlist_free_nvpair(nvpair_nvlist(cookie), cookie); \
|
||||
}
|
||||
|
||||
CNVLIST_FREE(bool)
|
||||
|
@ -82,18 +82,18 @@ const int *cnvlist_get_descriptor_array(const void *cookie, size_t *nitemsp);
|
||||
* The caller is responsible for freeing received data.
|
||||
*/
|
||||
|
||||
bool cnvlist_take_bool(nvlist_t *nvl, void *cookie);
|
||||
uint64_t cnvlist_take_number(nvlist_t *nvl, void *cookie);
|
||||
char *cnvlist_take_string(nvlist_t *nvl, void *cookie);
|
||||
nvlist_t *cnvlist_take_nvlist(nvlist_t *nvl, void *cookie);
|
||||
void *cnvlist_take_binary(nvlist_t *nvl, void *cookie, size_t *sizep);
|
||||
bool *cnvlist_take_bool_array(nvlist_t *nvl, void *cookie, size_t *nitemsp);
|
||||
uint64_t *cnvlist_take_number_array(nvlist_t *nvl, void *cookie, size_t *nitemsp);
|
||||
char **cnvlist_take_string_array(nvlist_t *nvl, void *cookie, size_t *nitemsp);
|
||||
nvlist_t **cnvlist_take_nvlist_array(nvlist_t *nvl, void *cookie, size_t *nitemsp);
|
||||
bool cnvlist_take_bool(void *cookie);
|
||||
uint64_t cnvlist_take_number(void *cookie);
|
||||
char *cnvlist_take_string(void *cookie);
|
||||
nvlist_t *cnvlist_take_nvlist(void *cookie);
|
||||
void *cnvlist_take_binary(void *cookie, size_t *sizep);
|
||||
bool *cnvlist_take_bool_array(void *cookie, size_t *nitemsp);
|
||||
uint64_t *cnvlist_take_number_array(void *cookie, size_t *nitemsp);
|
||||
char **cnvlist_take_string_array(void *cookie, size_t *nitemsp);
|
||||
nvlist_t **cnvlist_take_nvlist_array(void *cookie, size_t *nitemsp);
|
||||
#ifndef _KERNEL
|
||||
int cnvlist_take_descriptor(nvlist_t *nvl, void *cookie);
|
||||
int *cnvlist_take_descriptor_array(nvlist_t *nvl, void *cookie, size_t *nitemsp);
|
||||
int cnvlist_take_descriptor(void *cookie);
|
||||
int *cnvlist_take_descriptor_array(void *cookie, size_t *nitemsp);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -101,18 +101,18 @@ int *cnvlist_take_descriptor_array(nvlist_t *nvl, void *cookie, size_t *nitem
|
||||
* and frees memory associated with it.
|
||||
*/
|
||||
|
||||
void cnvlist_free_bool(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_number(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_string(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_nvlist(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_binary(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_bool_array(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_number_array(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_string_array(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_nvlist_array(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_bool(void *cookie);
|
||||
void cnvlist_free_number(void *cookie);
|
||||
void cnvlist_free_string(void *cookie);
|
||||
void cnvlist_free_nvlist(void *cookie);
|
||||
void cnvlist_free_binary(void *cookie);
|
||||
void cnvlist_free_bool_array(void *cookie);
|
||||
void cnvlist_free_number_array(void *cookie);
|
||||
void cnvlist_free_string_array(void *cookie);
|
||||
void cnvlist_free_nvlist_array(void *cookie);
|
||||
#ifndef _KERNEL
|
||||
void cnvlist_free_descriptor(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_descriptor_array(nvlist_t *nvl, void *cookie);
|
||||
void cnvlist_free_descriptor(void *cookie);
|
||||
void cnvlist_free_descriptor_array(void *cookie);
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
Loading…
Reference in New Issue
Block a user