Lines Matching refs:slp

5409 	__unused struct nfsrv_sock *slp,
5522 nfsrv_send(struct nfsrv_sock *slp, mbuf_t nam, mbuf_t top)
5525 socket_t so = slp->ns_so;
5530 if (nam && !sock_isconnected(so) && (slp->ns_sotype != SOCK_STREAM)) {
5541 if ((error == EWOULDBLOCK) && (slp->ns_sotype == SOCK_STREAM))
5561 struct nfsrv_sock *slp = arg;
5563 if (!nfsd_thread_count || !(slp->ns_flag & SLP_VALID))
5566 lck_rw_lock_exclusive(&slp->ns_rwlock);
5567 nfsrv_rcv_locked(so, slp, waitflag);
5571 nfsrv_rcv_locked(socket_t so, struct nfsrv_sock *slp, int waitflag)
5578 if ((slp->ns_flag & SLP_VALID) == 0) {
5580 lck_rw_done(&slp->ns_rwlock);
5593 if (slp->ns_sotype == SOCK_STREAM) {
5599 if (slp->ns_rec) {
5617 if (slp->ns_rawend) {
5618 if ((error = mbuf_setnext(slp->ns_rawend, m)))
5620 slp->ns_cc += bytes_read;
5622 slp->ns_raw = m;
5623 slp->ns_cc = bytes_read;
5627 slp->ns_rawend = m;
5632 error = nfsrv_getstream(slp, waitflag);
5642 if (slp->ns_reccnt >= nfsrv_sock_max_rec_queue_length) {
5669 if (slp->ns_recend)
5670 mbuf_setnextpkt(slp->ns_recend, m);
5672 slp->ns_rec = m;
5673 slp->ns_flag |= SLP_DOREC;
5675 slp->ns_recend = m;
5677 slp->ns_reccnt++;
5687 slp->ns_flag |= ns_flag;
5689 int wake = (slp->ns_flag & SLP_WORKTODO);
5690 lck_rw_done(&slp->ns_rwlock);
5693 nfsrv_wakenfsd(slp);
5705 nfsrv_getstream(struct nfsrv_sock *slp, int waitflag)
5713 if (slp->ns_flag & SLP_GETSTREAM)
5715 slp->ns_flag |= SLP_GETSTREAM;
5717 if (slp->ns_reclen == 0) {
5718 if (slp->ns_cc < NFSX_UNSIGNED) {
5719 slp->ns_flag &= ~SLP_GETSTREAM;
5722 m = slp->ns_raw;
5744 slp->ns_cc -= NFSX_UNSIGNED;
5746 slp->ns_reclen = recmark & ~0x80000000;
5748 slp->ns_flag |= SLP_LASTFRAG;
5750 slp->ns_flag &= ~SLP_LASTFRAG;
5751 if (slp->ns_reclen <= 0 || slp->ns_reclen > NFS_MAXPACKET) {
5752 slp->ns_flag &= ~SLP_GETSTREAM;
5760 * Note that slp->ns_reclen may be 0. Linux sometimes
5764 if (slp->ns_cc == slp->ns_reclen) {
5765 recm = slp->ns_raw;
5766 slp->ns_raw = slp->ns_rawend = NULL;
5767 slp->ns_cc = slp->ns_reclen = 0;
5768 } else if (slp->ns_cc > slp->ns_reclen) {
5770 m = slp->ns_raw;
5774 while (len < slp->ns_reclen) {
5775 if ((len + mlen) > slp->ns_reclen) {
5776 if (mbuf_copym(m, 0, slp->ns_reclen - len, waitflag, &m2)) {
5777 slp->ns_flag &= ~SLP_GETSTREAM;
5785 slp->ns_flag &= ~SLP_GETSTREAM;
5788 recm = slp->ns_raw;
5792 mdata += slp->ns_reclen - len;
5793 mlen -= slp->ns_reclen - len;
5795 len = slp->ns_reclen;
5796 } else if ((len + mlen) == slp->ns_reclen) {
5800 recm = slp->ns_raw;
5803 slp->ns_flag &= ~SLP_GETSTREAM;
5816 slp->ns_raw = m;
5817 slp->ns_cc -= len;
5818 slp->ns_reclen = 0;
5820 slp->ns_flag &= ~SLP_GETSTREAM;
5827 if (slp->ns_frag == NULL) {
5828 slp->ns_frag = recm;
5830 m = slp->ns_frag;
5836 if (slp->ns_flag & SLP_LASTFRAG) {
5837 if (slp->ns_recend)
5838 mbuf_setnextpkt(slp->ns_recend, slp->ns_frag);
5840 slp->ns_rec = slp->ns_frag;
5841 slp->ns_flag |= SLP_DOREC;
5843 slp->ns_recend = slp->ns_frag;
5844 slp->ns_frag = NULL;
5854 struct nfsrv_sock *slp,
5864 if (!(slp->ns_flag & (SLP_VALID|SLP_DOREC)) || (slp->ns_rec == NULL))
5870 m = slp->ns_rec;
5871 slp->ns_rec = mbuf_nextpkt(m);
5872 if (slp->ns_rec)
5875 slp->ns_flag &= ~SLP_DOREC;
5876 slp->ns_recend = NULL;
5878 slp->ns_reccnt--;
6052 nfsrv_wakenfsd(struct nfsrv_sock *slp)
6056 if ((slp->ns_flag & SLP_VALID) == 0)
6059 lck_rw_lock_exclusive(&slp->ns_rwlock);
6061 if ((slp->ns_flag & SLP_WORKTODO) && !(slp->ns_flag & SLP_QUEUED)) {
6062 TAILQ_INSERT_TAIL(&nfsrv_sockwait, slp, ns_svcq);
6063 slp->ns_flag |= SLP_WAITQ;
6065 lck_rw_done(&slp->ns_rwlock);