Lines Matching defs:nvh

98 #define	NVH_DATA(nvh)	((unsigned char *)nvh + NVH_HSIZE(nvh))
99 #define NVH_HSIZE(nvh) \
100 (sizeof(struct nvhdr) + roundup2((nvh)->nvh_namesize, 8))
101 #define NVH_DSIZE(nvh) \
102 (((nvh)->nvh_type & NV_ORDER_MASK) == NV_ORDER_HOST ? \
103 (nvh)->nvh_dsize : \
104 le32toh((nvh)->nvh_dsize))
105 #define NVH_SIZE(nvh) (NVH_HSIZE(nvh) + roundup2(NVH_DSIZE(nvh), 8))
118 static void nv_swap(struct nvhdr *nvh, bool tohost);
199 struct nvhdr *nvh;
226 if (size < sizeof(*nvh) + 2) {
230 nvh = (struct nvhdr *)ptr;
231 if (size < NVH_HSIZE(nvh)) {
235 if (nvh->nvh_name[nvh->nvh_namesize - 1] != '\0') {
239 if (strlen(nvh->nvh_name) !=
240 (size_t)(nvh->nvh_namesize - 1)) {
244 if ((nvh->nvh_type & NV_TYPE_MASK) < NV_TYPE_FIRST ||
245 (nvh->nvh_type & NV_TYPE_MASK) > NV_TYPE_LAST) {
249 dsize = NVH_DSIZE(nvh);
254 if (size < NVH_SIZE(nvh)) {
259 switch (nvh->nvh_type & NV_TYPE_MASK) {
307 data = NVH_DATA(nvh);
322 ptr += NVH_SIZE(nvh);
323 size -= NVH_SIZE(nvh);
343 struct nvhdr *nvh;
356 PJDLOG_ASSERT(size >= sizeof(*nvh) + 2);
357 nvh = (struct nvhdr *)ptr;
358 PJDLOG_ASSERT(NVH_SIZE(nvh) <= size);
359 nv_swap(nvh, false);
360 ptr += NVH_SIZE(nvh);
361 size -= NVH_SIZE(nvh);
495 struct nvhdr *nvh; \
500 nvh = nv_find(nv, NV_TYPE_##TYPE, namefmt, nameap); \
502 if (nvh == NULL) \
504 PJDLOG_ASSERT((nvh->nvh_type & NV_ORDER_MASK) == NV_ORDER_HOST);\
505 PJDLOG_ASSERT(sizeof(value) == nvh->nvh_dsize); \
506 bcopy(NVH_DATA(nvh), &value, sizeof(value)); \
527 struct nvhdr *nvh; \
531 nvh = nv_find(nv, NV_TYPE_##TYPE##_ARRAY, namefmt, nameap); \
533 if (nvh == NULL) \
535 PJDLOG_ASSERT((nvh->nvh_type & NV_ORDER_MASK) == NV_ORDER_HOST);\
536 PJDLOG_ASSERT((nvh->nvh_dsize % sizeof(type##_t)) == 0); \
538 *sizep = nvh->nvh_dsize / sizeof(type##_t); \
539 return ((type##_t *)(void *)NVH_DATA(nvh)); \
556 struct nvhdr *nvh;
561 nvh = nv_find(nv, NV_TYPE_STRING, namefmt, nameap);
563 if (nvh == NULL)
565 PJDLOG_ASSERT((nvh->nvh_type & NV_ORDER_MASK) == NV_ORDER_HOST);
566 PJDLOG_ASSERT(nvh->nvh_dsize >= 1);
567 str = (char *)NVH_DATA(nvh);
568 PJDLOG_ASSERT(str[nvh->nvh_dsize - 1] == '\0');
569 PJDLOG_ASSERT(strlen(str) == nvh->nvh_dsize - 1);
576 struct nvhdr *nvh;
585 nvh = nv_find(nv, NV_TYPE_NONE, namefmt, nameap);
590 return (nvh != NULL);
622 struct nvhdr *nvh;
638 PJDLOG_ASSERT(size >= sizeof(*nvh) + 2);
639 nvh = (struct nvhdr *)ptr;
640 PJDLOG_ASSERT(size >= NVH_SIZE(nvh));
641 swap = ((nvh->nvh_type & NV_ORDER_MASK) == NV_ORDER_NETWORK);
642 dsize = NVH_DSIZE(nvh);
643 data = NVH_DATA(nvh);
644 printf(" %s", nvh->nvh_name);
645 switch (nvh->nvh_type & NV_TYPE_MASK) {
747 ptr += NVH_SIZE(nvh);
748 size -= NVH_SIZE(nvh);
761 struct nvhdr *nvh;
773 nvh = malloc(sizeof(*nvh) + roundup2(namesize, 8));
774 if (nvh == NULL) {
779 nvh->nvh_type = NV_ORDER_HOST | type;
780 nvh->nvh_namesize = (uint8_t)namesize;
781 nvh->nvh_dsize = (uint32_t)vsize;
782 bcopy(name, nvh->nvh_name, namesize);
785 if (ebuf_add_tail(nv->nv_ebuf, nvh, NVH_HSIZE(nvh)) == -1) {
789 free(nvh);
792 free(nvh);
830 struct nvhdr *nvh;
847 PJDLOG_ASSERT(size >= sizeof(*nvh) + 2);
848 nvh = (struct nvhdr *)ptr;
849 PJDLOG_ASSERT(size >= NVH_SIZE(nvh));
850 nv_swap(nvh, true);
851 if (strcmp(nvh->nvh_name, name) == 0) {
853 (nvh->nvh_type & NV_TYPE_MASK) != type) {
859 return (nvh);
861 ptr += NVH_SIZE(nvh);
862 size -= NVH_SIZE(nvh);
871 nv_swap(struct nvhdr *nvh, bool tohost)
876 data = NVH_DATA(nvh);
878 if ((nvh->nvh_type & NV_ORDER_MASK) == NV_ORDER_HOST)
880 nvh->nvh_dsize = le32toh(nvh->nvh_dsize);
881 end = data + nvh->nvh_dsize;
882 nvh->nvh_type &= ~NV_ORDER_MASK;
883 nvh->nvh_type |= NV_ORDER_HOST;
885 if ((nvh->nvh_type & NV_ORDER_MASK) == NV_ORDER_NETWORK)
887 end = data + nvh->nvh_dsize;
888 nvh->nvh_dsize = htole32(nvh->nvh_dsize);
889 nvh->nvh_type &= ~NV_ORDER_MASK;
890 nvh->nvh_type |= NV_ORDER_NETWORK;
895 switch (nvh->nvh_type & NV_TYPE_MASK) {