Lines Matching refs:xdrs

111 xdrmblk_init(XDR *xdrs, mblk_t *m, enum xdr_op op, int sz)  in xdrmblk_init()  argument
115 xdrs->x_op = op; in xdrmblk_init()
116 xdrs->x_ops = &xdrmblk_ops; in xdrmblk_init()
117 xdrs->x_base = (caddr_t)m; in xdrmblk_init()
118 xdrs->x_public = NULL; in xdrmblk_init()
120 xdrs->x_private = (caddr_t)p; in xdrmblk_init()
127 xdrs->x_handy = (int)MBLKL(m); in xdrmblk_init()
129 xdrs->x_handy = (int)MBLKTAIL(m); in xdrmblk_init()
136 xdrmblk_destroy(XDR *xdrs) in xdrmblk_destroy() argument
138 kmem_free(xdrs->x_private, sizeof (struct xdrmblk_params)); in xdrmblk_destroy()
142 xdrmblk_getint32(XDR *xdrs, int32_t *int32p) in xdrmblk_getint32() argument
147 xdrmblk_skip_fully_read_mblks(xdrs); in xdrmblk_getint32()
150 m = (mblk_t *)xdrs->x_base; in xdrmblk_getint32()
154 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_getint32()
162 xdrs->x_handy < sizeof (int32_t)) { in xdrmblk_getint32()
174 xdrs->x_handy = (int)MBLKL(m); in xdrmblk_getint32()
180 xdrs->x_handy -= sizeof (int32_t); in xdrmblk_getint32()
187 xdrmblk_putint32(XDR *xdrs, int32_t *int32p) in xdrmblk_putint32() argument
193 m = (mblk_t *)xdrs->x_base; in xdrmblk_putint32()
197 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_putint32()
200 xdrs->x_handy < sizeof (int32_t)) { in xdrmblk_putint32()
206 xdrs->x_base = (caddr_t)m; in xdrmblk_putint32()
210 xdrs->x_handy = 0; in xdrmblk_putint32()
213 xdrs->x_handy = (int)MBLKTAIL(m); in xdrmblk_putint32()
221 xdrs->x_handy -= sizeof (int32_t); in xdrmblk_putint32()
233 xdrmblk_getbytes(XDR *xdrs, caddr_t addr, int len) in xdrmblk_getbytes() argument
240 m = (mblk_t *)xdrs->x_base; in xdrmblk_getbytes()
244 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_getbytes()
254 while (xdrs->x_handy < len) { in xdrmblk_getbytes()
255 if (xdrs->x_handy > 0) { in xdrmblk_getbytes()
256 if (xdrs->x_handy < XDRMBLK_BCOPY_LIMIT) { in xdrmblk_getbytes()
257 for (i = 0; i < xdrs->x_handy; i++) in xdrmblk_getbytes()
260 bcopy(m->b_rptr, addr, xdrs->x_handy); in xdrmblk_getbytes()
261 m->b_rptr += xdrs->x_handy; in xdrmblk_getbytes()
262 addr += xdrs->x_handy; in xdrmblk_getbytes()
264 len -= xdrs->x_handy; in xdrmblk_getbytes()
265 p->rpos += xdrs->x_handy; in xdrmblk_getbytes()
268 xdrs->x_base = (caddr_t)m; in xdrmblk_getbytes()
272 xdrs->x_handy = 0; in xdrmblk_getbytes()
275 xdrs->x_handy = (int)MBLKL(m); in xdrmblk_getbytes()
278 xdrs->x_handy -= len; in xdrmblk_getbytes()
301 xdrmblk_getmblk(XDR *xdrs, mblk_t **mm, uint_t *lenp) in xdrmblk_getmblk() argument
308 if (!xdrmblk_getint32(xdrs, (int32_t *)&llen)) in xdrmblk_getmblk()
313 m = (mblk_t *)xdrs->x_base; in xdrmblk_getmblk()
350 xdrs->x_base = (caddr_t)m; in xdrmblk_getmblk()
351 xdrs->x_handy = m != NULL ? MBLKL(m) : 0; in xdrmblk_getmblk()
353 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_getmblk()
361 xdrmblk_putbytes(XDR *xdrs, caddr_t addr, int len) in xdrmblk_putbytes() argument
368 m = (mblk_t *)xdrs->x_base; in xdrmblk_putbytes()
372 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_putbytes()
382 while (xdrs->x_handy < len) { in xdrmblk_putbytes()
383 if (xdrs->x_handy > 0) { in xdrmblk_putbytes()
384 if (xdrs->x_handy < XDRMBLK_BCOPY_LIMIT) { in xdrmblk_putbytes()
385 for (i = 0; i < xdrs->x_handy; i++) in xdrmblk_putbytes()
388 bcopy(addr, m->b_wptr, xdrs->x_handy); in xdrmblk_putbytes()
389 m->b_wptr += xdrs->x_handy; in xdrmblk_putbytes()
390 addr += xdrs->x_handy; in xdrmblk_putbytes()
392 len -= xdrs->x_handy; in xdrmblk_putbytes()
393 p->rpos += xdrs->x_handy; in xdrmblk_putbytes()
406 xdrs->x_base = (caddr_t)m; in xdrmblk_putbytes()
410 xdrs->x_handy = 0; in xdrmblk_putbytes()
413 xdrs->x_handy = (int)MBLKTAIL(m); in xdrmblk_putbytes()
419 xdrs->x_handy -= len; in xdrmblk_putbytes()
442 xdrmblk_putmblk(XDR *xdrs, mblk_t *m, uint_t len) in xdrmblk_putmblk() argument
446 if (!xdrmblk_putint32(xdrs, &llen)) in xdrmblk_putmblk()
449 return (xdrmblk_putmblk_raw(xdrs, m)); in xdrmblk_putmblk()
456 xdrmblk_putmblk_raw(XDR *xdrs, mblk_t *m) in xdrmblk_putmblk_raw() argument
463 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_putmblk_raw()
466 ((mblk_t *)xdrs->x_base)->b_cont = m; in xdrmblk_putmblk_raw()
474 xdrs->x_base = (caddr_t)m; in xdrmblk_putmblk_raw()
475 xdrs->x_handy = 0; in xdrmblk_putmblk_raw()
481 xdrmblk_getpos(XDR *xdrs) in xdrmblk_getpos() argument
483 struct xdrmblk_params *p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_getpos()
489 xdrmblk_setpos(XDR *xdrs, uint_t pos) in xdrmblk_setpos() argument
494 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_setpos()
499 if (pos > p->apos + p->rpos + xdrs->x_handy) in xdrmblk_setpos()
506 m = (mblk_t *)xdrs->x_base; in xdrmblk_setpos()
509 if (xdrs->x_op == XDR_DECODE) in xdrmblk_setpos()
514 xdrs->x_handy = p->rpos + xdrs->x_handy - (pos - p->apos); in xdrmblk_setpos()
527 xdrmblk_inline(XDR *xdrs, int len) in xdrmblk_inline() argument
537 if (xdrs->x_op == XDR_FREE) in xdrmblk_inline()
547 if (xdrs->x_op == XDR_DECODE) in xdrmblk_inline()
548 xdrmblk_skip_fully_read_mblks(xdrs); in xdrmblk_inline()
553 if (len <= 0 || xdrs->x_handy < len) { in xdrmblk_inline()
561 m = (mblk_t *)xdrs->x_base; in xdrmblk_inline()
564 if (xdrs->x_op == XDR_DECODE) { in xdrmblk_inline()
589 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_inline()
592 xdrs->x_handy -= len; in xdrmblk_inline()
603 xdrmblk_control(XDR *xdrs, int request, void *info) in xdrmblk_control() argument
612 xdrmblk_skip_fully_read_mblks(xdrs); in xdrmblk_control()
617 if (xdrs->x_handy < sizeof (int32_t)) in xdrmblk_control()
621 m = (mblk_t *)xdrs->x_base; in xdrmblk_control()
644 m = (mblk_t *)xdrs->x_base; in xdrmblk_control()
648 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_control()
650 while (xdrs->x_handy < len) { in xdrmblk_control()
651 if (xdrs->x_handy > 0) { in xdrmblk_control()
652 m->b_rptr += xdrs->x_handy; in xdrmblk_control()
653 len -= xdrs->x_handy; in xdrmblk_control()
654 p->rpos += xdrs->x_handy; in xdrmblk_control()
657 xdrs->x_base = (caddr_t)m; in xdrmblk_control()
661 xdrs->x_handy = 0; in xdrmblk_control()
664 xdrs->x_handy = (int)MBLKL(m); in xdrmblk_control()
667 xdrs->x_handy -= len; in xdrmblk_control()
708 xdrmblk_skip_fully_read_mblks(XDR *xdrs) in xdrmblk_skip_fully_read_mblks() argument
713 if (xdrs->x_handy != 0) in xdrmblk_skip_fully_read_mblks()
717 m = (mblk_t *)xdrs->x_base; in xdrmblk_skip_fully_read_mblks()
721 p = (struct xdrmblk_params *)xdrs->x_private; in xdrmblk_skip_fully_read_mblks()
730 xdrs->x_handy = (int)MBLKL(m); in xdrmblk_skip_fully_read_mblks()
731 } while (xdrs->x_handy == 0); in xdrmblk_skip_fully_read_mblks()
733 xdrs->x_base = (caddr_t)m; in xdrmblk_skip_fully_read_mblks()