Lines Matching refs:rb
1846 fw_rcv_copy(struct fw_rcv_buf *rb) in fw_rcv_copy() argument
1853 rb->xfer->recv.spd = rb->spd; in fw_rcv_copy()
1855 pkt = (struct fw_pkt *)rb->vec->iov_base; in fw_rcv_copy()
1856 tinfo = &rb->fc->tcode[pkt->mode.hdr.tcode]; in fw_rcv_copy()
1859 p = (u_char *)&rb->xfer->recv.hdr; in fw_rcv_copy()
1860 bcopy(rb->vec->iov_base, p, tinfo->hdr_len); in fw_rcv_copy()
1861 rb->vec->iov_base = (u_char *)rb->vec->iov_base + tinfo->hdr_len; in fw_rcv_copy()
1862 rb->vec->iov_len -= tinfo->hdr_len; in fw_rcv_copy()
1865 p = (u_char *)rb->xfer->recv.payload; in fw_rcv_copy()
1866 res = rb->xfer->recv.pay_len; in fw_rcv_copy()
1872 rb->xfer->recv.pay_len = sizeof(uint32_t); in fw_rcv_copy()
1881 for (i = 0; i < rb->nvec; i++, rb->vec++) { in fw_rcv_copy()
1882 len = MIN(rb->vec->iov_len, plen); in fw_rcv_copy()
1884 device_printf(rb->fc->bdev, "%s:" in fw_rcv_copy()
1886 __func__, rb->xfer->recv.pay_len, len - res); in fw_rcv_copy()
1889 bcopy(rb->vec->iov_base, p, len); in fw_rcv_copy()
1896 rb->xfer->recv.pay_len -= res; in fw_rcv_copy()
1903 fw_rcv(struct fw_rcv_buf *rb) in fw_rcv() argument
1923 fp = (struct fw_pkt *)rb->vec[0].iov_base; in fw_rcv()
1930 rb->xfer = fw_tl2xfer(rb->fc, fp->mode.hdr.src, in fw_rcv()
1932 if (rb->xfer == NULL) { in fw_rcv()
1933 device_printf(rb->fc->bdev, "%s: unknown response " in fw_rcv()
1943 rb->xfer = fw_tl2xfer(rb->fc, fp->mode.hdr.src, in fw_rcv()
1945 if (rb->xfer == NULL) { in fw_rcv()
1953 fw_rcv_copy(rb); in fw_rcv()
1954 if (rb->xfer->recv.hdr.mode.wres.rtcode != RESP_CMP) in fw_rcv()
1955 rb->xfer->resp = EIO; in fw_rcv()
1957 rb->xfer->resp = 0; in fw_rcv()
1959 oldstate = rb->xfer->flag; in fw_rcv()
1960 rb->xfer->flag = FWXF_RCVD; in fw_rcv()
1963 fw_xfer_done(rb->xfer); in fw_rcv()
1968 printf("not sent yet tl=%x\n", rb->xfer->tl); in fw_rcv()
1972 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
1974 rb->xfer->flag); in fw_rcv()
1982 bind = fw_bindlookup(rb->fc, fp->mode.rreqq.dest_hi, in fw_rcv()
1985 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
1995 if (rb->fc->status == FWBUSINIT) { in fw_rcv()
1996 device_printf(rb->fc->bdev, in fw_rcv()
2001 rb->xfer = fw_xfer_alloc(M_FWXFER); in fw_rcv()
2002 if (rb->xfer == NULL) { in fw_rcv()
2005 rb->xfer->send.spd = rb->spd; in fw_rcv()
2006 rb->xfer->send.pay_len = 0; in fw_rcv()
2007 resfp = &rb->xfer->send.hdr; in fw_rcv()
2032 rb->xfer->hand = fw_xfer_free; in fw_rcv()
2033 if (fw_asyreq(rb->fc, -1, rb->xfer)) in fw_rcv()
2034 fw_xfer_free(rb->xfer); in fw_rcv()
2039 for (i = 0; i < rb->nvec; i++) in fw_rcv()
2040 len += rb->vec[i].iov_len; in fw_rcv()
2042 rb->xfer = STAILQ_FIRST(&bind->xferlist); in fw_rcv()
2043 if (rb->xfer == NULL) { in fw_rcv()
2044 device_printf(rb->fc->bdev, "%s: " in fw_rcv()
2049 fw_rcv_copy(rb); in fw_rcv()
2050 rb->xfer->hand(rb->xfer); in fw_rcv()
2057 xferq = rb->fc->ir[sub]; in fw_rcv()
2068 rb->xfer = fw_xfer_alloc_buf(M_FWXFER, 0, /* XXX */ in fw_rcv()
2070 if (rb->xfer == NULL) in fw_rcv()
2072 fw_rcv_copy(rb) in fw_rcv()
2075 STAILQ_INSERT_TAIL(&xferq->q, rb->xfer, link); in fw_rcv()
2077 sc = device_get_softc(rb->fc->bdev); in fw_rcv()
2092 device_printf(rb->fc->bdev,"%s: unknown tcode %d\n", in fw_rcv()