ethdev: add deferred intermediate device state

This device state means that the device is managed externally, by
whichever party has set this state (PMD or application).

Note: this new device state is only an information. The related device
structure and operators are still valid and can be used normally.

It is however made private by device management helpers within ethdev,
making the device invisible to applications.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
Gaetan Rivet 2017-07-18 14:48:12 +02:00 committed by Ferruh Yigit
parent 365b1b4bc6
commit cb894d99ec
2 changed files with 3 additions and 1 deletions

View File

@ -291,7 +291,8 @@ int
rte_eth_dev_is_valid_port(uint8_t port_id)
{
if (port_id >= RTE_MAX_ETHPORTS ||
rte_eth_devices[port_id].state != RTE_ETH_DEV_ATTACHED)
(rte_eth_devices[port_id].state != RTE_ETH_DEV_ATTACHED &&
rte_eth_devices[port_id].state != RTE_ETH_DEV_DEFERRED))
return 0;
else
return 1;

View File

@ -1615,6 +1615,7 @@ struct rte_eth_rxtx_callback {
enum rte_eth_dev_state {
RTE_ETH_DEV_UNUSED = 0,
RTE_ETH_DEV_ATTACHED,
RTE_ETH_DEV_DEFERRED,
};
/**