[v8,01/13] common/dpaax: move internal symbols into INTERNAL section
Checks
Commit Message
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@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 | 6 ++++--
4 files changed, 26 insertions(+), 2 deletions(-)
Comments
Hi Ray,
Will you please review and ack this series?.
Regards,
Hemant
> -----Original Message-----
> From: Hemant Agrawal <hemant.agrawal@nxp.com>
> Sent: Friday, May 15, 2020 3:18 PM
> To: dev@dpdk.org; david.marchand@redhat.com; mdr@ashroe.eu
> Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
> Subject: [PATCH v8 01/13] common/dpaax: move internal symbols into
> INTERNAL section
> Importance: High
>
> 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@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 | 6 ++++--
> 4 files changed, 26 insertions(+), 2 deletions(-)
>
> 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..14b507ad13 100644
> --- a/drivers/common/dpaax/rte_common_dpaax_version.map
> +++ b/drivers/common/dpaax/rte_common_dpaax_version.map
> @@ -1,4 +1,8 @@
> DPDK_20.0 {
> + local: *;
> +};
> +
> +INTERNAL {
> global:
>
> dpaax_iova_table_depopulate;
> @@ -18,6 +22,4 @@ DPDK_20.0 {
> of_init_path;
> of_n_addr_cells;
> of_translate_address;
> -
> - local: *;
> };
> --
> 2.17.1
Working on it at the moment Hemant.
Ray K
On 19/05/2020 07:43, Hemant Agrawal wrote:
> Hi Ray,
> Will you please review and ack this series?.
>
> Regards,
> Hemant
>
>> -----Original Message-----
>> From: Hemant Agrawal <hemant.agrawal@nxp.com>
>> Sent: Friday, May 15, 2020 3:18 PM
>> To: dev@dpdk.org; david.marchand@redhat.com; mdr@ashroe.eu
>> Cc: Hemant Agrawal <hemant.agrawal@nxp.com>
>> Subject: [PATCH v8 01/13] common/dpaax: move internal symbols into
>> INTERNAL section
>> Importance: High
>>
>> 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@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 | 6 ++++--
>> 4 files changed, 26 insertions(+), 2 deletions(-)
>>
>> 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..14b507ad13 100644
>> --- a/drivers/common/dpaax/rte_common_dpaax_version.map
>> +++ b/drivers/common/dpaax/rte_common_dpaax_version.map
>> @@ -1,4 +1,8 @@
>> DPDK_20.0 {
>> + local: *;
>> +};
>> +
>> +INTERNAL {
>> global:
>>
>> dpaax_iova_table_depopulate;
>> @@ -18,6 +22,4 @@ DPDK_20.0 {
>> of_init_path;
>> of_n_addr_cells;
>> of_translate_address;
>> -
>> - local: *;
>> };
>> --
>> 2.17.1
>
On 15/05/2020 10:47, Hemant Agrawal wrote:
> 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@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 | 6 ++++--
> 4 files changed, 26 insertions(+), 2 deletions(-)
>
> 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..14b507ad13 100644
> --- a/drivers/common/dpaax/rte_common_dpaax_version.map
> +++ b/drivers/common/dpaax/rte_common_dpaax_version.map
> @@ -1,4 +1,8 @@
> DPDK_20.0 {
> + local: *;
> +};
> +
> +INTERNAL {
you may need to rebase.
rte_common_dpaax_version.map already has an INTERNAL section.
> global:
>
> dpaax_iova_table_depopulate;
> @@ -18,6 +22,4 @@ DPDK_20.0 {
> of_init_path;
> of_n_addr_cells;
> of_translate_address;
> -
> - local: *;
> };
>
> > --- a/drivers/common/dpaax/rte_common_dpaax_version.map
> > +++ b/drivers/common/dpaax/rte_common_dpaax_version.map
> > @@ -1,4 +1,8 @@
> > DPDK_20.0 {
> > + local: *;
> > +};
> > +
> > +INTERNAL {
>
> you may need to rebase.
> rte_common_dpaax_version.map already has an INTERNAL section.
[Hemant] ok. I will rebase it.
>
> > global:
> >
> > dpaax_iova_table_depopulate;
> > @@ -18,6 +22,4 @@ DPDK_20.0 {
> > of_init_path;
> > of_n_addr_cells;
> > of_translate_address;
> > -
> > - local: *;
> > };
> >
@@ -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\.
@@ -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
@@ -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;
@@ -1,4 +1,8 @@
DPDK_20.0 {
+ local: *;
+};
+
+INTERNAL {
global:
dpaax_iova_table_depopulate;
@@ -18,6 +22,4 @@ DPDK_20.0 {
of_init_path;
of_n_addr_cells;
of_translate_address;
-
- local: *;
};