accel: functions to iterate over tasks in a sequence
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I97f011b7eaa7db7e9a9df583aff23321d60bb72f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16378 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
02e8b81bb6
commit
914007c1c6
@ -236,4 +236,23 @@ bool spdk_accel_alloc_sequence_buf(struct spdk_accel_sequence *seq, void *buf,
|
|||||||
struct spdk_memory_domain *domain, void *domain_ctx,
|
struct spdk_memory_domain *domain, void *domain_ctx,
|
||||||
spdk_accel_sequence_get_buf_cb cb_fn, void *cb_ctx);
|
spdk_accel_sequence_get_buf_cb cb_fn, void *cb_ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the first task remaining to be executed in a given sequence.
|
||||||
|
*
|
||||||
|
* \param seq Sequence object.
|
||||||
|
*
|
||||||
|
* \return the first remaining task or NULL if all tasks are already completed.
|
||||||
|
*/
|
||||||
|
struct spdk_accel_task *spdk_accel_sequence_first_task(struct spdk_accel_sequence *seq);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the next remaining task that follows a given task in a sequence.
|
||||||
|
*
|
||||||
|
* \param task Accel task. This task must be still oustanding (i.e. it wasn't completed through
|
||||||
|
* `spdk_accel_task_complete()`).
|
||||||
|
*
|
||||||
|
* \return the next task or NULL if `task` was the last task in a sequence.
|
||||||
|
*/
|
||||||
|
struct spdk_accel_task *spdk_accel_sequence_next_task(struct spdk_accel_task *task);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1253,6 +1253,18 @@ spdk_accel_alloc_sequence_buf(struct spdk_accel_sequence *seq, void *buf,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct spdk_accel_task *
|
||||||
|
spdk_accel_sequence_first_task(struct spdk_accel_sequence *seq)
|
||||||
|
{
|
||||||
|
return TAILQ_FIRST(&seq->tasks);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct spdk_accel_task *
|
||||||
|
spdk_accel_sequence_next_task(struct spdk_accel_task *task)
|
||||||
|
{
|
||||||
|
return TAILQ_NEXT(task, seq_link);
|
||||||
|
}
|
||||||
|
|
||||||
static inline uint64_t
|
static inline uint64_t
|
||||||
accel_get_iovlen(struct iovec *iovs, uint32_t iovcnt)
|
accel_get_iovlen(struct iovec *iovs, uint32_t iovcnt)
|
||||||
{
|
{
|
||||||
|
@ -43,6 +43,8 @@
|
|||||||
spdk_accel_driver_register;
|
spdk_accel_driver_register;
|
||||||
spdk_accel_get_memory_domain;
|
spdk_accel_get_memory_domain;
|
||||||
spdk_accel_alloc_sequence_buf;
|
spdk_accel_alloc_sequence_buf;
|
||||||
|
spdk_accel_sequence_first_task;
|
||||||
|
spdk_accel_sequence_next_task;
|
||||||
|
|
||||||
local: *;
|
local: *;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user