| 4182 | } |
| 4183 | |
| 4184 | static uint16_t |
| 4185 | dlb2_event_dequeue_burst(void *event_port, struct rte_event *ev, uint16_t num, |
| 4186 | uint64_t wait) |
| 4187 | { |
| 4188 | struct dlb2_eventdev_port *ev_port = event_port; |
| 4189 | struct dlb2_port *qm_port = &ev_port->qm_port; |
| 4190 | struct dlb2_eventdev *dlb2 = ev_port->dlb2; |
| 4191 | uint16_t cnt; |
| 4192 | |
| 4193 | RTE_ASSERT(ev_port->setup_done); |
| 4194 | RTE_ASSERT(ev != NULL); |
| 4195 | |
| 4196 | if (ev_port->implicit_release && ev_port->outstanding_releases > 0) { |
| 4197 | uint16_t out_rels = ev_port->outstanding_releases; |
| 4198 | |
| 4199 | dlb2_event_release(dlb2, ev_port->id, out_rels); |
| 4200 | |
| 4201 | DLB2_INC_STAT(ev_port->stats.tx_implicit_rel, out_rels); |
| 4202 | } |
| 4203 | |
| 4204 | if (qm_port->token_pop_mode == RTE_PMD_DLB2_DEFERRED_POP && qm_port->owed_tokens) |
| 4205 | dlb2_consume_qe_immediate(qm_port, qm_port->owed_tokens); |
| 4206 | |
| 4207 | cnt = dlb2_hw_dequeue(dlb2, ev_port, ev, num, wait); |
| 4208 | |
| 4209 | DLB2_INC_STAT(ev_port->stats.traffic.total_polls, 1); |
| 4210 | DLB2_INC_STAT(ev_port->stats.traffic.zero_polls, ((cnt == 0) ? 1 : 0)); |
| 4211 | |
| 4212 | return cnt; |
| 4213 | } |
| 4214 | |
| 4215 | static uint16_t |
| 4216 | dlb2_event_dequeue(void *event_port, struct rte_event *ev, uint64_t wait) |
no test coverage detected