drivers: export probe/remove helpers for PCI drivers
crypto and ethdev drivers aligned to PCI probe/remove. These wrappers are mapped directly to PCI resources. Existing handlers for init/uninit can be easily reused for this. Signed-off-by: David Marchand <david.marchand@6wind.com> Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
This commit is contained in:
parent
83dae4213d
commit
b280240849
@ -428,9 +428,9 @@ rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size,
|
||||
return cryptodev;
|
||||
}
|
||||
|
||||
static int
|
||||
rte_cryptodev_init(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev)
|
||||
int
|
||||
rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
struct rte_cryptodev_driver *cryptodrv;
|
||||
struct rte_cryptodev *cryptodev;
|
||||
@ -489,8 +489,8 @@ rte_cryptodev_init(struct rte_pci_driver *pci_drv,
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
static int
|
||||
rte_cryptodev_uninit(struct rte_pci_device *pci_dev)
|
||||
int
|
||||
rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
const struct rte_cryptodev_driver *cryptodrv;
|
||||
struct rte_cryptodev *cryptodev;
|
||||
@ -538,15 +538,16 @@ rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *cryptodrv,
|
||||
{
|
||||
/* Call crypto device initialization directly if device is virtual */
|
||||
if (type == PMD_VDEV)
|
||||
return rte_cryptodev_init((struct rte_pci_driver *)cryptodrv,
|
||||
return rte_cryptodev_pci_probe(
|
||||
(struct rte_pci_driver *)cryptodrv,
|
||||
NULL);
|
||||
|
||||
/*
|
||||
* Register PCI driver for physical device intialisation during
|
||||
* PCI probing
|
||||
*/
|
||||
cryptodrv->pci_drv.probe = rte_cryptodev_init;
|
||||
cryptodrv->pci_drv.remove = rte_cryptodev_uninit;
|
||||
cryptodrv->pci_drv.probe = rte_cryptodev_pci_probe;
|
||||
cryptodrv->pci_drv.remove = rte_cryptodev_pci_remove;
|
||||
|
||||
rte_eal_pci_register(&cryptodrv->pci_drv);
|
||||
|
||||
|
@ -536,6 +536,18 @@ rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *crypto_drv,
|
||||
void rte_cryptodev_pmd_callback_process(struct rte_cryptodev *dev,
|
||||
enum rte_cryptodev_event_type event);
|
||||
|
||||
/**
|
||||
* Wrapper for use by pci drivers as a .probe function to attach to a crypto
|
||||
* interface.
|
||||
*/
|
||||
int rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev);
|
||||
|
||||
/**
|
||||
* Wrapper for use by pci drivers as a .remove function to detach a crypto
|
||||
* interface.
|
||||
*/
|
||||
int rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -39,3 +39,11 @@ DPDK_16.07 {
|
||||
rte_cryptodev_parse_vdev_init_params;
|
||||
|
||||
} DPDK_16.04;
|
||||
|
||||
DPDK_16.11 {
|
||||
global:
|
||||
|
||||
rte_cryptodev_pci_probe;
|
||||
rte_cryptodev_pci_remove;
|
||||
|
||||
} DPDK_16.07;
|
||||
|
@ -244,9 +244,9 @@ rte_eth_dev_release_port(struct rte_eth_dev *eth_dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
rte_eth_dev_init(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev)
|
||||
int
|
||||
rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev)
|
||||
{
|
||||
struct eth_driver *eth_drv;
|
||||
struct rte_eth_dev *eth_dev;
|
||||
@ -298,8 +298,8 @@ rte_eth_dev_init(struct rte_pci_driver *pci_drv,
|
||||
return diag;
|
||||
}
|
||||
|
||||
static int
|
||||
rte_eth_dev_uninit(struct rte_pci_device *pci_dev)
|
||||
int
|
||||
rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
|
||||
{
|
||||
const struct eth_driver *eth_drv;
|
||||
struct rte_eth_dev *eth_dev;
|
||||
@ -356,8 +356,8 @@ rte_eth_dev_uninit(struct rte_pci_device *pci_dev)
|
||||
void
|
||||
rte_eth_driver_register(struct eth_driver *eth_drv)
|
||||
{
|
||||
eth_drv->pci_drv.probe = rte_eth_dev_init;
|
||||
eth_drv->pci_drv.remove = rte_eth_dev_uninit;
|
||||
eth_drv->pci_drv.probe = rte_eth_dev_pci_probe;
|
||||
eth_drv->pci_drv.remove = rte_eth_dev_pci_remove;
|
||||
rte_eal_pci_register(ð_drv->pci_drv);
|
||||
}
|
||||
|
||||
|
@ -4372,6 +4372,21 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id);
|
||||
int
|
||||
rte_eth_dev_get_name_by_port(uint8_t port_id, char *name);
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* Wrapper for use by pci drivers as a .probe function to attach to a ethdev
|
||||
* interface.
|
||||
*/
|
||||
int rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv,
|
||||
struct rte_pci_device *pci_dev);
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* Wrapper for use by pci drivers as a .remove function to detach a ethdev
|
||||
* interface.
|
||||
*/
|
||||
int rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -138,4 +138,13 @@ DPDK_16.07 {
|
||||
rte_eth_dev_get_name_by_port;
|
||||
rte_eth_dev_get_port_by_name;
|
||||
rte_eth_xstats_get_names;
|
||||
|
||||
} DPDK_16.04;
|
||||
|
||||
DPDK_16.11 {
|
||||
global:
|
||||
|
||||
rte_eth_dev_pci_probe;
|
||||
rte_eth_dev_pci_remove;
|
||||
|
||||
} DPDK_16.07;
|
||||
|
Loading…
x
Reference in New Issue
Block a user