MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bnxt_init_tx_ring_struct

Function bnxt_init_tx_ring_struct

dpdk/drivers/net/bnxt/bnxt_txr.c:60–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58}
59
60int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id)
61{
62 struct bnxt_cp_ring_info *cpr;
63 struct bnxt_tx_ring_info *txr;
64 struct bnxt_ring *ring;
65
66 txr = rte_zmalloc_socket("bnxt_tx_ring",
67 sizeof(struct bnxt_tx_ring_info),
68 RTE_CACHE_LINE_SIZE, socket_id);
69 if (txr == NULL)
70 return -ENOMEM;
71 txq->tx_ring = txr;
72
73 ring = rte_zmalloc_socket("bnxt_tx_ring_struct",
74 sizeof(struct bnxt_ring),
75 RTE_CACHE_LINE_SIZE, socket_id);
76 if (ring == NULL)
77 return -ENOMEM;
78 txr->tx_ring_struct = ring;
79 ring->ring_size = rte_align32pow2(txq->nb_tx_desc);
80 ring->ring_mask = ring->ring_size - 1;
81 ring->bd = (void *)txr->tx_desc_ring;
82 ring->bd_dma = txr->tx_desc_mapping;
83 ring->vmem_size = ring->ring_size * sizeof(struct rte_mbuf *);
84 ring->vmem = (void **)&txr->tx_buf_ring;
85 ring->fw_ring_id = INVALID_HW_RING_ID;
86
87 cpr = rte_zmalloc_socket("bnxt_tx_ring",
88 sizeof(struct bnxt_cp_ring_info),
89 RTE_CACHE_LINE_SIZE, socket_id);
90 if (cpr == NULL)
91 return -ENOMEM;
92 txq->cp_ring = cpr;
93
94 ring = rte_zmalloc_socket("bnxt_tx_ring_struct",
95 sizeof(struct bnxt_ring),
96 RTE_CACHE_LINE_SIZE, socket_id);
97 if (ring == NULL)
98 return -ENOMEM;
99 cpr->cp_ring_struct = ring;
100 ring->ring_size = txr->tx_ring_struct->ring_size;
101 ring->ring_mask = ring->ring_size - 1;
102 ring->bd = (void *)cpr->cp_desc_ring;
103 ring->bd_dma = cpr->cp_desc_mapping;
104 ring->vmem_size = 0;
105 ring->vmem = NULL;
106 ring->fw_ring_id = INVALID_HW_RING_ID;
107
108 return 0;
109}
110
111static bool
112bnxt_xmit_need_long_bd(struct rte_mbuf *tx_pkt, struct bnxt_tx_queue *txq)

Callers 1

bnxt_tx_queue_setup_opFunction · 0.85

Calls 2

rte_zmalloc_socketFunction · 0.85
rte_align32pow2Function · 0.50

Tested by

no test coverage detected