1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2018 Intel Corporation
8 #include <rte_string_fns.h>
10 #include "rte_eth_softnic_internals.h"
13 softnic_swq_init(struct pmd_internals *p)
15 TAILQ_INIT(&p->swq_list);
21 softnic_swq_free(struct pmd_internals *p)
24 struct softnic_swq *swq;
26 swq = TAILQ_FIRST(&p->swq_list);
30 TAILQ_REMOVE(&p->swq_list, swq, node);
31 rte_ring_free(swq->r);
37 softnic_swq_find(struct pmd_internals *p,
40 struct softnic_swq *swq;
45 TAILQ_FOREACH(swq, &p->swq_list, node)
46 if (strcmp(swq->name, name) == 0)
53 softnic_swq_create(struct pmd_internals *p,
55 struct softnic_swq_params *params)
57 char ring_name[NAME_SIZE];
58 struct softnic_swq *swq;
60 unsigned int flags = RING_F_SP_ENQ | RING_F_SC_DEQ;
62 /* Check input params */
64 softnic_swq_find(p, name) ||
70 snprintf(ring_name, sizeof(ring_name), "%s_%s",
74 r = rte_ring_create(ring_name,
83 swq = calloc(1, sizeof(struct softnic_swq));
90 strlcpy(swq->name, name, sizeof(swq->name));
93 /* Node add to list */
94 TAILQ_INSERT_TAIL(&p->swq_list, swq, node);