Commit 2dba7399 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

accel: move get task utility



It is a prework for further change where put is being introduced so we
can have both close to each other.

Change-Id: Id070542980389b04a6e424ab4a5456857817be42
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24048


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
parent e45c8090
Loading
Loading
Loading
Loading
+23 −23
Original line number Diff line number Diff line
@@ -272,6 +272,29 @@ spdk_accel_assign_opc(enum spdk_accel_opcode opcode, const char *name)
	return 0;
}

inline static struct spdk_accel_task *
_get_task(struct accel_io_channel *accel_ch, spdk_accel_completion_cb cb_fn, void *cb_arg)
{
	struct spdk_accel_task *accel_task;

	accel_task = STAILQ_FIRST(&accel_ch->task_pool);
	if (spdk_unlikely(accel_task == NULL)) {
		accel_update_stats(accel_ch, retry.task, 1);
		return NULL;
	}

	STAILQ_REMOVE_HEAD(&accel_ch->task_pool, link);
	accel_task->link.stqe_next = NULL;

	accel_task->cb_fn = cb_fn;
	accel_task->cb_arg = cb_arg;
	accel_task->accel_ch = accel_ch;
	accel_task->s.iovs = NULL;
	accel_task->d.iovs = NULL;

	return accel_task;
}

void
spdk_accel_task_complete(struct spdk_accel_task *accel_task, int status)
{
@@ -308,29 +331,6 @@ spdk_accel_task_complete(struct spdk_accel_task *accel_task, int status)
	cb_fn(cb_arg, status);
}

inline static struct spdk_accel_task *
_get_task(struct accel_io_channel *accel_ch, spdk_accel_completion_cb cb_fn, void *cb_arg)
{
	struct spdk_accel_task *accel_task;

	accel_task = STAILQ_FIRST(&accel_ch->task_pool);
	if (spdk_unlikely(accel_task == NULL)) {
		accel_update_stats(accel_ch, retry.task, 1);
		return NULL;
	}

	STAILQ_REMOVE_HEAD(&accel_ch->task_pool, link);
	accel_task->link.stqe_next = NULL;

	accel_task->cb_fn = cb_fn;
	accel_task->cb_arg = cb_arg;
	accel_task->accel_ch = accel_ch;
	accel_task->s.iovs = NULL;
	accel_task->d.iovs = NULL;

	return accel_task;
}

static inline int
accel_submit_task(struct accel_io_channel *accel_ch, struct spdk_accel_task *task)
{