Lines Matching refs:nv

86 struct nv {  struct
107 #define NV_CHECK(nv) do { \ argument
108 PJDLOG_ASSERT((nv) != NULL); \
109 PJDLOG_ASSERT((nv)->nv_magic == NV_MAGIC); \
112 static void nv_add(struct nv *nv, const unsigned char *value, size_t vsize,
114 static void nv_addv(struct nv *nv, const unsigned char *value, size_t vsize,
116 static struct nvhdr *nv_find(struct nv *nv, int type, const char *namefmt,
124 struct nv *
127 struct nv *nv; in nv_alloc() local
129 nv = malloc(sizeof(*nv)); in nv_alloc()
130 if (nv == NULL) in nv_alloc()
132 nv->nv_ebuf = ebuf_alloc(0); in nv_alloc()
133 if (nv->nv_ebuf == NULL) { in nv_alloc()
134 free(nv); in nv_alloc()
137 nv->nv_error = 0; in nv_alloc()
138 nv->nv_magic = NV_MAGIC; in nv_alloc()
139 return (nv); in nv_alloc()
146 nv_free(struct nv *nv) in nv_free() argument
149 if (nv == NULL) in nv_free()
152 NV_CHECK(nv); in nv_free()
154 nv->nv_magic = 0; in nv_free()
155 ebuf_free(nv->nv_ebuf); in nv_free()
156 free(nv); in nv_free()
163 nv_error(const struct nv *nv) in nv_error() argument
166 if (nv == NULL) in nv_error()
169 NV_CHECK(nv); in nv_error()
171 return (nv->nv_error); in nv_error()
178 nv_set_error(struct nv *nv, int error) in nv_set_error() argument
182 if (nv == NULL) in nv_set_error()
185 NV_CHECK(nv); in nv_set_error()
187 preverr = nv->nv_error; in nv_set_error()
188 nv->nv_error = error; in nv_set_error()
197 nv_validate(struct nv *nv, size_t *extrap) in nv_validate() argument
204 if (nv == NULL) { in nv_validate()
209 NV_CHECK(nv); in nv_validate()
210 PJDLOG_ASSERT(nv->nv_error == 0); in nv_validate()
215 ptr = ebuf_data(nv->nv_ebuf, &size); in nv_validate()
324 if (nv->nv_error == 0) in nv_validate()
325 nv->nv_error = error; in nv_validate()
338 nv_hton(struct nv *nv) in nv_hton() argument
344 NV_CHECK(nv); in nv_hton()
345 PJDLOG_ASSERT(nv->nv_error == 0); in nv_hton()
347 ptr = ebuf_data(nv->nv_ebuf, &size); in nv_hton()
361 return (nv->nv_ebuf); in nv_hton()
367 struct nv *
370 struct nv *nv; in nv_ntoh() local
376 nv = malloc(sizeof(*nv)); in nv_ntoh()
377 if (nv == NULL) in nv_ntoh()
379 nv->nv_error = 0; in nv_ntoh()
380 nv->nv_ebuf = eb; in nv_ntoh()
381 nv->nv_magic = NV_MAGIC; in nv_ntoh()
383 if (nv_validate(nv, &extra) == -1) { in nv_ntoh()
385 nv->nv_magic = 0; in nv_ntoh()
386 free(nv); in nv_ntoh()
395 return (nv); in nv_ntoh()
400 nv_add_##type(struct nv *nv, type##_t value, const char *namefmt, ...) \
405 nv_addv(nv, (unsigned char *)&value, sizeof(value), \
423 nv_add_##type##_array(struct nv *nv, const type##_t *value, \ in NV_DEFINE_ADD()
429 nv_addv(nv, (const unsigned char *)value, \ in NV_DEFINE_ADD()
447 nv_add_string(struct nv *nv, const char *value, const char *namefmt, ...)
455 nv_addv(nv, (const unsigned char *)value, size, NV_TYPE_STRING,
461 nv_add_stringf(struct nv *nv, const char *name, const char *valuefmt, ...) in nv_add_stringf() argument
466 nv_add_stringv(nv, name, valuefmt, valueap); in nv_add_stringf()
471 nv_add_stringv(struct nv *nv, const char *name, const char *valuefmt, in nv_add_stringv() argument
479 if (nv->nv_error == 0) in nv_add_stringv()
480 nv->nv_error = ENOMEM; in nv_add_stringv()
484 nv_add(nv, (const unsigned char *)value, size, NV_TYPE_STRING, name); in nv_add_stringv()
490 nv_get_##type(struct nv *nv, const char *namefmt, ...) \
497 nvh = nv_find(nv, NV_TYPE_##TYPE, namefmt, nameap); \
521 nv_get_##type##_array(struct nv *nv, size_t *sizep, \ in NV_DEFINE_GET()
528 nvh = nv_find(nv, NV_TYPE_##TYPE##_ARRAY, namefmt, nameap); \ in NV_DEFINE_GET()
551 nv_get_string(struct nv *nv, const char *namefmt, ...)
558 nvh = nv_find(nv, NV_TYPE_STRING, namefmt, nameap);
571 nv_vexists(struct nv *nv, const char *namefmt, va_list nameap) in nv_vexists() argument
576 if (nv == NULL) in nv_vexists()
580 snverror = nv->nv_error; in nv_vexists()
582 nvh = nv_find(nv, NV_TYPE_NONE, namefmt, nameap); in nv_vexists()
585 nv->nv_error = snverror; in nv_vexists()
591 nv_exists(struct nv *nv, const char *namefmt, ...) in nv_exists() argument
597 ret = nv_vexists(nv, namefmt, nameap); in nv_exists()
604 nv_assert(struct nv *nv, const char *namefmt, ...) in nv_assert() argument
609 PJDLOG_ASSERT(nv_vexists(nv, namefmt, nameap)); in nv_assert()
617 nv_dump(struct nv *nv) in nv_dump() argument
625 if (nv_validate(nv, NULL) == -1) { in nv_dump()
630 NV_CHECK(nv); in nv_dump()
631 PJDLOG_ASSERT(nv->nv_error == 0); in nv_dump()
633 ptr = ebuf_data(nv->nv_ebuf, &size); in nv_dump()
754 nv_add(struct nv *nv, const unsigned char *value, size_t vsize, int type, in nv_add() argument
761 if (nv == NULL) { in nv_add()
766 NV_CHECK(nv); in nv_add()
772 if (nv->nv_error == 0) in nv_add()
773 nv->nv_error = ENOMEM; in nv_add()
782 if (ebuf_add_tail(nv->nv_ebuf, nvh, NVH_HSIZE(nvh)) == -1) { in nv_add()
784 if (nv->nv_error == 0) in nv_add()
785 nv->nv_error = errno; in nv_add()
791 if (ebuf_add_tail(nv->nv_ebuf, value, vsize) == -1) { in nv_add()
793 if (nv->nv_error == 0) in nv_add()
794 nv->nv_error = errno; in nv_add()
802 if (ebuf_add_tail(nv->nv_ebuf, align, vsize) == -1) { in nv_add()
804 if (nv->nv_error == 0) in nv_add()
805 nv->nv_error = errno; in nv_add()
811 nv_addv(struct nv *nv, const unsigned char *value, size_t vsize, int type, in nv_addv() argument
820 nv_add(nv, value, vsize, type, name); in nv_addv()
824 nv_find(struct nv *nv, int type, const char *namefmt, va_list nameap) in nv_find() argument
831 if (nv == NULL) { in nv_find()
836 NV_CHECK(nv); in nv_find()
842 ptr = ebuf_data(nv->nv_ebuf, &size); in nv_find()
852 if (nv->nv_error == 0) in nv_find()
853 nv->nv_error = EINVAL; in nv_find()
862 if (nv->nv_error == 0) in nv_find()
863 nv->nv_error = ENOENT; in nv_find()