Message ID | 20210119212507.1043636-2-maxime.coquelin@redhat.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Maxime Coquelin |
Headers | show |
Series | net/virtio: Virtio PMD rework | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
19/01/2021 22:24, Maxime Coquelin: > This patch adds an helper macro to get the rte_vdev_device > pointer from a rte_eth_dev pointer. > > This is similar to RTE_ETH_DEV_TO_PCI(). [...] > --- a/drivers/bus/vdev/rte_bus_vdev.h > +++ b/drivers/bus/vdev/rte_bus_vdev.h > @@ -34,6 +34,8 @@ struct rte_vdev_device { > +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) Why these macros (vdev and PCI) are not in ethdev?
Hi Maxime, > -----Original Message----- > From: Maxime Coquelin <maxime.coquelin@redhat.com> > Sent: Wednesday, January 20, 2021 5:24 AM > To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>; olivier.matz@6wind.com; > amorenoz@redhat.com; david.marchand@redhat.com > Cc: Maxime Coquelin <maxime.coquelin@redhat.com> > Subject: [PATCH v2 01/44] bus/vdev: add helper to get vdev from eth dev Sorry that I missed the title in v1.. Better use 'ethdev' or 'eth device'here? Thanks, Chenbo > > This patch adds an helper macro to get the rte_vdev_device > pointer from a rte_eth_dev pointer. > > This is similar to RTE_ETH_DEV_TO_PCI(). > > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> > Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> > Reviewed-by: David Marchand <david.marchand@redhat.com> > --- > drivers/bus/vdev/rte_bus_vdev.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/bus/vdev/rte_bus_vdev.h b/drivers/bus/vdev/rte_bus_vdev.h > index d14eeb41b0..f99a41f825 100644 > --- a/drivers/bus/vdev/rte_bus_vdev.h > +++ b/drivers/bus/vdev/rte_bus_vdev.h > @@ -34,6 +34,8 @@ struct rte_vdev_device { > #define RTE_DEV_TO_VDEV_CONST(ptr) \ > container_of(ptr, const struct rte_vdev_device, device) > > +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) > + > static inline const char * > rte_vdev_device_name(const struct rte_vdev_device *dev) > { > -- > 2.29.2
On 1/20/21 1:56 AM, Thomas Monjalon wrote: > 19/01/2021 22:24, Maxime Coquelin: >> This patch adds an helper macro to get the rte_vdev_device >> pointer from a rte_eth_dev pointer. >> >> This is similar to RTE_ETH_DEV_TO_PCI(). > [...] >> --- a/drivers/bus/vdev/rte_bus_vdev.h >> +++ b/drivers/bus/vdev/rte_bus_vdev.h >> @@ -34,6 +34,8 @@ struct rte_vdev_device { >> +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) > > Why these macros (vdev and PCI) are not in ethdev? > > I think because that would put a dependency on vdev & pci bus drivers in ethdev library. Indeed, RTE_DEV_TO_VDEV needs to know about rte_vdev_device layout: #define RTE_DEV_TO_VDEV(ptr) \ container_of(ptr, struct rte_vdev_device, device) Regards, Maxime
25/01/2021 11:53, Maxime Coquelin: > > On 1/20/21 1:56 AM, Thomas Monjalon wrote: > > 19/01/2021 22:24, Maxime Coquelin: > >> This patch adds an helper macro to get the rte_vdev_device > >> pointer from a rte_eth_dev pointer. > >> > >> This is similar to RTE_ETH_DEV_TO_PCI(). > > [...] > >> --- a/drivers/bus/vdev/rte_bus_vdev.h > >> +++ b/drivers/bus/vdev/rte_bus_vdev.h > >> @@ -34,6 +34,8 @@ struct rte_vdev_device { > >> +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) > > > > Why these macros (vdev and PCI) are not in ethdev? > > > > > > I think because that would put a dependency on vdev & pci bus drivers in > ethdev library. > > Indeed, RTE_DEV_TO_VDEV needs to know about rte_vdev_device layout: > > #define RTE_DEV_TO_VDEV(ptr) \ > container_of(ptr, struct rte_vdev_device, device) OK
On 1/21/21 9:58 AM, Xia, Chenbo wrote: > Hi Maxime, > >> -----Original Message----- >> From: Maxime Coquelin <maxime.coquelin@redhat.com> >> Sent: Wednesday, January 20, 2021 5:24 AM >> To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>; olivier.matz@6wind.com; >> amorenoz@redhat.com; david.marchand@redhat.com >> Cc: Maxime Coquelin <maxime.coquelin@redhat.com> >> Subject: [PATCH v2 01/44] bus/vdev: add helper to get vdev from eth dev > > Sorry that I missed the title in v1.. > > Better use 'ethdev' or 'eth device'here? Changed to ethedv. Thanks, Maxime > Thanks, > Chenbo > >> >> This patch adds an helper macro to get the rte_vdev_device >> pointer from a rte_eth_dev pointer. >> >> This is similar to RTE_ETH_DEV_TO_PCI(). >> >> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> >> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> >> Reviewed-by: David Marchand <david.marchand@redhat.com> >> --- >> drivers/bus/vdev/rte_bus_vdev.h | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/bus/vdev/rte_bus_vdev.h b/drivers/bus/vdev/rte_bus_vdev.h >> index d14eeb41b0..f99a41f825 100644 >> --- a/drivers/bus/vdev/rte_bus_vdev.h >> +++ b/drivers/bus/vdev/rte_bus_vdev.h >> @@ -34,6 +34,8 @@ struct rte_vdev_device { >> #define RTE_DEV_TO_VDEV_CONST(ptr) \ >> container_of(ptr, const struct rte_vdev_device, device) >> >> +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) >> + >> static inline const char * >> rte_vdev_device_name(const struct rte_vdev_device *dev) >> { >> -- >> 2.29.2 >
diff --git a/drivers/bus/vdev/rte_bus_vdev.h b/drivers/bus/vdev/rte_bus_vdev.h index d14eeb41b0..f99a41f825 100644 --- a/drivers/bus/vdev/rte_bus_vdev.h +++ b/drivers/bus/vdev/rte_bus_vdev.h @@ -34,6 +34,8 @@ struct rte_vdev_device { #define RTE_DEV_TO_VDEV_CONST(ptr) \ container_of(ptr, const struct rte_vdev_device, device) +#define RTE_ETH_DEV_TO_VDEV(eth_dev) RTE_DEV_TO_VDEV((eth_dev)->device) + static inline const char * rte_vdev_device_name(const struct rte_vdev_device *dev) {