Lines Matching +full:grant +full:- +full:dma

4  * Copyright (c) 2010-2013 Spectra Logic Corporation
9 * Copyright (c) 2003-2004, Keir Fraser & Steve Hand
46 (((segs) - 1) * PAGE_SIZE)
63 * negotiated block-front/back communication channel. Allow enough
70 * block-front/back communication channel.
94 ((segs + XBD_MAX_SEGMENTS_PER_PAGE - 1) / XBD_MAX_SEGMENTS_PER_PAGE)
102 /* Bus DMA returned EINPROGRESS for this command. */
159 XBDF_GNT_SHORTAGE = 1 << 5, /* Grant ref resource shortage active */
194 * hot-unplug unless this is 0.
211 cmq = &sc->xbd_cm_q[index]; in xbd_added_qentry()
212 cmq->q_length++; in xbd_added_qentry()
213 if (cmq->q_length > cmq->q_max) in xbd_added_qentry()
214 cmq->q_max = cmq->q_length; in xbd_added_qentry()
220 sc->xbd_cm_q[index].q_length--; in xbd_removed_qentry()
226 return (sc->xbd_cm_q[index].q_length); in xbd_queue_length()
234 cmq = &sc->xbd_cm_q[index]; in xbd_initq_cm()
235 TAILQ_INIT(&cmq->q_tailq); in xbd_initq_cm()
236 cmq->q_length = 0; in xbd_initq_cm()
237 cmq->q_max = 0; in xbd_initq_cm()
245 if ((cm->cm_flags & XBDCF_Q_MASK) != XBD_Q_NONE) in xbd_enqueue_cm()
247 __func__, cm, cm->cm_flags & XBDCF_Q_MASK); in xbd_enqueue_cm()
248 TAILQ_INSERT_TAIL(&cm->cm_sc->xbd_cm_q[index].q_tailq, cm, cm_link); in xbd_enqueue_cm()
249 cm->cm_flags &= ~XBDCF_Q_MASK; in xbd_enqueue_cm()
250 cm->cm_flags |= index; in xbd_enqueue_cm()
251 xbd_added_qentry(cm->cm_sc, index); in xbd_enqueue_cm()
259 if ((cm->cm_flags & XBDCF_Q_MASK) != XBD_Q_NONE) in xbd_requeue_cm()
261 __func__, cm, cm->cm_flags & XBDCF_Q_MASK); in xbd_requeue_cm()
262 TAILQ_INSERT_HEAD(&cm->cm_sc->xbd_cm_q[index].q_tailq, cm, cm_link); in xbd_requeue_cm()
263 cm->cm_flags &= ~XBDCF_Q_MASK; in xbd_requeue_cm()
264 cm->cm_flags |= index; in xbd_requeue_cm()
265 xbd_added_qentry(cm->cm_sc, index); in xbd_requeue_cm()
276 if ((cm = TAILQ_FIRST(&sc->xbd_cm_q[index].q_tailq)) != NULL) { in xbd_dequeue_cm()
277 if ((cm->cm_flags & XBDCF_Q_MASK) != index) { in xbd_dequeue_cm()
281 cm->cm_flags & XBDCF_Q_MASK, in xbd_dequeue_cm()
284 TAILQ_REMOVE(&sc->xbd_cm_q[index].q_tailq, cm, cm_link); in xbd_dequeue_cm()
285 cm->cm_flags &= ~XBDCF_Q_MASK; in xbd_dequeue_cm()
286 cm->cm_flags |= XBD_Q_NONE; in xbd_dequeue_cm()
287 xbd_removed_qentry(cm->cm_sc, index); in xbd_dequeue_cm()
297 index = cm->cm_flags & XBDCF_Q_MASK; in xbd_remove_cm()
306 TAILQ_REMOVE(&cm->cm_sc->xbd_cm_q[index].q_tailq, cm, cm_link); in xbd_remove_cm()
307 cm->cm_flags &= ~XBDCF_Q_MASK; in xbd_remove_cm()
308 cm->cm_flags |= XBD_Q_NONE; in xbd_remove_cm()
309 xbd_removed_qentry(cm->cm_sc, index); in xbd_remove_cm()
315 bioq_init(&sc->xbd_bioq); in xbd_initq_bio()
321 bioq_insert_tail(&sc->xbd_bioq, bp); in xbd_enqueue_bio()
328 bioq_insert_head(&sc->xbd_bioq, bp); in xbd_requeue_bio()
337 if ((bp = bioq_first(&sc->xbd_bioq)) != NULL) { in xbd_dequeue_bio()
338 bioq_remove(&sc->xbd_bioq, bp); in xbd_dequeue_bio()