Lines Matching refs:xchan
46 xchan_bank_init(xdma_channel_t *xchan) in xchan_bank_init() argument
51 KASSERT(xchan->xdma != NULL, ("xdma is NULL")); in xchan_bank_init()
53 xchan->xr_mem = malloc(sizeof(struct xdma_request) * xchan->xr_num, in xchan_bank_init()
56 for (i = 0; i < xchan->xr_num; i++) { in xchan_bank_init()
57 xr = &xchan->xr_mem[i]; in xchan_bank_init()
58 TAILQ_INSERT_TAIL(&xchan->bank, xr, xr_next); in xchan_bank_init()
63 xchan_bank_free(xdma_channel_t *xchan) in xchan_bank_free() argument
66 free(xchan->xr_mem, M_XDMA); in xchan_bank_free()
72 xchan_bank_get(xdma_channel_t *xchan) in xchan_bank_get() argument
77 QUEUE_BANK_LOCK(xchan); in xchan_bank_get()
78 TAILQ_FOREACH_SAFE(xr, &xchan->bank, xr_next, xr_tmp) { in xchan_bank_get()
79 TAILQ_REMOVE(&xchan->bank, xr, xr_next); in xchan_bank_get()
82 QUEUE_BANK_UNLOCK(xchan); in xchan_bank_get()
88 xchan_bank_put(xdma_channel_t *xchan, struct xdma_request *xr) in xchan_bank_put() argument
91 QUEUE_BANK_LOCK(xchan); in xchan_bank_put()
92 TAILQ_INSERT_TAIL(&xchan->bank, xr, xr_next); in xchan_bank_put()
93 QUEUE_BANK_UNLOCK(xchan); in xchan_bank_put()