1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Intel Corporation
5 #include "qat_common.h"
9 qat_sgl_fill_array(struct rte_mbuf *buf, uint64_t buf_start,
10 struct qat_sgl *list, uint32_t data_len)
14 uint32_t buf_len = rte_pktmbuf_iova(buf) -
15 buf_start + rte_pktmbuf_data_len(buf);
17 list->buffers[0].addr = buf_start;
18 list->buffers[0].resrvd = 0;
19 list->buffers[0].len = buf_len;
21 if (data_len <= buf_len) {
23 list->buffers[0].len = data_len;
29 if (unlikely(nr == QAT_SGL_MAX_NUMBER)) {
31 "QAT PMD exceeded size of QAT SGL entry(%u)",
36 list->buffers[nr].len = rte_pktmbuf_data_len(buf);
37 list->buffers[nr].resrvd = 0;
38 list->buffers[nr].addr = rte_pktmbuf_iova(buf);
40 buf_len += list->buffers[nr].len;
43 if (buf_len > data_len) {
44 list->buffers[nr].len -=