Lines Matching defs:chan

49 	struct idxd_io_channel	*chan;
55 struct spdk_idxd_io_channel *chan;
67 idxd_select_device(struct idxd_io_channel *chan)
97 chan->chan = spdk_idxd_get_channel(dev->dsa);
98 if (chan->chan != NULL) {
118 struct idxd_io_channel *chan;
121 chan = idxd_task->chan;
141 assert(chan->num_outstanding > 0);
142 spdk_trace_record(TRACE_ACCEL_DSA_OP_COMPLETE, 0, 0, 0, chan->num_outstanding - 1);
143 chan->num_outstanding--;
162 return spdk_idxd_submit_dualcast(ch->chan, task->d.iovs[0].iov_base,
235 spdk_iobuf_put(&idxd_task->chan->iobuf, idxd_task->md_iov.iov_base, mdiov_len);
247 rc = spdk_idxd_submit_dix_generate(idxd_task->chan->chan, idxd_task->task.s.iovs,
252 spdk_iobuf_put(&idxd_task->chan->iobuf, idxd_task->md_iov.iov_base,
269 accel_dsa_dix_verify(struct idxd_io_channel *chan, int flags,
273 idxd_task->md_iov.iov_base = spdk_iobuf_get(&chan->iobuf, idxd_task->md_iov.iov_len,
286 struct idxd_io_channel *chan = spdk_io_channel_get_ctx(ch);
291 idxd_task->chan = chan;
295 rc = spdk_idxd_submit_copy(chan->chan, task->d.iovs, task->d.iovcnt,
299 rc = idxd_submit_dualcast(chan, idxd_task, flags);
302 rc = spdk_idxd_submit_compare(chan->chan, task->s.iovs, task->s.iovcnt,
307 rc = spdk_idxd_submit_fill(chan->chan, task->d.iovs, task->d.iovcnt,
311 rc = spdk_idxd_submit_crc32c(chan->chan, task->s.iovs, task->s.iovcnt, task->seed,
315 rc = spdk_idxd_submit_copy_crc32c(chan->chan, task->d.iovs, task->d.iovcnt,
321 rc = spdk_idxd_submit_dif_check(chan->chan,
327 rc = spdk_idxd_submit_dif_insert(chan->chan,
345 rc = spdk_idxd_submit_dif_strip(chan->chan,
364 rc = spdk_idxd_submit_dix_generate(chan->chan, task->s.iovs, task->s.iovcnt,
369 rc = accel_dsa_dix_verify(chan, flags, idxd_task);
378 chan->num_outstanding++;
379 spdk_trace_record(TRACE_ACCEL_DSA_OP_SUBMIT, 0, 0, 0, chan->num_outstanding);
388 struct idxd_io_channel *chan = spdk_io_channel_get_ctx(ch);
393 if (spdk_unlikely(chan->state == IDXD_CHANNEL_ERROR)) {
398 if (!STAILQ_EMPTY(&chan->queued_tasks)) {
399 STAILQ_INSERT_TAIL(&chan->queued_tasks, task, link);
405 STAILQ_INSERT_TAIL(&chan->queued_tasks, task, link);
414 dsa_submit_queued_tasks(struct idxd_io_channel *chan)
417 struct spdk_io_channel *ch = spdk_io_channel_from_ctx(chan);
420 if (spdk_unlikely(chan->state == IDXD_CHANNEL_ERROR)) {
422 while ((task = STAILQ_FIRST(&chan->queued_tasks))) {
423 STAILQ_REMOVE_HEAD(&chan->queued_tasks, link);
429 STAILQ_FOREACH_SAFE(task, &chan->queued_tasks, link, tmp) {
434 STAILQ_REMOVE_HEAD(&chan->queued_tasks, link);
446 struct idxd_io_channel *chan = arg;
449 count = spdk_idxd_process_events(chan->chan);
452 if (!STAILQ_EMPTY(&chan->queued_tasks)) {
453 dsa_submit_queued_tasks(chan);
514 struct idxd_io_channel *chan = ctx_buf;
518 dsa = idxd_select_device(chan);
524 chan->dev = dsa;
525 chan->poller = SPDK_POLLER_REGISTER(idxd_poll, chan, 0);
526 STAILQ_INIT(&chan->queued_tasks);
527 chan->num_outstanding = 0;
528 chan->state = IDXD_CHANNEL_ACTIVE;
529 rc = spdk_iobuf_channel_init(&chan->iobuf, "accel_dsa",
543 struct idxd_io_channel *chan = ctx_buf;
545 spdk_iobuf_channel_fini(&chan->iobuf);
546 spdk_poller_unregister(&chan->poller);
547 spdk_idxd_put_channel(chan->chan);