| 1401 | } |
| 1402 | |
| 1403 | static int |
| 1404 | memif_dev_close(struct rte_eth_dev *dev) |
| 1405 | { |
| 1406 | struct pmd_internals *pmd = dev->data->dev_private; |
| 1407 | int i; |
| 1408 | |
| 1409 | if (rte_eal_process_type() == RTE_PROC_PRIMARY) { |
| 1410 | memif_msg_enq_disconnect(pmd->cc, "Device closed", 0); |
| 1411 | |
| 1412 | for (i = 0; i < dev->data->nb_rx_queues; i++) |
| 1413 | (*dev->dev_ops->rx_queue_release)(dev, i); |
| 1414 | for (i = 0; i < dev->data->nb_tx_queues; i++) |
| 1415 | (*dev->dev_ops->tx_queue_release)(dev, i); |
| 1416 | |
| 1417 | memif_socket_remove_device(dev); |
| 1418 | } |
| 1419 | |
| 1420 | rte_free(dev->process_private); |
| 1421 | |
| 1422 | return 0; |
| 1423 | } |
| 1424 | |
| 1425 | static int |
| 1426 | memif_dev_configure(struct rte_eth_dev *dev) |
nothing calls this directly
no test coverage detected