bdesc
static struct bdesc *bufp; /* buffer descriptors */
static struct bdesc **current; /* output buffer to fill */
static void checkpoint(struct bdesc *, int);
struct bdesc *last =
struct bdesc *bp = bufp; /* current buf in tape block */
struct bdesc *begin = bufp; /* first buf of tape block */
struct bdesc *end = bufp + (ntrec-1); /* last buf of tape block */
checkpoint(struct bdesc *bp, int cmd)
+ (((size_t)sizeof (struct bdesc)) * NBUF * ntrec)
+ (size_t)sizeof (struct bdesc **)
bufp = (struct bdesc *)(obuf + NBUF*writesize);
current = (struct bdesc **)&bufp[NBUF*ntrec];
struct bdesc *bp;
bdesc = (caddr_t)dmp->b_rptr;
(void) sprintf(bdesc, "ISP 8100 available "
bdesc = (caddr_t)dmp->b_rptr;
bdesc += IOCTL_HEADER_LEN;
bcopy(bp, bdesc, pheader->payload_length);
bdesc = qlge->ioctl_buf_ptr;
bdesc += qlge->ioctl_transferred_bytes;
bcopy(bp, bdesc, pheader->payload_length);
bdesc = (caddr_t)dmp->b_rptr;
(void) sprintf(bdesc, "ISP 8100 supported dump"
bdesc = qlge->ioctl_buf_ptr +
rval = qlge_dump_fcode(qlge, (uint8_t *)bdesc,
bdesc += size;
caddr_t bp, bdesc;
caddr_t bp, bdesc;
bdesc = (caddr_t)temp + addr_desc;
bcopy(bp, bdesc, (end_byte - start_byte + 1));
usba_bos_save(usba_device_t *ud, const mblk_t *mp, usb_bos_descr_t *bdesc)
if (bdesc->bLength != USB_BOS_PACKED_SIZE ||
bdesc->bNumDeviceCaps == 0 || len < USB_BOS_PACKED_SIZE ||
len < bdesc->wTotalLength) {
len = MIN(len, bdesc->wTotalLength);
if (ncaps != bdesc->bNumDeviceCaps) {
len = MIN(MBLKL(mp), bdesc->wTotalLength) - USB_BOS_PACKED_SIZE;
xnf_rxbuf_hang(xnf_t *xnfp, xnf_buf_t *bdesc)
reqp->id = bdesc->id = hang_ix;
reqp->gref = bdesc->grant_ref;
xnfp->xnf_rx_pkt_info[hang_ix] = bdesc;
xnf_buf_t *bdesc;
bdesc = xnfp->xnf_rx_pkt_info[rxidx];
ASSERT3U(bdesc->id, ==, rsp.id);
} else if (bdesc->grant_ref == INVALID_GRANT_REF) {
mp = desballoc((unsigned char *)bdesc->buf,
bdesc->len, 0, &bdesc->free_rtn);
(void) gnttab_end_foreign_access_ref(bdesc->grant_ref,
xnf_gref_put(xnfp, bdesc->grant_ref);
bdesc->grant_ref = INVALID_GRANT_REF;
bdesc = nbuf;
bcopy(bdesc->buf + off, mp->b_wptr, len);
xnf_rxbuf_hang(xnfp, bdesc);
xnf_buf_t *bdesc = buf;
ddiflags, 0, &bdesc->dma_handle) != DDI_SUCCESS)
if (ddi_dma_mem_alloc(bdesc->dma_handle,
&bdesc->buf, &len, &bdesc->acc_handle) != DDI_SUCCESS)
if (ddi_dma_addr_bind_handle(bdesc->dma_handle, NULL,
bdesc->buf, len, DDI_DMA_RDWR | DDI_DMA_STREAMING,
bdesc->free_rtn.free_func = xnf_buf_recycle;
bdesc->free_rtn.free_arg = (caddr_t)bdesc;
bdesc->xnfp = xnfp;
bdesc->buf_phys = dma_cookie.dmac_laddress;
bdesc->buf_mfn = pfn_to_mfn(xnf_btop(bdesc->buf_phys));
bdesc->len = dma_cookie.dmac_size;
bdesc->grant_ref = INVALID_GRANT_REF;
bdesc->gen = xnfp->xnf_gen;
ddi_dma_mem_free(&bdesc->acc_handle);
ddi_dma_free_handle(&bdesc->dma_handle);
xnf_buf_t *bdesc = buf;
(void) ddi_dma_unbind_handle(bdesc->dma_handle);
ddi_dma_mem_free(&bdesc->acc_handle);
ddi_dma_free_handle(&bdesc->dma_handle);
xnf_buf_refresh(xnf_buf_t *bdesc)
bdesc->buf_mfn = pfn_to_mfn(xnf_btop(bdesc->buf_phys));
bdesc->gen = bdesc->xnfp->xnf_gen;
xnf_buf_recycle(xnf_buf_t *bdesc)
xnf_t *xnfp = bdesc->xnfp;
xnf_buf_put(xnfp, bdesc, B_TRUE);
xnf_buf_t *bdesc;
bdesc = xnf_buf_get(xnfp, KM_SLEEP, B_FALSE);
VERIFY(bdesc != NULL);
xnf_rxbuf_hang(xnfp, bdesc);