| 393 | } |
| 394 | |
| 395 | static void |
| 396 | sw_drain_ports(struct rte_eventdev *dev) |
| 397 | { |
| 398 | struct sw_evdev *sw = sw_pmd_priv(dev); |
| 399 | eventdev_stop_flush_t flush; |
| 400 | unsigned int i; |
| 401 | uint8_t dev_id; |
| 402 | void *arg; |
| 403 | |
| 404 | flush = dev->dev_ops->dev_stop_flush; |
| 405 | dev_id = dev->data->dev_id; |
| 406 | arg = dev->data->dev_stop_flush_arg; |
| 407 | |
| 408 | for (i = 0; i < sw->port_count; i++) { |
| 409 | struct rte_event ev; |
| 410 | |
| 411 | while (rte_event_dequeue_burst(dev_id, i, &ev, 1, 0)) { |
| 412 | if (flush) |
| 413 | flush(dev_id, ev, arg); |
| 414 | |
| 415 | ev.op = RTE_EVENT_OP_RELEASE; |
| 416 | rte_event_enqueue_burst(dev_id, i, &ev, 1); |
| 417 | } |
| 418 | } |
| 419 | } |
| 420 | |
| 421 | static void |
| 422 | sw_drain_queue(struct rte_eventdev *dev, struct sw_iq *iq) |
no test coverage detected