Message ID | 20200515094752.28490-2-hemant.agrawal@nxp.com |
---|---|
State | New |
Headers | show |
Series | NXP DPAAx: move internal symbols to INTERNAL | expand |
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: *; > > }; > >
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: *; };
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(-) -- 2.17.1