[dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section

Hemant Agrawal (OSS) hemant.agrawal at oss.nxp.com
Wed May 13 16:06:21 CEST 2020


Hi Ray,
	I could not find validate_abi using libabigail.abignore.  Am I missing something. 
Though check_abi.sh uses it. 

When I am checking with validate_abi.sh, I still see warnings.

Regards,
Hemant

> -----Original Message-----
> From: Hemant Agrawal <hemant.agrawal at nxp.com>
> Sent: Wednesday, May 13, 2020 6:58 PM
> To: dev at dpdk.org; david.marchand at redhat.com; mdr at ashroe.eu
> Cc: Hemant Agrawal <hemant.agrawal at nxp.com>
> Subject: [PATCH v3 01/12] common/dpaax: move internal symbols into
> INTERNAL section
> 
> This patch moves the internal symbols to INTERNAL sections so that any
> change in them is not reported as ABI breakage.
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> ---
>  devtools/libabigail.abignore                      |  3 +++
>  drivers/common/dpaax/dpaa_of.h                    | 15 +++++++++++++++
>  drivers/common/dpaax/dpaax_iova_table.h           |  4 ++++
>  drivers/common/dpaax/rte_common_dpaax_version.map |  2 +-
>  4 files changed, 23 insertions(+), 1 deletion(-)
> 
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore index
> c9ee73cb3c..b1488d5549 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -48,3 +48,6 @@
>          changed_enumerators = RTE_CRYPTO_AEAD_LIST_END
> [suppress_variable]
>          name = rte_crypto_aead_algorithm_strings
> +; Ignore moving DPAAx stable functions to INTERNAL tag [suppress_file]
> +	file_name_regexp = ^librte_common_dpaax\.
> diff --git a/drivers/common/dpaax/dpaa_of.h
> b/drivers/common/dpaax/dpaa_of.h index 960b421766..38d91a1afe 100644
> --- a/drivers/common/dpaax/dpaa_of.h
> +++ b/drivers/common/dpaax/dpaa_of.h
> @@ -24,6 +24,7 @@
>  #include <limits.h>
>  #include <rte_common.h>
>  #include <dpaa_list.h>
> +#include <rte_compat.h>
> 
>  #ifndef OF_INIT_DEFAULT_PATH
>  #define OF_INIT_DEFAULT_PATH "/proc/device-tree"
> @@ -102,6 +103,7 @@ struct dt_file {
>  	uint64_t buf[OF_FILE_BUF_MAX >> 3];
>  };
> 
> +__rte_internal
>  const struct device_node *of_find_compatible_node(
>  					const struct device_node *from,
>  					const char *type __rte_unused,
> @@ -113,32 +115,44 @@ const struct device_node
> *of_find_compatible_node(
>  		dev_node != NULL; \
>  		dev_node = of_find_compatible_node(dev_node, type,
> compatible))
> 
> +__rte_internal
>  const void *of_get_property(const struct device_node *from, const char
> *name,
>  			    size_t *lenp) __attribute__((nonnull(2)));
> +__rte_internal
>  bool of_device_is_available(const struct device_node *dev_node);
> 
> +
> +__rte_internal
>  const struct device_node *of_find_node_by_phandle(uint64_t ph);
> 
> +__rte_internal
>  const struct device_node *of_get_parent(const struct device_node
> *dev_node);
> 
> +__rte_internal
>  const struct device_node *of_get_next_child(const struct device_node
> *dev_node,
>  					    const struct device_node *prev);
> 
> +__rte_internal
>  const void *of_get_mac_address(const struct device_node *np);
> 
>  #define for_each_child_node(parent, child) \
>  	for (child = of_get_next_child(parent, NULL); child != NULL; \
>  			child = of_get_next_child(parent, child))
> 
> +
> +__rte_internal
>  uint32_t of_n_addr_cells(const struct device_node *dev_node);  uint32_t
> of_n_size_cells(const struct device_node *dev_node);
> 
> +__rte_internal
>  const uint32_t *of_get_address(const struct device_node *dev_node, size_t
> idx,
>  			       uint64_t *size, uint32_t *flags);
> 
> +__rte_internal
>  uint64_t of_translate_address(const struct device_node *dev_node,
>  			      const uint32_t *addr) __attribute__((nonnull));
> 
> +__rte_internal
>  bool of_device_is_compatible(const struct device_node *dev_node,
>  			     const char *compatible);
> 
> @@ -146,6 +160,7 @@ bool of_device_is_compatible(const struct
> device_node *dev_node,
>   * subsystem that is device-tree-dependent. Eg. Qman/Bman, config layers,
> etc.
>   * The path should usually be "/proc/device-tree".
>   */
> +__rte_internal
>  int of_init_path(const char *dt_path);
> 
>  /* of_finish() allows a controlled tear-down of the device-tree layer, eg. if a
> diff --git a/drivers/common/dpaax/dpaax_iova_table.h
> b/drivers/common/dpaax/dpaax_iova_table.h
> index fc3b9e7a8f..230fba8ba0 100644
> --- a/drivers/common/dpaax/dpaax_iova_table.h
> +++ b/drivers/common/dpaax/dpaax_iova_table.h
> @@ -61,9 +61,13 @@ extern struct dpaax_iova_table *dpaax_iova_table_p;
> #define DPAAX_MEM_SPLIT_MASK_OFF (DPAAX_MEM_SPLIT - 1) /**< Offset */
> 
>  /* APIs exposed */
> +__rte_internal
>  int dpaax_iova_table_populate(void);
> +__rte_internal
>  void dpaax_iova_table_depopulate(void);
> +__rte_internal
>  int dpaax_iova_table_update(phys_addr_t paddr, void *vaddr, size_t length);
> +__rte_internal
>  void dpaax_iova_table_dump(void);
> 
>  static inline void *dpaax_iova_table_get_va(phys_addr_t paddr) __rte_hot;
> diff --git a/drivers/common/dpaax/rte_common_dpaax_version.map
> b/drivers/common/dpaax/rte_common_dpaax_version.map
> index f72eba761d..ad2b2b3fec 100644
> --- a/drivers/common/dpaax/rte_common_dpaax_version.map
> +++ b/drivers/common/dpaax/rte_common_dpaax_version.map
> @@ -1,4 +1,4 @@
> -DPDK_20.0 {
> +INTERNAL {
>  	global:
> 
>  	dpaax_iova_table_depopulate;
> --
> 2.17.1



More information about the dev mailing list