1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2019 Marvell International Ltd.
5 #include <rte_crypto.h>
6 #include <rte_cryptodev.h>
9 #include "nitrox_sym_reqmgr.h"
10 #include "nitrox_logs.h"
12 struct nitrox_softreq {
17 softreq_init(struct nitrox_softreq *sr, rte_iova_t iova)
19 memset(sr, 0, sizeof(*sr));
24 req_pool_obj_init(__rte_unused struct rte_mempool *mp,
25 __rte_unused void *opaque, void *obj,
26 __rte_unused unsigned int obj_idx)
28 softreq_init(obj, rte_mempool_virt2iova(obj));
32 nitrox_sym_req_pool_create(struct rte_cryptodev *cdev, uint32_t nobjs,
33 uint16_t qp_id, int socket_id)
35 char softreq_pool_name[RTE_RING_NAMESIZE];
36 struct rte_mempool *mp;
38 snprintf(softreq_pool_name, RTE_RING_NAMESIZE, "%s_sr_%d",
39 cdev->data->name, qp_id);
40 mp = rte_mempool_create(softreq_pool_name,
41 RTE_ALIGN_MUL_CEIL(nobjs, 64),
42 sizeof(struct nitrox_softreq),
43 64, 0, NULL, NULL, req_pool_obj_init, NULL,
46 NITROX_LOG(ERR, "Failed to create req pool, qid %d, err %d\n",
53 nitrox_sym_req_pool_free(struct rte_mempool *mp)