[dpdk-dev,v2,01/14] eal: expose rte_eal_using_phys_addrs
Checks
Commit Message
This function was previously private to the EAL layer.
Other subsystems requires it, such as the PCI bus.
In order not to force other components to include stdbool, which is
incompatible with several NIC drivers, the return type has
been changed from bool to int.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
lib/librte_eal/bsdapp/eal/eal_memory.c | 6 ++++++
lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 +
lib/librte_eal/common/eal_private.h | 11 -----------
lib/librte_eal/common/include/rte_memory.h | 11 +++++++++++
lib/librte_eal/linuxapp/eal/eal_memory.c | 2 +-
lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 +
6 files changed, 20 insertions(+), 12 deletions(-)
Comments
Hello Gaetan,
On Monday 18 September 2017 03:01 PM, Gaetan Rivet wrote:
> This function was previously private to the EAL layer.
> Other subsystems requires it, such as the PCI bus.
>
> In order not to force other components to include stdbool, which is
> incompatible with several NIC drivers, the return type has
> been changed from bool to int.
>
> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
> ---
[...]
> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
> index 5279128..af8719b 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
> @@ -1542,7 +1542,7 @@ rte_eal_hugepage_attach(void)
> return -1;
> }
>
> -bool
> +int
> rte_eal_using_phys_addrs(void)
> {
> return phys_addrs_available;
> diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> index 8c08b8d..f866b70 100644
> --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> @@ -205,6 +205,7 @@ DPDK_17.08 {
This symbol should be added to 17.11, isn't it?
> rte_bus_find;
> rte_bus_find_by_device;
> rte_bus_find_by_name;
> + rte_eal_using_phys_addrs;
> rte_log_get_level;
>
> } DPDK_17.05;
>
-
Shreyansh
On Mon, Sep 18, 2017 at 04:17:08PM +0530, Shreyansh Jain wrote:
> Hello Gaetan,
>
> On Monday 18 September 2017 03:01 PM, Gaetan Rivet wrote:
> >This function was previously private to the EAL layer.
> >Other subsystems requires it, such as the PCI bus.
> >
> >In order not to force other components to include stdbool, which is
> >incompatible with several NIC drivers, the return type has
> >been changed from bool to int.
> >
> >Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
> >---
>
> [...]
>
> >diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
> >index 5279128..af8719b 100644
> >--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
> >+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
> >@@ -1542,7 +1542,7 @@ rte_eal_hugepage_attach(void)
> > return -1;
> > }
> >-bool
> >+int
> > rte_eal_using_phys_addrs(void)
> > {
> > return phys_addrs_available;
> >diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> >index 8c08b8d..f866b70 100644
> >--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> >+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> >@@ -205,6 +205,7 @@ DPDK_17.08 {
>
> This symbol should be added to 17.11, isn't it?
>
Ah, yes indeed
> > rte_bus_find;
> > rte_bus_find_by_device;
> > rte_bus_find_by_name;
> >+ rte_eal_using_phys_addrs;
> > rte_log_get_level;
> > } DPDK_17.05;
> >
> -
> Shreyansh
@@ -192,3 +192,9 @@ rte_eal_hugepage_attach(void)
close(fd_hugepage);
return -1;
}
+
+int
+rte_eal_using_phys_addrs(void)
+{
+ return 0;
+}
@@ -200,6 +200,7 @@ DPDK_17.08 {
rte_bus_find;
rte_bus_find_by_device;
rte_bus_find_by_name;
+ rte_eal_using_phys_addrs;
rte_log_get_level;
} DPDK_17.05;
@@ -333,17 +333,6 @@ int rte_eal_hugepage_init(void);
int rte_eal_hugepage_attach(void);
/**
- * Returns true if the system is able to obtain
- * physical addresses. Return false if using DMA
- * addresses through an IOMMU.
- *
- * Drivers based on uio will not load unless physical
- * addresses are obtainable. It is only possible to get
- * physical addresses when running as a privileged user.
- */
-bool rte_eal_using_phys_addrs(void);
-
-/**
* Find a bus capable of identifying a device.
*
* @param str
@@ -195,6 +195,17 @@ unsigned rte_memory_get_nchannel(void);
*/
unsigned rte_memory_get_nrank(void);
+/**
+ * Drivers based on uio will not load unless physical
+ * addresses are obtainable. It is only possible to get
+ * physical addresses when running as a privileged user.
+ *
+ * @return
+ * 1 if the system is able to obtain physical addresses.
+ * 0 if using DMA addresses through an IOMMU.
+ */
+int rte_eal_using_phys_addrs(void);
+
#ifdef RTE_LIBRTE_XEN_DOM0
/**< Internal use only - should DOM0 memory mapping be used */
@@ -1542,7 +1542,7 @@ rte_eal_hugepage_attach(void)
return -1;
}
-bool
+int
rte_eal_using_phys_addrs(void)
{
return phys_addrs_available;
@@ -205,6 +205,7 @@ DPDK_17.08 {
rte_bus_find;
rte_bus_find_by_device;
rte_bus_find_by_name;
+ rte_eal_using_phys_addrs;
rte_log_get_level;
} DPDK_17.05;