Lines Matching refs:fdbuf
683 fdbuf_free(struct fdbuf *fdbuf) in fdbuf_free() argument
688 dprint(1, ("fdbuf_free: %d fds\n", fdbuf->fd_numfd)); in fdbuf_free()
689 for (i = 0; i < fdbuf->fd_numfd; i++) { in fdbuf_free()
697 bcopy((char *)&fdbuf->fd_fds[i], (char *)&fp, sizeof (fp)); in fdbuf_free()
701 if (fdbuf->fd_ebuf != NULL) in fdbuf_free()
702 kmem_free(fdbuf->fd_ebuf, fdbuf->fd_ebuflen); in fdbuf_free()
703 kmem_free(fdbuf, fdbuf->fd_size); in fdbuf_free()
711 fdbuf_allocmsg(int size, struct fdbuf *fdbuf) in fdbuf_allocmsg() argument
716 dprint(1, ("fdbuf_allocmsg: size %d, %d fds\n", size, fdbuf->fd_numfd)); in fdbuf_allocmsg()
718 fdbuf->fd_ebuf = (caddr_t)buf; in fdbuf_allocmsg()
719 fdbuf->fd_ebuflen = size; in fdbuf_allocmsg()
720 fdbuf->fd_frtn.free_func = fdbuf_free; in fdbuf_allocmsg()
721 fdbuf->fd_frtn.free_arg = (caddr_t)fdbuf; in fdbuf_allocmsg()
723 mp = esballoc_wait(buf, size, BPRI_MED, &fdbuf->fd_frtn); in fdbuf_allocmsg()
734 fdbuf_extract(struct fdbuf *fdbuf, void *rights, int rightslen) in fdbuf_extract() argument
742 fdbuf->fd_numfd, rightslen)); in fdbuf_extract()
744 numfd = fdbuf->fd_numfd; in fdbuf_extract()
763 bcopy((char *)&fdbuf->fd_fds[i], (char *)&fp, sizeof (fp)); in fdbuf_extract()
800 fdbuf_create(void *rights, int rightslen, struct fdbuf **fdbufp) in fdbuf_create()
805 struct fdbuf *fdbuf; in fdbuf_create() local
813 fdbuf = kmem_alloc(fdbufsize, KM_SLEEP); in fdbuf_create()
814 fdbuf->fd_size = fdbufsize; in fdbuf_create()
815 fdbuf->fd_numfd = 0; in fdbuf_create()
816 fdbuf->fd_ebuf = NULL; in fdbuf_create()
817 fdbuf->fd_ebuflen = 0; in fdbuf_create()
821 fdbuf_free(fdbuf); in fdbuf_create()
840 fdbuf->fd_fds[i] = fp; in fdbuf_create()
841 fdbuf->fd_numfd++; in fdbuf_create()
846 *fdbufp = fdbuf; in fdbuf_create()
872 fdbuf_verify(mblk_t *mp, struct fdbuf *fdbuf, int fdbuflen) in fdbuf_verify() argument
875 fdbuflen == fdbuf->fd_size) { in fdbuf_verify()
892 bcmp(frp->free_arg, fdbuf, fdbuflen) == 0) { in fdbuf_verify()
894 (void *)fdbuf, fdbuflen)); in fdbuf_verify()
905 fdbuflen, fdbuf->fd_size); in fdbuf_verify()
916 close_fds(void *fdbuf, int fdbuflen, int startoff) in close_fds() argument
918 int *fds = (int *)fdbuf; in close_fds()
922 dprint(1, ("close_fds(%p, %d, %d)\n", fdbuf, fdbuflen, startoff)); in close_fds()
1132 struct fdbuf *fdbuf; in so_cmsglen() local
1135 fdbuf = (struct fdbuf *)_TPI_TOPT_DATA(tohp); in so_cmsglen()
1138 if (!fdbuf_verify(mp, fdbuf, fdbuflen)) in so_cmsglen()
1190 struct fdbuf *fdbuf; in so_opt2cmsg() local
1214 fdbuf = (struct fdbuf *)_TPI_TOPT_DATA(tohp); in so_opt2cmsg()
1217 if (!fdbuf_verify(mp, fdbuf, fdbuflen)) in so_opt2cmsg()
1220 error = fdbuf_extract(fdbuf, control, in so_opt2cmsg()
1236 error = fdbuf_extract(fdbuf, in so_opt2cmsg()