mem: expose function for physical address use

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>
This commit is contained in:
Gaetan Rivet 2017-10-26 12:05:50 +02:00 committed by Thomas Monjalon
parent 2a46c2a2f2
commit 701b6f4909
5 changed files with 19 additions and 12 deletions

View File

@ -192,3 +192,9 @@ rte_eal_hugepage_attach(void)
close(fd_hugepage);
return -1;
}
int
rte_eal_using_phys_addrs(void)
{
return 0;
}

View File

@ -344,17 +344,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.
*

View File

@ -187,6 +187,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 __cplusplus
}
#endif

View File

@ -1494,7 +1494,7 @@ rte_eal_hugepage_attach(void)
return -1;
}
bool
int
rte_eal_using_phys_addrs(void)
{
return phys_addrs_available;

View File

@ -244,6 +244,7 @@ DPDK_17.11 {
rte_bus_get_iommu_class;
rte_eal_iova_mode;
rte_eal_mbuf_default_mempool_ops;
rte_eal_using_phys_addrs;
rte_lcore_has_role;
rte_memcpy_ptr;
rte_pci_get_iommu_class;