Lines Matching full:cd
263 struct cf_conn *cd; in svc_vc_create_conn() local
292 cd = mem_alloc(sizeof(*cd)); in svc_vc_create_conn()
293 cd->strm_stat = XPRT_IDLE; in svc_vc_create_conn()
299 xprt->xp_p1 = cd; in svc_vc_create_conn()
335 mem_free(cd, sizeof(*cd)); in svc_vc_create_conn()
347 struct cf_conn *cd = NULL; in svc_vc_create_backchannel() local
349 cd = mem_alloc(sizeof(*cd)); in svc_vc_create_backchannel()
350 cd->strm_stat = XPRT_IDLE; in svc_vc_create_backchannel()
356 xprt->xp_p1 = cd; in svc_vc_create_backchannel()
535 struct cf_conn *cd = (struct cf_conn *)xprt->xp_p1; in svc_vc_destroy() local
551 if (cd->mreq) in svc_vc_destroy()
552 m_freem(cd->mreq); in svc_vc_destroy()
553 if (cd->mpending) in svc_vc_destroy()
554 m_freem(cd->mpending); in svc_vc_destroy()
555 mem_free(cd, sizeof(*cd)); in svc_vc_destroy()
561 struct cf_conn *cd = (struct cf_conn *)xprt->xp_p1; in svc_vc_backchannel_destroy() local
565 m = cd->mreq; in svc_vc_backchannel_destroy()
571 mem_free(cd, sizeof(*cd)); in svc_vc_backchannel_destroy()
598 struct cf_conn *cd; in svc_vc_stat() local
600 cd = (struct cf_conn *)(xprt->xp_p1); in svc_vc_stat()
602 if (cd->strm_stat == XPRT_DIED) in svc_vc_stat()
605 if (cd->mreq != NULL && cd->resid == 0 && cd->eor) in svc_vc_stat()
626 struct cf_conn *cd; in svc_vc_backchannel_stat() local
628 cd = (struct cf_conn *)(xprt->xp_p1); in svc_vc_backchannel_stat()
630 if (cd->mreq != NULL) in svc_vc_backchannel_stat()
637 * If we have an mbuf chain in cd->mpending, try to parse a record from it,
638 * leaving the result in cd->mreq. If we don't have a complete record, leave
639 * the partial result in cd->mreq and try to read more from the socket.
644 struct cf_conn *cd = (struct cf_conn *) xprt->xp_p1; in svc_vc_process_pending() local
649 * If cd->resid is non-zero, we have part of the in svc_vc_process_pending()
653 if (!cd->resid && cd->mpending) { in svc_vc_process_pending()
663 m = cd->mpending; in svc_vc_process_pending()
672 m_copydata(cd->mpending, 0, sizeof(header), in svc_vc_process_pending()
675 cd->eor = (header & 0x80000000) != 0; in svc_vc_process_pending()
676 cd->resid = header & 0x7fffffff; in svc_vc_process_pending()
677 m_adj(cd->mpending, sizeof(uint32_t)); in svc_vc_process_pending()
681 * Start pulling off mbufs from cd->mpending in svc_vc_process_pending()
687 while (cd->mpending && cd->resid) { in svc_vc_process_pending()
688 m = cd->mpending; in svc_vc_process_pending()
689 if (cd->mpending->m_next in svc_vc_process_pending()
690 || cd->mpending->m_len > cd->resid) in svc_vc_process_pending()
691 cd->mpending = m_split(cd->mpending, in svc_vc_process_pending()
692 cd->resid, M_WAITOK); in svc_vc_process_pending()
694 cd->mpending = NULL; in svc_vc_process_pending()
695 if (cd->mreq) in svc_vc_process_pending()
696 m_last(cd->mreq)->m_next = m; in svc_vc_process_pending()
698 cd->mreq = m; in svc_vc_process_pending()
700 cd->resid -= m->m_len; in svc_vc_process_pending()
709 if (cd->mpending) in svc_vc_process_pending()
713 imax(1, imin(cd->resid, so->so_rcv.sb_hiwat / 2)); in svc_vc_process_pending()
721 struct cf_conn *cd = (struct cf_conn *) xprt->xp_p1; in svc_vc_recv() local
740 while (cd->mpending && in svc_vc_recv()
741 (cd->mreq == NULL || cd->resid != 0 || !cd->eor)) { in svc_vc_recv()
746 /* Process and return complete request in cd->mreq. */ in svc_vc_recv()
747 if (cd->mreq != NULL && cd->resid == 0 && cd->eor) { in svc_vc_recv()
754 if ((cd->mreq->m_len >= sizeof(xid_plus_direction) || in svc_vc_recv()
755 m_length(cd->mreq, NULL) >= in svc_vc_recv()
758 m_copydata(cd->mreq, 0, in svc_vc_recv()
768 cd->mreq, in svc_vc_recv()
770 cd->mreq = NULL; in svc_vc_recv()
775 xdrmbuf_create(&xdrs, cd->mreq, XDR_DECODE); in svc_vc_recv()
776 cd->mreq = NULL; in svc_vc_recv()
780 if (cd->mreq == NULL || cd->resid != 0) { in svc_vc_recv()
818 * the result in cd->mpending. If the read fails, in svc_vc_recv()
819 * we have drained both cd->mpending and the socket so in svc_vc_recv()
883 cd->strm_stat = XPRT_DIED; in svc_vc_recv()
894 cd->strm_stat = XPRT_DIED; in svc_vc_recv()
930 if (cd->mpending) in svc_vc_recv()
931 m_last(cd->mpending)->m_next = m; in svc_vc_recv()
933 cd->mpending = m; in svc_vc_recv()
941 struct cf_conn *cd = (struct cf_conn *) xprt->xp_p1; in svc_vc_backchannel_recv() local
953 m = cd->mreq; in svc_vc_backchannel_recv()
960 cd->mreq = m->m_nextpkt; in svc_vc_backchannel_recv()