[v5,1/1] eal: add internal function to get base address
Checks
Commit Message
Added an internal helper to get OS-specific EAL mapping base address
This helper can be used by the drivers to program offload / accelerator
devices, where the base address can be used as a reference address by
the accelerator to access the host memory
An address can also be represented as an offset relative to the base
address using smaller data types
Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
---
lib/eal/common/eal_common_config.c | 9 +++++++++
lib/eal/include/rte_eal.h | 9 +++++++++
lib/eal/version.map | 1 +
3 files changed, 19 insertions(+)
Comments
Dmitry, Anatoly,
any new comment on this v5?
18/01/2022 14:33, Srikanth Yalavarthi:
> Added an internal helper to get OS-specific EAL mapping base address
>
> This helper can be used by the drivers to program offload / accelerator
> devices, where the base address can be used as a reference address by
> the accelerator to access the host memory
>
> An address can also be represented as an offset relative to the base
> address using smaller data types
>
> Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
> ---
> lib/eal/common/eal_common_config.c | 9 +++++++++
> lib/eal/include/rte_eal.h | 9 +++++++++
> lib/eal/version.map | 1 +
> 3 files changed, 19 insertions(+)
>
> diff --git a/lib/eal/common/eal_common_config.c b/lib/eal/common/eal_common_config.c
> index 1c4c4dd585..19598cb28d 100644
> --- a/lib/eal/common/eal_common_config.c
> +++ b/lib/eal/common/eal_common_config.c
> @@ -87,3 +87,12 @@ rte_eal_has_pci(void)
> {
> return !internal_config.no_pci;
> }
> +
> +/* Get the EAL base address */
> +uint64_t
> +rte_eal_get_baseaddr(void)
> +{
> + return (internal_config.base_virtaddr != 0) ?
> + (uint64_t) internal_config.base_virtaddr :
> + eal_get_baseaddr();
> +}
> diff --git a/lib/eal/include/rte_eal.h b/lib/eal/include/rte_eal.h
> index 5a34a6acd9..29298c3c83 100644
> --- a/lib/eal/include/rte_eal.h
> +++ b/lib/eal/include/rte_eal.h
> @@ -475,6 +475,15 @@ rte_eal_mbuf_user_pool_ops(void);
> const char *
> rte_eal_get_runtime_dir(void);
>
> +/**
> + * Get the OS-specific EAL base address.
> + *
> + * @return
> + * The base address.
> + */
> +__rte_internal
> +uint64_t rte_eal_get_baseaddr(void);
> +
> #ifdef __cplusplus
> }
> #endif
> diff --git a/lib/eal/version.map b/lib/eal/version.map
> index ab28c22791..b53eeb30d7 100644
> --- a/lib/eal/version.map
> +++ b/lib/eal/version.map
> @@ -425,6 +425,7 @@ EXPERIMENTAL {
> INTERNAL {
> global:
>
> + rte_eal_get_baseaddr;
> rte_firmware_read;
> rte_intr_allow_others;
> rte_intr_cap_multiple;
>
2022-01-18 05:33 (UTC-0800), Srikanth Yalavarthi:
> Added an internal helper to get OS-specific EAL mapping base address
>
> This helper can be used by the drivers to program offload / accelerator
> devices, where the base address can be used as a reference address by
> the accelerator to access the host memory
>
> An address can also be represented as an offset relative to the base
> address using smaller data types
>
> Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
> ---
> lib/eal/common/eal_common_config.c | 9 +++++++++
> lib/eal/include/rte_eal.h | 9 +++++++++
> lib/eal/version.map | 1 +
> 3 files changed, 19 insertions(+)
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
On 18-Jan-22 1:33 PM, Srikanth Yalavarthi wrote:
> Added an internal helper to get OS-specific EAL mapping base address
>
> This helper can be used by the drivers to program offload / accelerator
> devices, where the base address can be used as a reference address by
> the accelerator to access the host memory
>
> An address can also be represented as an offset relative to the base
> address using smaller data types
>
> Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
08/02/2022 18:15, Burakov, Anatoly:
> On 18-Jan-22 1:33 PM, Srikanth Yalavarthi wrote:
> > Added an internal helper to get OS-specific EAL mapping base address
> >
> > This helper can be used by the drivers to program offload / accelerator
> > devices, where the base address can be used as a reference address by
> > the accelerator to access the host memory
> >
> > An address can also be represented as an offset relative to the base
> > address using smaller data types
> >
> > Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Applied, thanks.
@@ -87,3 +87,12 @@ rte_eal_has_pci(void)
{
return !internal_config.no_pci;
}
+
+/* Get the EAL base address */
+uint64_t
+rte_eal_get_baseaddr(void)
+{
+ return (internal_config.base_virtaddr != 0) ?
+ (uint64_t) internal_config.base_virtaddr :
+ eal_get_baseaddr();
+}
@@ -475,6 +475,15 @@ rte_eal_mbuf_user_pool_ops(void);
const char *
rte_eal_get_runtime_dir(void);
+/**
+ * Get the OS-specific EAL base address.
+ *
+ * @return
+ * The base address.
+ */
+__rte_internal
+uint64_t rte_eal_get_baseaddr(void);
+
#ifdef __cplusplus
}
#endif
@@ -425,6 +425,7 @@ EXPERIMENTAL {
INTERNAL {
global:
+ rte_eal_get_baseaddr;
rte_firmware_read;
rte_intr_allow_others;
rte_intr_cap_multiple;