Lines Matching refs:xdr
46 typedef struct xdr { struct
48 int (*xdr_getint)(struct xdr *, int *); argument
49 int (*xdr_putint)(struct xdr *, int); argument
50 int (*xdr_getuint)(struct xdr *, unsigned *); argument
51 int (*xdr_putuint)(struct xdr *, unsigned); argument
67 _getint(struct xdr *xdr, int *ip) in _getint() argument
69 *ip = be32dec(xdr->xdr_idx); in _getint()
74 _putint(struct xdr *xdr, int i) in _putint() argument
76 int *ip = (int *)xdr->xdr_idx; in _putint()
83 _getuint(struct xdr *xdr, unsigned *ip) in _getuint() argument
85 *ip = be32dec(xdr->xdr_idx); in _getuint()
90 _putuint(struct xdr *xdr, unsigned i) in _putuint() argument
92 unsigned *up = (unsigned *)xdr->xdr_idx; in _putuint()
99 _getint_mem(struct xdr *xdr, int *ip) in _getint_mem() argument
101 *ip = *(int *)xdr->xdr_idx; in _getint_mem()
106 _putint_mem(struct xdr *xdr, int i) in _putint_mem() argument
108 int *ip = (int *)xdr->xdr_idx; in _putint_mem()
115 _getuint_mem(struct xdr *xdr, unsigned *ip) in _getuint_mem() argument
117 *ip = *(unsigned *)xdr->xdr_idx; in _getuint_mem()
122 _putuint_mem(struct xdr *xdr, unsigned i) in _putuint_mem() argument
124 unsigned *up = (unsigned *)xdr->xdr_idx; in _putuint_mem()
134 xdr_short(xdr_t *xdr, short *ip) in xdr_short() argument
140 if ((rv = xdr_int(xdr, &i))) { in xdr_short()
141 if (xdr->xdr_op == XDR_OP_DECODE) in xdr_short()
148 xdr_u_short(xdr_t *xdr, unsigned short *ip) in xdr_u_short() argument
154 if ((rv = xdr_u_int(xdr, &u))) { in xdr_u_short()
155 if (xdr->xdr_op == XDR_OP_DECODE) in xdr_u_short()
165 xdr_int(xdr_t *xdr, int *ip) in xdr_int() argument
168 int *i = (int *)xdr->xdr_idx; in xdr_int()
170 if (xdr->xdr_idx + sizeof(int) > xdr->xdr_buf + xdr->xdr_buf_size) in xdr_int()
173 switch (xdr->xdr_op) { in xdr_int()
176 xdr->xdr_idx += xdr->xdr_putint(xdr, *ip); in xdr_int()
182 xdr->xdr_idx += xdr->xdr_getint(xdr, i); in xdr_int()
194 xdr_u_int(xdr_t *xdr, unsigned *ip) in xdr_u_int() argument
197 unsigned *u = (unsigned *)xdr->xdr_idx; in xdr_u_int()
199 if (xdr->xdr_idx + sizeof(unsigned) > xdr->xdr_buf + xdr->xdr_buf_size) in xdr_u_int()
202 switch (xdr->xdr_op) { in xdr_u_int()
205 xdr->xdr_idx += xdr->xdr_putuint(xdr, *ip); in xdr_u_int()
211 xdr->xdr_idx += xdr->xdr_getuint(xdr, u); in xdr_u_int()
220 xdr_int64(xdr_t *xdr, int64_t *lp) in xdr_int64() argument
224 if (xdr->xdr_idx + sizeof(int64_t) > xdr->xdr_buf + xdr->xdr_buf_size) in xdr_int64()
227 switch (xdr->xdr_op) { in xdr_int64()
230 if (xdr->xdr_putint == _putint) in xdr_int64()
231 *(int64_t *)xdr->xdr_idx = htobe64(*lp); in xdr_int64()
233 *(int64_t *)xdr->xdr_idx = *lp; in xdr_int64()
234 xdr->xdr_idx += sizeof(int64_t); in xdr_int64()
240 if (xdr->xdr_getint == _getint) in xdr_int64()
241 *lp = be64toh(*(int64_t *)xdr->xdr_idx); in xdr_int64()
243 *lp = *(int64_t *)xdr->xdr_idx; in xdr_int64()
244 xdr->xdr_idx += sizeof(int64_t); in xdr_int64()
251 xdr_uint64(xdr_t *xdr, uint64_t *lp) in xdr_uint64() argument
255 if (xdr->xdr_idx + sizeof(uint64_t) > xdr->xdr_buf + xdr->xdr_buf_size) in xdr_uint64()
258 switch (xdr->xdr_op) { in xdr_uint64()
261 if (xdr->xdr_putint == _putint) in xdr_uint64()
262 *(uint64_t *)xdr->xdr_idx = htobe64(*lp); in xdr_uint64()
264 *(uint64_t *)xdr->xdr_idx = *lp; in xdr_uint64()
265 xdr->xdr_idx += sizeof(uint64_t); in xdr_uint64()
271 if (xdr->xdr_getuint == _getuint) in xdr_uint64()
272 *lp = be64toh(*(uint64_t *)xdr->xdr_idx); in xdr_uint64()
274 *lp = *(uint64_t *)xdr->xdr_idx; in xdr_uint64()
275 xdr->xdr_idx += sizeof(uint64_t); in xdr_uint64()
282 xdr_char(xdr_t *xdr, char *cp) in xdr_char() argument
288 if ((rv = xdr_int(xdr, &i))) { in xdr_char()
289 if (xdr->xdr_op == XDR_OP_DECODE) in xdr_char()
296 xdr_string(xdr_t *xdr, nv_string_t *s) in xdr_string() argument
301 switch (xdr->xdr_op) { in xdr_string()
304 if (xdr->xdr_idx + sizeof(unsigned) + NV_ALIGN4(size) > in xdr_string()
305 xdr->xdr_buf + xdr->xdr_buf_size) in xdr_string()
307 xdr->xdr_idx += xdr->xdr_putuint(xdr, s->nv_size); in xdr_string()
308 xdr->xdr_idx += NV_ALIGN4(size); in xdr_string()
313 if (xdr->xdr_idx + sizeof(unsigned) > in xdr_string()
314 xdr->xdr_buf + xdr->xdr_buf_size) in xdr_string()
316 size = xdr->xdr_getuint(xdr, &s->nv_size); in xdr_string()
318 if (xdr->xdr_idx + size > xdr->xdr_buf + xdr->xdr_buf_size) in xdr_string()
320 xdr->xdr_idx += size; in xdr_string()
328 xdr_array(xdr_t *xdr, const unsigned nelem, const xdrproc_t elproc) in xdr_array() argument
333 if (!xdr_u_int(xdr, &c)) in xdr_array()
337 if (!elproc(xdr, xdr->xdr_idx)) in xdr_array()
402 nvlist_xdr_nvp(xdr_t *xdr, nvlist_t *nvl) in nvlist_xdr_nvp() argument
410 nv_string = (nv_string_t *)xdr->xdr_idx; in nvlist_xdr_nvp()
411 if (!xdr_string(xdr, nv_string)) { in nvlist_xdr_nvp()
414 nvp_data = (nv_pair_data_t *)xdr->xdr_idx; in nvlist_xdr_nvp()
418 if (!xdr_u_int(xdr, &type) || !xdr_u_int(xdr, &nelem)) in nvlist_xdr_nvp()
425 nvlist.nv_data = xdr->xdr_idx; in nvlist_xdr_nvp()
429 nv_xdr = *xdr; in nvlist_xdr_nvp()
436 if (xdr->xdr_op == XDR_OP_ENCODE) { in nvlist_xdr_nvp()
445 if (nvlist_xdr_nvlist(xdr, &nvlist) != 0) in nvlist_xdr_nvp()
463 if (!xdr_char(xdr, (char *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
468 if (!xdr_short(xdr, (short *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
473 if (!xdr_u_short(xdr, (unsigned short *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
479 if (!xdr_int(xdr, (int *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
484 if (!xdr_u_int(xdr, (unsigned *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
490 if (!xdr_int64(xdr, (int64_t *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
495 if (!xdr_uint64(xdr, (uint64_t *)&nvp_data->nv_data[0])) in nvlist_xdr_nvp()
502 if (!xdr_string(xdr, nv_string)) in nvlist_xdr_nvp()
509 if (!xdr_string(xdr, nv_string)) in nvlist_xdr_nvp()
511 nv_string = (nv_string_t *)xdr->xdr_idx; in nvlist_xdr_nvp()
522 if (!xdr_array(xdr, nelem, (xdrproc_t)xdr_u_int)) in nvlist_xdr_nvp()
528 if (!xdr_array(xdr, nelem, (xdrproc_t)xdr_uint64)) in nvlist_xdr_nvp()
536 nvlist_xdr_nvlist(xdr_t *xdr, nvlist_t *nvl) in nvlist_xdr_nvlist() argument
543 nvs = (nvs_data_t *)xdr->xdr_idx; in nvlist_xdr_nvlist()
546 if (!xdr_u_int(xdr, &nvs->nvl_version)) in nvlist_xdr_nvlist()
548 if (!xdr_u_int(xdr, &nvs->nvl_nvflag)) in nvlist_xdr_nvlist()
554 if (xdr->xdr_op == XDR_OP_ENCODE) { in nvlist_xdr_nvlist()
555 if (!xdr_u_int(xdr, &nvph->encoded_size)) in nvlist_xdr_nvlist()
557 if (!xdr_u_int(xdr, &nvph->decoded_size)) in nvlist_xdr_nvlist()
560 xdr->xdr_idx += 2 * sizeof(unsigned); in nvlist_xdr_nvlist()
565 if (!nvlist_xdr_nvp(xdr, nvl)) in nvlist_xdr_nvlist()
568 nvph = (nvp_header_t *)(xdr->xdr_idx); in nvlist_xdr_nvlist()
571 if (xdr->xdr_op == XDR_OP_ENCODE) { in nvlist_xdr_nvlist()
572 if (!xdr_u_int(xdr, &nvph->encoded_size)) in nvlist_xdr_nvlist()
574 if (!xdr_u_int(xdr, &nvph->decoded_size)) in nvlist_xdr_nvlist()
577 xdr->xdr_idx += 2 * sizeof(unsigned); in nvlist_xdr_nvlist()
587 nvlist_size_xdr(xdr_t *xdr, size_t *size) in nvlist_size_xdr() argument
592 xdr->xdr_idx += 2 * sizeof(unsigned); in nvlist_size_xdr()
594 pair = xdr->xdr_idx; in nvlist_size_xdr()
595 if (!xdr_u_int(xdr, &encoded_size) || !xdr_u_int(xdr, &decoded_size)) in nvlist_size_xdr()
599 xdr->xdr_idx = pair + encoded_size; in nvlist_size_xdr()
600 pair = xdr->xdr_idx; in nvlist_size_xdr()
601 if (!xdr_u_int(xdr, &encoded_size) || in nvlist_size_xdr()
602 !xdr_u_int(xdr, &decoded_size)) in nvlist_size_xdr()
605 *size = xdr->xdr_idx - xdr->xdr_buf; in nvlist_size_xdr()
615 xdr_t xdr; in nvlist_next_nvpair() local
620 xdr.xdr_buf = nvl->nv_data; in nvlist_next_nvpair()
621 xdr.xdr_idx = nvl->nv_data; in nvlist_next_nvpair()
622 xdr.xdr_buf_size = nvl->nv_size; in nvlist_next_nvpair()
624 xdr.xdr_idx += 2 * sizeof(unsigned); in nvlist_next_nvpair()
628 xdr.xdr_idx = (uint8_t *)nvh; in nvlist_next_nvpair()
631 pair = xdr.xdr_idx; in nvlist_next_nvpair()
632 if (xdr.xdr_idx > xdr.xdr_buf + xdr.xdr_buf_size) in nvlist_next_nvpair()
635 encoded_size = *(unsigned *)xdr.xdr_idx; in nvlist_next_nvpair()
636 xdr.xdr_idx += sizeof(unsigned); in nvlist_next_nvpair()
637 if (xdr.xdr_idx > xdr.xdr_buf + xdr.xdr_buf_size) in nvlist_next_nvpair()
640 decoded_size = *(unsigned *)xdr.xdr_idx; in nvlist_next_nvpair()
641 xdr.xdr_idx += sizeof(unsigned); in nvlist_next_nvpair()
642 if (xdr.xdr_idx > xdr.xdr_buf + xdr.xdr_buf_size) in nvlist_next_nvpair()
649 xdr.xdr_idx = pair + encoded_size; in nvlist_next_nvpair()
650 nvh = (nvp_header_t *)xdr.xdr_idx; in nvlist_next_nvpair()
652 if (xdr.xdr_idx > xdr.xdr_buf + xdr.xdr_buf_size) in nvlist_next_nvpair()
655 encoded_size = *(unsigned *)xdr.xdr_idx; in nvlist_next_nvpair()
656 xdr.xdr_idx += sizeof(unsigned); in nvlist_next_nvpair()
657 if (xdr.xdr_idx > xdr.xdr_buf + xdr.xdr_buf_size) in nvlist_next_nvpair()
659 decoded_size = *(unsigned *)xdr.xdr_idx; in nvlist_next_nvpair()
660 xdr.xdr_idx += sizeof(unsigned); in nvlist_next_nvpair()
661 if (xdr.xdr_idx > xdr.xdr_buf + xdr.xdr_buf_size) in nvlist_next_nvpair()
675 nvlist_size_native(xdr_t *xdr, size_t *size) in nvlist_size_native() argument
680 xdr->xdr_idx += 2 * sizeof(unsigned); in nvlist_size_native()
682 pair = xdr->xdr_idx; in nvlist_size_native()
683 if (xdr->xdr_idx > xdr->xdr_buf + xdr->xdr_buf_size) in nvlist_size_native()
686 encoded_size = *(unsigned *)xdr->xdr_idx; in nvlist_size_native()
687 xdr->xdr_idx += sizeof(unsigned); in nvlist_size_native()
688 if (xdr->xdr_idx > xdr->xdr_buf + xdr->xdr_buf_size) in nvlist_size_native()
690 decoded_size = *(unsigned *)xdr->xdr_idx; in nvlist_size_native()
691 xdr->xdr_idx += sizeof(unsigned); in nvlist_size_native()
693 xdr->xdr_idx = pair + encoded_size; in nvlist_size_native()
694 pair = xdr->xdr_idx; in nvlist_size_native()
695 if (xdr->xdr_idx > xdr->xdr_buf + xdr->xdr_buf_size) in nvlist_size_native()
697 encoded_size = *(unsigned *)xdr->xdr_idx; in nvlist_size_native()
698 xdr->xdr_idx += sizeof(unsigned); in nvlist_size_native()
699 if (xdr->xdr_idx > xdr->xdr_buf + xdr->xdr_buf_size) in nvlist_size_native()
701 decoded_size = *(unsigned *)xdr->xdr_idx; in nvlist_size_native()
702 xdr->xdr_idx += sizeof(unsigned); in nvlist_size_native()
704 *size = xdr->xdr_idx - xdr->xdr_buf; in nvlist_size_native()
716 xdr_t xdr = { in nvlist_export() local
729 rv = nvlist_xdr_nvlist(&xdr, nvl); in nvlist_export()
743 xdr_t xdr = { in nvlist_import() local
766 xdr.xdr_buf = xdr.xdr_idx = (uint8_t *)stream + 4; in nvlist_import()
767 xdr.xdr_buf_size = size - 4; in nvlist_import()
769 if (!nvlist_size_xdr(&xdr, &nvl->nv_asize)) { in nvlist_import()
782 xdr.xdr_buf = xdr.xdr_idx = nvl->nv_data; in nvlist_import()
783 xdr.xdr_buf_size = nvl->nv_asize; in nvlist_import()
785 if (nvlist_xdr_nvlist(&xdr, nvl) != 0) { in nvlist_import()
806 xdr_t xdr; in nvlist_remove() local
812 xdr.xdr_idx = nvl->nv_data; in nvlist_remove()
813 xdr.xdr_buf = xdr.xdr_idx; in nvlist_remove()
814 xdr.xdr_buf_size = nvl->nv_size; in nvlist_remove()
815 if (!nvlist_size_native(&xdr, &nvl->nv_size)) in nvlist_remove()
1071 xdr_t xdr; in get_nvp_data_size() local
1124 xdr.xdr_idx = ((nvlist_t *)data)->nv_data; in get_nvp_data_size()
1125 xdr.xdr_buf = xdr.xdr_idx; in get_nvp_data_size()
1126 xdr.xdr_buf_size = ((nvlist_t *)data)->nv_size; in get_nvp_data_size()
1128 if (!nvlist_size_native(&xdr, &size)) in get_nvp_data_size()
1136 xdr.xdr_idx = ((nvlist_t **)data)[i]->nv_data; in get_nvp_data_size()
1137 xdr.xdr_buf = xdr.xdr_idx; in get_nvp_data_size()
1138 xdr.xdr_buf_size = ((nvlist_t **)data)[i]->nv_size; in get_nvp_data_size()
1140 if (!nvlist_size_native(&xdr, &size)) in get_nvp_data_size()
1166 xdr_t xdr = { in nvlist_add_common() local
1179 xdr.xdr_buf = nvl->nv_data; in nvlist_add_common()
1180 xdr.xdr_idx = nvl->nv_data; in nvlist_add_common()
1181 xdr.xdr_buf_size = nvl->nv_size; in nvlist_add_common()
1182 if (!nvlist_size_native(&xdr, &nvl->nv_size)) in nvlist_add_common()
1219 xdr.xdr_buf = nvl->nv_data; in nvlist_add_common()
1220 xdr.xdr_buf_size = nvl->nv_asize; in nvlist_add_common()
1221 xdr.xdr_idx = nvl->nv_idx; in nvlist_add_common()
1223 xdr.xdr_idx += xdr.xdr_putuint(&xdr, namelen); in nvlist_add_common()
1224 strlcpy((char *)xdr.xdr_idx, name, namelen + 1); in nvlist_add_common()
1225 xdr.xdr_idx += NV_ALIGN4(namelen); in nvlist_add_common()
1226 xdr.xdr_idx += xdr.xdr_putuint(&xdr, type); in nvlist_add_common()
1227 xdr.xdr_idx += xdr.xdr_putuint(&xdr, nelem); in nvlist_add_common()
1234 xdr.xdr_idx += xdr.xdr_putuint(&xdr, encoded_size); in nvlist_add_common()
1235 bcopy(data, xdr.xdr_idx, nelem); in nvlist_add_common()
1236 xdr.xdr_idx += NV_ALIGN4(encoded_size); in nvlist_add_common()
1241 xdr.xdr_idx += xdr.xdr_putuint(&xdr, encoded_size); in nvlist_add_common()
1242 strlcpy((char *)xdr.xdr_idx, data, encoded_size + 1); in nvlist_add_common()
1243 xdr.xdr_idx += NV_ALIGN4(encoded_size); in nvlist_add_common()
1249 xdr.xdr_idx += xdr.xdr_putuint(&xdr, encoded_size); in nvlist_add_common()
1250 strlcpy((char *)xdr.xdr_idx, ((char **)data)[i], in nvlist_add_common()
1252 xdr.xdr_idx += NV_ALIGN4(encoded_size); in nvlist_add_common()
1259 xdr_char(&xdr, (char *)data); in nvlist_add_common()
1264 xdr_array(&xdr, nelem, (xdrproc_t)xdr_char); in nvlist_add_common()
1268 xdr_short(&xdr, (short *)data); in nvlist_add_common()
1272 xdr_u_short(&xdr, (unsigned short *)data); in nvlist_add_common()
1276 xdr_array(&xdr, nelem, (xdrproc_t)xdr_short); in nvlist_add_common()
1280 xdr_array(&xdr, nelem, (xdrproc_t)xdr_u_short); in nvlist_add_common()
1285 xdr_int(&xdr, (int *)data); in nvlist_add_common()
1289 xdr_u_int(&xdr, (unsigned int *)data); in nvlist_add_common()
1294 xdr_array(&xdr, nelem, (xdrproc_t)xdr_int); in nvlist_add_common()
1298 xdr_array(&xdr, nelem, (xdrproc_t)xdr_u_int); in nvlist_add_common()
1302 xdr_int64(&xdr, (int64_t *)data); in nvlist_add_common()
1306 xdr_uint64(&xdr, (uint64_t *)data); in nvlist_add_common()
1310 xdr_array(&xdr, nelem, (xdrproc_t)xdr_int64); in nvlist_add_common()
1314 xdr_array(&xdr, nelem, (xdrproc_t)xdr_uint64); in nvlist_add_common()
1318 bcopy(((nvlist_t *)data)->nv_data, xdr.xdr_idx, encoded_size); in nvlist_add_common()
1333 bcopy(((nvlist_t **)data)[i]->nv_data, xdr.xdr_idx, in nvlist_add_common()
1335 xdr.xdr_idx += size; in nvlist_add_common()
1340 bcopy(data, xdr.xdr_idx, encoded_size); in nvlist_add_common()
1564 xdr_t xdr = { in nvpair_print() local
1583 xdr.xdr_idx = nvp_data->nv_data; in nvpair_print()
1590 if (xdr_char(&xdr, &c)) in nvpair_print()
1599 if (xdr_u_short(&xdr, &u)) in nvpair_print()
1609 if (xdr_u_int(&xdr, &u)) in nvpair_print()
1618 if (xdr_uint64(&xdr, &u)) in nvpair_print()
1627 if (xdr_array(&xdr, nvp_data->nv_nelem, in nvpair_print()
1668 xdr.xdr_idx = nvlist.nv_data; in nvpair_print()
1669 xdr.xdr_buf = xdr.xdr_idx; in nvpair_print()
1670 xdr.xdr_buf_size = nvp->encoded_size - in nvpair_print()
1671 (xdr.xdr_idx - (uint8_t *)nvp); in nvpair_print()
1673 if (!nvlist_size_native(&xdr, &size)) in nvpair_print()