Lines Matching refs:brkp

230 		struct xbuf_brk *brkp;  in ddi_xbuf_qstrategy()  local
232 brkp = kmem_zalloc(sizeof (struct xbuf_brk), KM_SLEEP); in ddi_xbuf_qstrategy()
233 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*brkp)) in ddi_xbuf_qstrategy()
234 mutex_init(&brkp->mutex, NULL, MUTEX_DRIVER, NULL); in ddi_xbuf_qstrategy()
235 brkp->bp0 = bp; in ddi_xbuf_qstrategy()
236 brkp->brksize = xap->xa_brksize; in ddi_xbuf_qstrategy()
237 brkp->brkblk = btodt(xap->xa_brksize); in ddi_xbuf_qstrategy()
238 brkp->noff = xap->xa_brksize; in ddi_xbuf_qstrategy()
239 brkp->blkno = bp->b_blkno; in ddi_xbuf_qstrategy()
240 _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*brkp)) in ddi_xbuf_qstrategy()
241 bp->b_private = brkp; in ddi_xbuf_qstrategy()
306 struct xbuf_brk *brkp = (struct xbuf_brk *)bp->b_clone_private; in ddi_xbuf_done() local
308 brkp->active--; in ddi_xbuf_done()
309 if (brkp->active || xap->xa_headp == brkp->bp0) { in ddi_xbuf_done()
312 brkp->off = -1; /* mark bp0 as completed */ in ddi_xbuf_done()
331 struct xbuf_brk *brkp = (struct xbuf_brk *)bp->b_clone_private; in xbuf_brk_done() local
332 struct buf *bp0 = brkp->bp0; in xbuf_brk_done()
335 mutex_enter(&brkp->mutex); in xbuf_brk_done()
344 brkp->nbufs--; in xbuf_brk_done()
346 done = (brkp->off == -1 && brkp->nbufs == 0); in xbuf_brk_done()
347 mutex_exit(&brkp->mutex); in xbuf_brk_done()
351 mutex_destroy(&brkp->mutex); in xbuf_brk_done()
352 kmem_free(brkp, sizeof (struct xbuf_brk)); in xbuf_brk_done()
497 struct xbuf_brk *brkp = bp->b_private; in xbuf_iostart() local
500 brkp->active++; in xbuf_iostart()
502 mutex_enter(&brkp->mutex); in xbuf_iostart()
503 brkp->nbufs++; in xbuf_iostart()
504 mutex_exit(&brkp->mutex); in xbuf_iostart()
506 if (brkp->noff < bp0->b_bcount) { in xbuf_iostart()
507 bp = bioclone(bp0, brkp->off, brkp->brksize, in xbuf_iostart()
508 bp0->b_edev, brkp->blkno, xbuf_brk_done, in xbuf_iostart()
512 brkp->off = brkp->noff; in xbuf_iostart()
513 brkp->noff += brkp->brksize; in xbuf_iostart()
514 brkp->blkno += brkp->brkblk; in xbuf_iostart()
516 bp = bioclone(bp0, brkp->off, in xbuf_iostart()
517 bp0->b_bcount - brkp->off, bp0->b_edev, in xbuf_iostart()
518 brkp->blkno, xbuf_brk_done, NULL, KM_SLEEP); in xbuf_iostart()
524 bp->b_clone_private = (struct buf *)brkp; in xbuf_iostart()