DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section
@ 2020-05-05 14:08 Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 2/7] mempool/dpaa2: " Hemant Agrawal
                   ` (7 more replies)
  0 siblings, 8 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/common/dpaax/dpaa_of.h                    | 15 +++++++++++++++
 drivers/common/dpaax/dpaax_iova_table.h           |  4 ++++
 drivers/common/dpaax/rte_common_dpaax_version.map |  2 +-
 3 files changed, 20 insertions(+), 1 deletion(-)

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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH 2/7] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-05 14:08 ` Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 3/7] bus/fslmc: " Hemant Agrawal
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..142547ee38 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH 3/7] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 2/7] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-05 14:08 ` Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 4/7] bus/dpaa: " Hemant Agrawal
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  3 +-
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 14 files changed, 97 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..0eb40d39eb 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -101,7 +101,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
 
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH 4/7] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 2/7] mempool/dpaa2: " Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 3/7] bus/fslmc: " Hemant Agrawal
@ 2020-05-05 14:08 ` Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 5/7] crypto: " Hemant Agrawal
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  6 +++++
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  7 +----
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 7 files changed, 79 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..30ec63a09d 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,8 +67,12 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
 
 void qman_clear_irq(void);
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..f4947fac41 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +13,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -51,7 +50,6 @@ DPDK_20.0 {
 	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
-	qman_clear_irq;
 	qman_create_cgr;
 	qman_create_fq;
 	qman_dca_index;
@@ -87,10 +85,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH 5/7] crypto: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                   ` (2 preceding siblings ...)
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 4/7] bus/dpaa: " Hemant Agrawal
@ 2020-05-05 14:08 ` Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 6/7] net/dpaa2: " Hemant Agrawal
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 4 +---
 4 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..1352f576e5 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..aed07fb371 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,6 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH 6/7] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                   ` (3 preceding siblings ...)
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 5/7] crypto: " Hemant Agrawal
@ 2020-05-05 14:08 ` Hemant Agrawal
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 7/7] net/dpaa: " Hemant Agrawal
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa2/dpaa2_ethdev.h            | 2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..78ea74e058 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_eth_eventq_attach;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH 7/7] net/dpaa: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                   ` (4 preceding siblings ...)
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 6/7] net/dpaa2: " Hemant Agrawal
@ 2020-05-05 14:08 ` Hemant Agrawal
  2020-05-05 17:07 ` [dpdk-dev] [PATCH 1/7] common/dpaax: " David Marchand
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
  7 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-05 14:08 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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              | 1 +
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 ++++++++-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 986a527715..0db7f5e0b9 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -29,3 +29,4 @@
         type_kind = enum
         name = rte_eth_event_type
         changed_enumerators = RTE_ETH_EVENT_MAX
+
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..3df144dc8d 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,16 @@
 DPDK_20.0 {
 	global:
 
+	rte_pmd_dpaa_set_tx_loopback;
+
+	local: *;
+};
+
+INTERNAL {
+	global:
+
 	dpaa_eth_eventq_attach;
 	dpaa_eth_eventq_detach;
-	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                   ` (5 preceding siblings ...)
  2020-05-05 14:08 ` [dpdk-dev] [PATCH 7/7] net/dpaa: " Hemant Agrawal
@ 2020-05-05 17:07 ` David Marchand
  2020-05-07  6:20   ` Hemant Agrawal
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
  7 siblings, 1 reply; 134+ messages in thread
From: David Marchand @ 2020-05-05 17:07 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: dev, Ray Kinsella

Cc: Ray.

On Tue, May 5, 2020 at 4:10 PM Hemant Agrawal <hemant.agrawal@nxp.com> wrote:
>
> This patch moves the internal symbols to INTERNAL sections
> so that any change in them is not reported as ABI breakage.

Talking about the series (not just this patch as I did not look at the
details), travis reported a build issue:
https://travis-ci.com/github/ovsrobot/dpdk/builds/163985766

It looks like there is a versioned symbol for a static function of one
of those drivers.
$ git grep dpaa2_get_qbman_swp origin/master
origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:static struct
dpaa2_dpio_dev *dpaa2_get_qbman_swp(int lcoreid)
origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:
dpaa2_io_portal[lcore_id].dpio_dev = dpaa2_get_qbman_swp(lcore_id);
origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:
dpaa2_get_qbman_swp(lcore_id);
origin/master:drivers/bus/fslmc/rte_bus_fslmc_version.map:
dpaa2_get_qbman_swp;


Once fixed, I don't understand how you chose to move some symbols to
INTERNAL and not others.
Can you explain the differences?


Finally, I would still expect a failure in the ABI check even if using
__rte_internal marking.
Marking them internal will make you free of changing those symbols in
the future.
The problem is the transient state we are in.

In 20.02 (and I suppose 19.11 too), those symbols were exported and
versioned as stable DPDK_20.
So with the current ABI check script, this move will still be seen as a removal.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section
  2020-05-05 17:07 ` [dpdk-dev] [PATCH 1/7] common/dpaax: " David Marchand
@ 2020-05-07  6:20   ` Hemant Agrawal
  2020-05-07  6:54     ` Ray Kinsella
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-07  6:20 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, Ray Kinsella

Hi David

> On Tue, May 5, 2020 at 4:10 PM Hemant Agrawal
> <hemant.agrawal@nxp.com> wrote:
> >
> > This patch moves the internal symbols to INTERNAL sections so that any
> > change in them is not reported as ABI breakage.
> 
> Talking about the series (not just this patch as I did not look at the details),
> travis reported a build issue:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-
> ci.com%2Fgithub%2Fovsrobot%2Fdpdk%2Fbuilds%2F163985766&amp;data=02
> %7C01%7Chemant.agrawal%40nxp.com%7C555963f208a3446deba708d7f116e
> 1cf%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6372429528900581
> 54&amp;sdata=j2fqNXovCPfaLlPtZwS9TaMBKMBP5l7inwX%2BsndavS4%3D&am
> p;reserved=0
> 
> It looks like there is a versioned symbol for a static function of one of those
> drivers.
> $ git grep dpaa2_get_qbman_swp origin/master
> origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:static struct
> dpaa2_dpio_dev *dpaa2_get_qbman_swp(int lcoreid)
> origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:
> dpaa2_io_portal[lcore_id].dpio_dev = dpaa2_get_qbman_swp(lcore_id);
> origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:
> dpaa2_get_qbman_swp(lcore_id);
> origin/master:drivers/bus/fslmc/rte_bus_fslmc_version.map:
> dpaa2_get_qbman_swp;

[Hemant] yes, I saw it. It will be fixed in v2

> 
> 
> Once fixed, I don't understand how you chose to move some symbols to
> INTERNAL and not others.
> Can you explain the differences?

[Hemant] In most of the libraries the symbols are internal only. i.e. they are suppose to be used by other dpdk internal drivers.
Only very few cases rte_dpaa2_mempool.h, rte_pmd_dpaa2.h rte_pmd_dpaa.h have few functions, which are suppose to be used by the external entities or applications.

> 
> 
> Finally, I would still expect a failure in the ABI check even if using
> __rte_internal marking.
> Marking them internal will make you free of changing those symbols in the
> future.
> The problem is the transient state we are in.

[Hemant] I also expect it like this. But still facing few issues w.r.t variables.
__rte_internal can not be used as a predecessor for variable names. 
In map files dpaa have some of the variables also defined as part of symbols for the faster access across libraries. 
I am still looking a right way to handle them. 

> 
> In 20.02 (and I suppose 19.11 too), those symbols were exported and
> versioned as stable DPDK_20.
> So with the current ABI check script, this move will still be seen as a removal.
> 
> 
> --
> David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section
  2020-05-07  6:20   ` Hemant Agrawal
@ 2020-05-07  6:54     ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-07  6:54 UTC (permalink / raw)
  To: Hemant Agrawal, David Marchand; +Cc: dev



On 07/05/2020 07:20, Hemant Agrawal wrote:
> Hi David
> 
>> On Tue, May 5, 2020 at 4:10 PM Hemant Agrawal
>> <hemant.agrawal@nxp.com> wrote:
>>>
>>> This patch moves the internal symbols to INTERNAL sections so that any
>>> change in them is not reported as ABI breakage.
>>
>> Talking about the series (not just this patch as I did not look at the details),
>> travis reported a build issue:
>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-
>> ci.com%2Fgithub%2Fovsrobot%2Fdpdk%2Fbuilds%2F163985766&amp;data=02
>> %7C01%7Chemant.agrawal%40nxp.com%7C555963f208a3446deba708d7f116e
>> 1cf%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6372429528900581
>> 54&amp;sdata=j2fqNXovCPfaLlPtZwS9TaMBKMBP5l7inwX%2BsndavS4%3D&am
>> p;reserved=0
>>
>> It looks like there is a versioned symbol for a static function of one of those
>> drivers.
>> $ git grep dpaa2_get_qbman_swp origin/master
>> origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:static struct
>> dpaa2_dpio_dev *dpaa2_get_qbman_swp(int lcoreid)
>> origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:
>> dpaa2_io_portal[lcore_id].dpio_dev = dpaa2_get_qbman_swp(lcore_id);
>> origin/master:drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:
>> dpaa2_get_qbman_swp(lcore_id);
>> origin/master:drivers/bus/fslmc/rte_bus_fslmc_version.map:
>> dpaa2_get_qbman_swp;
> 
> [Hemant] yes, I saw it. It will be fixed in v2
> 
>>
>>
>> Once fixed, I don't understand how you chose to move some symbols to
>> INTERNAL and not others.
>> Can you explain the differences?
> 
> [Hemant] In most of the libraries the symbols are internal only. i.e. they are suppose to be used by other dpdk internal drivers.
> Only very few cases rte_dpaa2_mempool.h, rte_pmd_dpaa2.h rte_pmd_dpaa.h have few functions, which are suppose to be used by the external entities or applications.
> 
>>
>>
>> Finally, I would still expect a failure in the ABI check even if using
>> __rte_internal marking.
>> Marking them internal will make you free of changing those symbols in the
>> future.
>> The problem is the transient state we are in.
> 
> [Hemant] I also expect it like this. But still facing few issues w.r.t variables.
> __rte_internal can not be used as a predecessor for variable names. 
> In map files dpaa have some of the variables also defined as part of symbols for the faster access across libraries. 
> I am still looking a right way to handle them. 

I think your least error prone way is going to be to use an internal function to return a pointer to the variable(s).
rte_dpaa2+get_my_important variables.

> 
>>
>> In 20.02 (and I suppose 19.11 too), those symbols were exported and
>> versioned as stable DPDK_20.
>> So with the current ABI check script, this move will still be seen as a removal.
>>
>>
>> --
>> David Marchand
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                   ` (6 preceding siblings ...)
  2020-05-05 17:07 ` [dpdk-dev] [PATCH 1/7] common/dpaax: " David Marchand
@ 2020-05-12 14:00 ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 02/12] mempool/dpaa2: " Hemant Agrawal
                     ` (12 more replies)
  7 siblings, 13 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/common/dpaax/dpaa_of.h                    | 15 +++++++++++++++
 drivers/common/dpaax/dpaax_iova_table.h           |  4 ++++
 drivers/common/dpaax/rte_common_dpaax_version.map |  2 +-
 3 files changed, 20 insertions(+), 1 deletion(-)

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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 02/12] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 03/12] bus/fslmc: " Hemant Agrawal
                     ` (11 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..142547ee38 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 03/12] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 02/12] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 04/12] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
                     ` (10 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  4 +-
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 14 files changed, 97 insertions(+), 3 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..04e61156c3 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +11,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +100,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
 
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 04/12] bus/fslmc: share mcp ptr as function across libs
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 02/12] mempool/dpaa2: " Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 03/12] bus/fslmc: " Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 05/12] bus/fslmc: remove unused symbols Hemant Agrawal
                     ` (9 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@ static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 04e61156c3..53e3ce6f99 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -11,6 +11,7 @@ INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +102,6 @@ INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 
 	local: *;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 05/12] bus/fslmc: remove unused symbols
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (2 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 04/12] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 06/12] bus/dpaa: move internal symbols into INTERNAL section Hemant Agrawal
                     ` (8 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

rte_dpaa2_memsegs is not being used by any other library
or even within bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
 drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
 3 files changed, 10 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index 79b148f20b..d9619848d8 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -28,12 +28,6 @@
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-/* List of all the memseg information locally maintained in dpaa2 driver. This
- * is to optimize the PA_to_VA searches until a better mechanism (algo) is
- * available.
- */
-struct dpaa2_memseg_list rte_dpaa2_memsegs
-	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
 
 TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
 static struct dpbp_dev_list dpbp_dev_list
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 194b99c583..19fdd9cfaa 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -325,9 +325,6 @@ struct dpaa2_memseg {
 	size_t len;
 };
 
-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
-
 #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
 extern uint8_t dpaa2_virt_mode;
 static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 53e3ce6f99..975c769d9e 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -96,7 +96,6 @@ INTERNAL {
 	rte_dpaa2_free_dpci_dev;
 	rte_dpaa2_intr_disable;
 	rte_dpaa2_intr_enable;
-	rte_dpaa2_memsegs;
 	rte_fslmc_driver_register;
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 06/12] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (3 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 05/12] bus/fslmc: remove unused symbols Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 07/12] crypto: " Hemant Agrawal
                     ` (7 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  6 +++++
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  7 +----
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 7 files changed, 79 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..30ec63a09d 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,8 +67,12 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
 
 void qman_clear_irq(void);
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..f4947fac41 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +13,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -51,7 +50,6 @@ DPDK_20.0 {
 	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
-	qman_clear_irq;
 	qman_create_cgr;
 	qman_create_fq;
 	qman_dca_index;
@@ -87,10 +85,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 07/12] crypto: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (4 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 06/12] bus/dpaa: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 08/12] net/dpaa2: " Hemant Agrawal
                     ` (6 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 4 +---
 4 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..1352f576e5 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..aed07fb371 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,6 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 08/12] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (5 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 07/12] crypto: " Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 09/12] net/dpaa: " Hemant Agrawal
                     ` (5 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa2/dpaa2_ethdev.h            | 2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..78ea74e058 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_eth_eventq_attach;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 09/12] net/dpaa: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (6 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 08/12] net/dpaa2: " Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 10/12] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
                     ` (4 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..3df144dc8d 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,16 @@
 DPDK_20.0 {
 	global:
 
+	rte_pmd_dpaa_set_tx_loopback;
+
+	local: *;
+};
+
+INTERNAL {
+	global:
+
 	dpaa_eth_eventq_attach;
 	dpaa_eth_eventq_detach;
-	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 10/12] bus/dpaa: share qman portal ids as function calls
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (7 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 09/12] net/dpaa: " Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 11/12] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
                     ` (3 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

qman caam and pool portal ids are only used in control
path. This patch changes their inter library access to
function call instead of direct shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
 drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 69244ef701..1166d68e21 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
 	.type = dpaa_portal_qman
 };
 
+u16 dpaa_get_qm_channel_caam(void)
+{
+	return qm_channel_caam;
+}
+
+u16 dpaa_get_qm_channel_pool(void)
+{
+	return qm_channel_pool1;
+}
+
 static int fsl_qman_portal_init(uint32_t index, int is_shared)
 {
 	struct qman_portal *portal;
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 4411bb0a79..78b698f393 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -44,6 +44,12 @@ enum qm_dc_portal {
 	qm_dc_portal_pme = 3
 };
 
+__rte_internal
+u16 dpaa_get_qm_channel_caam(void);
+
+__rte_internal
+u16 dpaa_get_qm_channel_pool(void);
+
 /* Portal processing (interrupt) sources */
 #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
 #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
@@ -65,7 +71,7 @@ enum qm_dc_portal {
 /* for conversion from n of qm_channel */
 static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
 {
-	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
+	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
 }
 
 /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index f4947fac41..220fc32da1 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,8 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_qm_channel_caam;
+	dpaa_get_qm_channel_pool;
 	dpaa_logtype_eventdev;
 	dpaa_logtype_mempool;
 	dpaa_logtype_pmd;
@@ -46,8 +48,6 @@ INTERNAL {
 	netcfg_release;
 	per_lcore_dpaa_io;
 	per_lcore_held_bufs;
-	qm_channel_caam;
-	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
 	qman_create_cgr;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 25dcbd259a..4af9024a00 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
 
 	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
 	fq_opts.fqd.context_b = fqid_out;
-	fq_opts.fqd.dest.channel = qm_channel_caam;
+	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
 	fq_opts.fqd.dest.wq = 0;
 
 	fq_in->cb.ern  = ern_sec_fq_handler;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 11/12] bus/dpaa: move log into to respective dpaa drivers
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (8 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 10/12] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-12 14:00   ` Hemant Agrawal
  2020-05-12 14:01   ` [dpdk-dev] [PATCH v2 12/12] bus/dpaa: change netcfg access as function Hemant Agrawal
                     ` (2 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:00 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

This is to reduce the number of variables getting exposed
from the dpaa bus. They are not required to be in bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 19 +-------
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 --
 drivers/bus/dpaa/rte_dpaa_logs.h          | 58 -----------------------
 drivers/event/dpaa/dpaa_eventdev.c        |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h        | 16 +++++++
 drivers/mempool/dpaa/dpaa_mempool.c       |  8 ++++
 drivers/mempool/dpaa/dpaa_mempool.h       | 19 ++++++++
 drivers/net/dpaa/dpaa_ethdev.c            | 10 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 22 +++++++++
 9 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index f27820db37..41d42b0c30 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -43,9 +43,6 @@
 #include <netcfg.h>
 
 int dpaa_logtype_bus;
-int dpaa_logtype_mempool;
-int dpaa_logtype_pmd;
-int dpaa_logtype_eventdev;
 
 static struct rte_dpaa_bus rte_dpaa_bus;
 struct netcfg_info *dpaa_netcfg;
@@ -567,13 +564,13 @@ rte_dpaa_bus_probe(void)
 			/* One time load of Qman/Bman drivers */
 			ret = qman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("QMAN initialization failed: %d",
+				DPAA_BUS_ERR("QMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
 			ret = bman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("BMAN initialization failed: %d",
+				DPAA_BUS_ERR("BMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
@@ -752,16 +749,4 @@ RTE_INIT(dpaa_init_log)
 	dpaa_logtype_bus = rte_log_register("bus.dpaa");
 	if (dpaa_logtype_bus >= 0)
 		rte_log_set_level(dpaa_logtype_bus, RTE_LOG_NOTICE);
-
-	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
-	if (dpaa_logtype_mempool >= 0)
-		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
-
-	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
-	if (dpaa_logtype_pmd >= 0)
-		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
-
-	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
-	if (dpaa_logtype_eventdev >= 0)
-		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
 }
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 220fc32da1..9b02cc674c 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -10,10 +10,6 @@ INTERNAL {
 	bman_thread_irq;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
-	dpaa_logtype_eventdev;
-	dpaa_logtype_mempool;
-	dpaa_logtype_pmd;
-	dpaa_netcfg;
 	dpaa_svr_family;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h
index e414354320..149b127434 100644
--- a/drivers/bus/dpaa/rte_dpaa_logs.h
+++ b/drivers/bus/dpaa/rte_dpaa_logs.h
@@ -10,9 +10,6 @@
 #include <rte_log.h>
 
 extern int dpaa_logtype_bus;
-extern int dpaa_logtype_mempool;
-extern int dpaa_logtype_pmd;
-extern int dpaa_logtype_eventdev;
 
 #define DPAA_BUS_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, dpaa_logtype_bus, "dpaa: " fmt "\n", ##args)
@@ -40,59 +37,4 @@ extern int dpaa_logtype_eventdev;
 #define DPAA_BUS_WARN(fmt, args...) \
 	DPAA_BUS_LOG(WARNING, fmt, ## args)
 
-/* Mempool related logs */
-
-#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
-
-#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
-	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
-#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
-	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
-#define DPAA_MEMPOOL_ERR(fmt, args...) \
-	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
-#define DPAA_MEMPOOL_INFO(fmt, args...) \
-	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
-#define DPAA_MEMPOOL_WARN(fmt, args...) \
-	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
-
-/* PMD related logs */
-
-#define DPAA_PMD_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
-
-#define DPAA_PMD_DEBUG(fmt, args...) \
-	DPAA_PMD_LOG(DEBUG, fmt, ## args)
-#define DPAA_PMD_ERR(fmt, args...) \
-	DPAA_PMD_LOG(ERR, fmt, ## args)
-#define DPAA_PMD_INFO(fmt, args...) \
-	DPAA_PMD_LOG(INFO, fmt, ## args)
-#define DPAA_PMD_WARN(fmt, args...) \
-	DPAA_PMD_LOG(WARNING, fmt, ## args)
-
-#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
-
-#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
-	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
-#define DPAA_EVENTDEV_ERR(fmt, args...) \
-	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
-#define DPAA_EVENTDEV_INFO(fmt, args...) \
-	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
-#define DPAA_EVENTDEV_WARN(fmt, args...) \
-	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
-
-/* DP Logs, toggled out at compile time if level lower than current level */
-#define DPAA_DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
-
 #endif /* _DPAA_LOGS_H_ */
diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index a7d57edce7..5a018d4871 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -46,6 +46,7 @@
  * Eventqueue = Channel Instance
  * 1 Eventdev can have N Eventqueue
  */
+int dpaa_logtype_eventdev;
 
 #define DISABLE_INTR_MODE "disable_intr"
 
@@ -1068,3 +1069,9 @@ static struct rte_vdev_driver vdev_eventdev_dpaa_pmd = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DPAA_PMD, vdev_eventdev_dpaa_pmd);
 RTE_PMD_REGISTER_PARAM_STRING(EVENTDEV_NAME_DPAA_PMD,
 		DISABLE_INTR_MODE "=<int>");
+RTE_INIT(dpaa_event_init_log)
+{
+	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
+	if (dpaa_logtype_eventdev >= 0)
+		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/dpaa/dpaa_eventdev.h b/drivers/event/dpaa/dpaa_eventdev.h
index 5ce15a3db9..0b3da83a4f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.h
+++ b/drivers/event/dpaa/dpaa_eventdev.h
@@ -76,4 +76,20 @@ struct dpaa_eventdev {
 	uint32_t nb_event_port_enqueue_depth;
 	uint32_t event_dev_cfg;
 };
+
+#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
+
+#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
+	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
+#define DPAA_EVENTDEV_ERR(fmt, args...) \
+	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
+#define DPAA_EVENTDEV_INFO(fmt, args...) \
+	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
+#define DPAA_EVENTDEV_WARN(fmt, args...) \
+	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
+
 #endif /* __DPAA_EVENTDEV_H__ */
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 3a2528331c..451e2d5d56 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -36,6 +36,7 @@ struct dpaa_memseg_list rte_dpaa_memsegs
 	= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
 
 struct dpaa_bp_info *rte_dpaa_bpid_info;
+int dpaa_logtype_mempool;
 
 static int
 dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@ -356,3 +357,10 @@ static const struct rte_mempool_ops dpaa_mpool_ops = {
 };
 
 MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);
+
+RTE_INIT(dpaa_mp_init_log)
+{
+	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
+	if (dpaa_logtype_mempool >= 0)
+		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
+}
diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h
index f69e11f011..dc0058e6dd 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.h
+++ b/drivers/mempool/dpaa/dpaa_mempool.h
@@ -58,4 +58,23 @@ extern struct dpaa_bp_info *rte_dpaa_bpid_info;
 
 #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid])
 
+/* Mempool related logs */
+
+#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
+
+#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
+	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
+#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
+	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
+#define DPAA_MEMPOOL_ERR(fmt, args...) \
+	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
+#define DPAA_MEMPOOL_INFO(fmt, args...) \
+	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
+#define DPAA_MEMPOOL_WARN(fmt, args...) \
+	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
+
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 56eb5ec47c..c97f3042be 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -46,6 +46,8 @@
 #include <fsl_bman.h>
 #include <fsl_fman.h>
 
+int dpaa_logtype_pmd;
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -1058,7 +1060,7 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 
 	temp1 = read(rxq->q_fd, &temp, sizeof(temp));
 	if (temp1 != sizeof(temp))
-		DPAA_EVENTDEV_ERR("irq read error");
+		DPAA_PMD_ERR("irq read error");
 
 	qman_fq_portal_thread_irq(rxq->qp);
 
@@ -1664,3 +1666,9 @@ static struct rte_dpaa_driver rte_dpaa_pmd = {
 };
 
 RTE_PMD_REGISTER_DPAA(net_dpaa, rte_dpaa_pmd);
+RTE_INIT(dpaa_net_init_log)
+{
+	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
+	if (dpaa_logtype_pmd >= 0)
+		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
+}
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 7393a9df05..6a6477ac87 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -185,4 +185,26 @@ dpaa_rx_cb_atomic(void *event,
 		  const struct qm_dqrr_entry *dqrr,
 		  void **bufs);
 
+/* PMD related logs */
+extern int dpaa_logtype_pmd;
+
+#define DPAA_PMD_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
+
+#define DPAA_PMD_DEBUG(fmt, args...) \
+	DPAA_PMD_LOG(DEBUG, fmt, ## args)
+#define DPAA_PMD_ERR(fmt, args...) \
+	DPAA_PMD_LOG(ERR, fmt, ## args)
+#define DPAA_PMD_INFO(fmt, args...) \
+	DPAA_PMD_LOG(INFO, fmt, ## args)
+#define DPAA_PMD_WARN(fmt, args...) \
+	DPAA_PMD_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level */
+#define DPAA_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt, ## args)
+
 #endif
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v2 12/12] bus/dpaa: change netcfg access as function
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (9 preceding siblings ...)
  2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 11/12] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
@ 2020-05-12 14:01   ` Hemant Agrawal
  2020-05-13 12:44   ` [dpdk-dev] [PATCH v2 01/12] common/dpaax: move internal symbols into INTERNAL section Thomas Monjalon
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-12 14:01 UTC (permalink / raw)
  To: dev, david.marchand; +Cc: Hemant Agrawal

This patch changes the export of fman port config
as function call instead of direct variable access.
This is in control path, so it will not impact perf.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
 drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
 drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
 drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 41d42b0c30..d53fe6083a 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
 RTE_DEFINE_PER_LCORE(bool, dpaa_io);
 RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 
+struct fm_eth_port_cfg *
+dpaa_get_eth_port_cfg(int dev_id)
+{
+	return &dpaa_netcfg->port_cfg[dev_id];
+}
+
 static int
 compare_dpaa_devices(struct rte_dpaa_device *dev1,
 		     struct rte_dpaa_device *dev2)
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 9b02cc674c..1d6bd39f4d 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,7 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_eth_port_cfg;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
 	dpaa_svr_family;
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index d4aee132ef..2a186d83fb 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -44,9 +44,6 @@ struct rte_dpaa_driver;
 TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
 TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
 
-/* Configuration variables exported from DPAA bus */
-extern struct netcfg_info *dpaa_netcfg;
-
 enum rte_dpaa_type {
 	FSL_DPAA_ETH = 1,
 	FSL_DPAA_CRYPTO,
@@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
 #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
 
+__rte_internal
+struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index c97f3042be..13d1c6a1fc 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
 	dpaa_intf = eth_dev->data->dev_private;
-	cfg = &dpaa_netcfg->port_cfg[dev_id];
+	cfg = dpaa_get_eth_port_cfg(dev_id);
 	fman_intf = cfg->fman_if;
 
 	dpaa_intf->name = dpaa_device->name;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v2 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (10 preceding siblings ...)
  2020-05-12 14:01   ` [dpdk-dev] [PATCH v2 12/12] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-13 12:44   ` Thomas Monjalon
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Thomas Monjalon @ 2020-05-13 12:44 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: dev, david.marchand, mdr

12/05/2020 16:00, Hemant Agrawal:
> 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>
> ---
>  drivers/common/dpaax/dpaa_of.h                    | 15 +++++++++++++++
>  drivers/common/dpaax/dpaax_iova_table.h           |  4 ++++
>  drivers/common/dpaax/rte_common_dpaax_version.map |  2 +-
>  3 files changed, 20 insertions(+), 1 deletion(-)

It is missing an exception in devtools/libabigail.abignore.
Are you running ABI check on those patches?

+Cc Ray, maintainer of ABI stuff.



^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL
  2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
                     ` (11 preceding siblings ...)
  2020-05-13 12:44   ` [dpdk-dev] [PATCH v2 01/12] common/dpaax: move internal symbols into INTERNAL section Thomas Monjalon
@ 2020-05-13 13:27   ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                       ` (12 more replies)
  12 siblings, 13 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr

This patchset moves the internal symbol to the INTERNAL sections

This patch also change some of the shared variables to function
calls. (Mostly control path used variables). 

Hemant Agrawal (12):
  common/dpaax: move internal symbols into INTERNAL section
  mempool/dpaa2: move internal symbols into INTERNAL section
  bus/fslmc: move internal symbols into INTERNAL section
  bus/dpaa: move internal symbols into INTERNAL section
  crypto: move internal symbols into INTERNAL section
  net/dpaa2: move internal symbols into INTERNAL section
  net/dpaa: move internal symbols into INTERNAL section
  bus/dpaa: share qman portal ids as function calls
  bus/dpaa: move log into to respective dpaa drivers
  bus/dpaa: change netcfg access as function
  bus/fslmc: share mcp ptr as function across libs
  bus/fslmc: remove unused symbols

 devtools/libabigail.abignore                  | 11 ++++
 drivers/bus/dpaa/base/qbman/qman_driver.c     | 10 ++++
 drivers/bus/dpaa/dpaa_bus.c                   | 25 +++-----
 drivers/bus/dpaa/include/fsl_bman.h           |  6 ++
 drivers/bus/dpaa/include/fsl_fman.h           | 27 +++++++++
 drivers/bus/dpaa/include/fsl_qman.h           | 40 ++++++++++++-
 drivers/bus/dpaa/include/fsl_usd.h            |  6 ++
 drivers/bus/dpaa/include/netcfg.h             |  2 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map     | 16 ++---
 drivers/bus/dpaa/rte_dpaa_bus.h               | 11 +++-
 drivers/bus/dpaa/rte_dpaa_logs.h              | 58 -------------------
 drivers/bus/fslmc/fslmc_vfio.c                | 15 ++++-
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 ++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 +
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 +++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 +++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |  8 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 ++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       | 18 ++++--
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 +
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  7 +--
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 drivers/common/dpaax/dpaa_of.h                | 15 +++++
 drivers/common/dpaax/dpaax_iova_table.h       |  4 ++
 .../common/dpaax/rte_common_dpaax_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h    |  5 +-
 .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map   |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h      |  8 +--
 .../dpaa_sec/rte_pmd_dpaa_sec_version.map     |  4 +-
 drivers/event/dpaa/dpaa_eventdev.c            |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h            | 16 +++++
 drivers/event/dpaa2/dpaa2_hw_dpcon.c          |  2 +-
 drivers/mempool/dpaa/dpaa_mempool.c           |  8 +++
 drivers/mempool/dpaa/dpaa_mempool.h           | 19 ++++++
 .../mempool/dpaa/rte_mempool_dpaa_version.map |  2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h      |  1 +
 .../dpaa2/rte_mempool_dpaa2_version.map       |  9 ++-
 drivers/net/dpaa/dpaa_ethdev.c                | 12 +++-
 drivers/net/dpaa/dpaa_ethdev.h                | 24 ++++++++
 drivers/net/dpaa/rte_pmd_dpaa_version.map     |  9 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.h              |  2 +
 drivers/net/dpaa2/dpaa2_mux.c                 |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  2 +-
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map   |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           |  2 +-
 55 files changed, 378 insertions(+), 139 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 14:06       ` Hemant Agrawal (OSS)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 02/12] mempool/dpaa2: " Hemant Agrawal
                       ` (11 subsequent siblings)
  12 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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 |  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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 02/12] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 03/12] bus/fslmc: " Hemant Agrawal
                       ` (10 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
--
v3: add entry in libabigail.abinore file
---
 devtools/libabigail.abignore                        | 2 ++
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index b1488d5549..4a5241073e 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -51,3 +51,5 @@
 ; Ignore moving DPAAx stable functions to INTERNAL tag
 [suppress_file]
 	file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+	file_name_regexp = ^librte_mempool_dpaa\.
diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..142547ee38 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 03/12] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 02/12] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 04/12] bus/dpaa: " Hemant Agrawal
                       ` (9 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which were not used
anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                  |  2 +
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  4 +-
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 15 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 4a5241073e..6b4579f45d 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -53,3 +53,5 @@
 	file_name_regexp = ^librte_common_dpaax\.
 [suppress_file]
 	file_name_regexp = ^librte_mempool_dpaa\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_fslmc\.
diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..04e61156c3 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +11,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +100,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
 
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 04/12] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (2 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 03/12] bus/fslmc: " Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 05/12] crypto: " Hemant Agrawal
                       ` (8 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              |  2 ++
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  6 +++++
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  7 +----
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 8 files changed, 81 insertions(+), 6 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 6b4579f45d..5c69a72a82 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -55,3 +55,5 @@
 	file_name_regexp = ^librte_mempool_dpaa\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_dpaa\.
diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..30ec63a09d 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,8 +67,12 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
 
 void qman_clear_irq(void);
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..f4947fac41 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +13,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -51,7 +50,6 @@ DPDK_20.0 {
 	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
-	qman_clear_irq;
 	qman_create_cgr;
 	qman_create_fq;
 	qman_dca_index;
@@ -87,10 +85,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 05/12] crypto: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (3 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 04/12] bus/dpaa: " Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 06/12] net/dpaa2: " Hemant Agrawal
                       ` (7 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                           | 2 ++
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 4 +---
 5 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 5c69a72a82..ebdfe87040 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -57,3 +57,5 @@
 	file_name_regexp = ^librte_bus_fslmc\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_dpaa\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa\.
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..1352f576e5 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..aed07fb371 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,6 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 06/12] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (4 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 05/12] crypto: " Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 07/12] net/dpaa: " Hemant Agrawal
                       ` (6 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa2/dpaa2_ethdev.h            | 2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..78ea74e058 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_eth_eventq_attach;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 07/12] net/dpaa: move internal symbols into INTERNAL section
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (5 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 06/12] net/dpaa2: " Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 08/12] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
                       ` (5 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..3df144dc8d 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,16 @@
 DPDK_20.0 {
 	global:
 
+	rte_pmd_dpaa_set_tx_loopback;
+
+	local: *;
+};
+
+INTERNAL {
+	global:
+
 	dpaa_eth_eventq_attach;
 	dpaa_eth_eventq_detach;
-	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 08/12] bus/dpaa: share qman portal ids as function calls
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (6 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 07/12] net/dpaa: " Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 09/12] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
                       ` (4 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

qman caam and pool portal ids are only used in control
path. This patch changes their inter library access to
function call instead of direct shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
 drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 69244ef701..1166d68e21 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
 	.type = dpaa_portal_qman
 };
 
+u16 dpaa_get_qm_channel_caam(void)
+{
+	return qm_channel_caam;
+}
+
+u16 dpaa_get_qm_channel_pool(void)
+{
+	return qm_channel_pool1;
+}
+
 static int fsl_qman_portal_init(uint32_t index, int is_shared)
 {
 	struct qman_portal *portal;
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 4411bb0a79..78b698f393 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -44,6 +44,12 @@ enum qm_dc_portal {
 	qm_dc_portal_pme = 3
 };
 
+__rte_internal
+u16 dpaa_get_qm_channel_caam(void);
+
+__rte_internal
+u16 dpaa_get_qm_channel_pool(void);
+
 /* Portal processing (interrupt) sources */
 #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
 #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
@@ -65,7 +71,7 @@ enum qm_dc_portal {
 /* for conversion from n of qm_channel */
 static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
 {
-	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
+	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
 }
 
 /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index f4947fac41..220fc32da1 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,8 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_qm_channel_caam;
+	dpaa_get_qm_channel_pool;
 	dpaa_logtype_eventdev;
 	dpaa_logtype_mempool;
 	dpaa_logtype_pmd;
@@ -46,8 +48,6 @@ INTERNAL {
 	netcfg_release;
 	per_lcore_dpaa_io;
 	per_lcore_held_bufs;
-	qm_channel_caam;
-	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
 	qman_create_cgr;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 25dcbd259a..4af9024a00 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
 
 	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
 	fq_opts.fqd.context_b = fqid_out;
-	fq_opts.fqd.dest.channel = qm_channel_caam;
+	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
 	fq_opts.fqd.dest.wq = 0;
 
 	fq_in->cb.ern  = ern_sec_fq_handler;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 09/12] bus/dpaa: move log into to respective dpaa drivers
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (7 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 08/12] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 10/12] bus/dpaa: change netcfg access as function Hemant Agrawal
                       ` (3 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This is to reduce the number of variables getting exposed
from the dpaa bus. They are not required to be in bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 19 +-------
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 --
 drivers/bus/dpaa/rte_dpaa_logs.h          | 58 -----------------------
 drivers/event/dpaa/dpaa_eventdev.c        |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h        | 16 +++++++
 drivers/mempool/dpaa/dpaa_mempool.c       |  8 ++++
 drivers/mempool/dpaa/dpaa_mempool.h       | 19 ++++++++
 drivers/net/dpaa/dpaa_ethdev.c            | 10 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 22 +++++++++
 9 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index f27820db37..41d42b0c30 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -43,9 +43,6 @@
 #include <netcfg.h>
 
 int dpaa_logtype_bus;
-int dpaa_logtype_mempool;
-int dpaa_logtype_pmd;
-int dpaa_logtype_eventdev;
 
 static struct rte_dpaa_bus rte_dpaa_bus;
 struct netcfg_info *dpaa_netcfg;
@@ -567,13 +564,13 @@ rte_dpaa_bus_probe(void)
 			/* One time load of Qman/Bman drivers */
 			ret = qman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("QMAN initialization failed: %d",
+				DPAA_BUS_ERR("QMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
 			ret = bman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("BMAN initialization failed: %d",
+				DPAA_BUS_ERR("BMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
@@ -752,16 +749,4 @@ RTE_INIT(dpaa_init_log)
 	dpaa_logtype_bus = rte_log_register("bus.dpaa");
 	if (dpaa_logtype_bus >= 0)
 		rte_log_set_level(dpaa_logtype_bus, RTE_LOG_NOTICE);
-
-	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
-	if (dpaa_logtype_mempool >= 0)
-		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
-
-	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
-	if (dpaa_logtype_pmd >= 0)
-		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
-
-	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
-	if (dpaa_logtype_eventdev >= 0)
-		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
 }
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 220fc32da1..9b02cc674c 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -10,10 +10,6 @@ INTERNAL {
 	bman_thread_irq;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
-	dpaa_logtype_eventdev;
-	dpaa_logtype_mempool;
-	dpaa_logtype_pmd;
-	dpaa_netcfg;
 	dpaa_svr_family;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h
index e414354320..149b127434 100644
--- a/drivers/bus/dpaa/rte_dpaa_logs.h
+++ b/drivers/bus/dpaa/rte_dpaa_logs.h
@@ -10,9 +10,6 @@
 #include <rte_log.h>
 
 extern int dpaa_logtype_bus;
-extern int dpaa_logtype_mempool;
-extern int dpaa_logtype_pmd;
-extern int dpaa_logtype_eventdev;
 
 #define DPAA_BUS_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, dpaa_logtype_bus, "dpaa: " fmt "\n", ##args)
@@ -40,59 +37,4 @@ extern int dpaa_logtype_eventdev;
 #define DPAA_BUS_WARN(fmt, args...) \
 	DPAA_BUS_LOG(WARNING, fmt, ## args)
 
-/* Mempool related logs */
-
-#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
-
-#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
-	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
-#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
-	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
-#define DPAA_MEMPOOL_ERR(fmt, args...) \
-	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
-#define DPAA_MEMPOOL_INFO(fmt, args...) \
-	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
-#define DPAA_MEMPOOL_WARN(fmt, args...) \
-	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
-
-/* PMD related logs */
-
-#define DPAA_PMD_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
-
-#define DPAA_PMD_DEBUG(fmt, args...) \
-	DPAA_PMD_LOG(DEBUG, fmt, ## args)
-#define DPAA_PMD_ERR(fmt, args...) \
-	DPAA_PMD_LOG(ERR, fmt, ## args)
-#define DPAA_PMD_INFO(fmt, args...) \
-	DPAA_PMD_LOG(INFO, fmt, ## args)
-#define DPAA_PMD_WARN(fmt, args...) \
-	DPAA_PMD_LOG(WARNING, fmt, ## args)
-
-#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
-
-#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
-	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
-#define DPAA_EVENTDEV_ERR(fmt, args...) \
-	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
-#define DPAA_EVENTDEV_INFO(fmt, args...) \
-	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
-#define DPAA_EVENTDEV_WARN(fmt, args...) \
-	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
-
-/* DP Logs, toggled out at compile time if level lower than current level */
-#define DPAA_DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
-
 #endif /* _DPAA_LOGS_H_ */
diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index a7d57edce7..5a018d4871 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -46,6 +46,7 @@
  * Eventqueue = Channel Instance
  * 1 Eventdev can have N Eventqueue
  */
+int dpaa_logtype_eventdev;
 
 #define DISABLE_INTR_MODE "disable_intr"
 
@@ -1068,3 +1069,9 @@ static struct rte_vdev_driver vdev_eventdev_dpaa_pmd = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DPAA_PMD, vdev_eventdev_dpaa_pmd);
 RTE_PMD_REGISTER_PARAM_STRING(EVENTDEV_NAME_DPAA_PMD,
 		DISABLE_INTR_MODE "=<int>");
+RTE_INIT(dpaa_event_init_log)
+{
+	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
+	if (dpaa_logtype_eventdev >= 0)
+		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/dpaa/dpaa_eventdev.h b/drivers/event/dpaa/dpaa_eventdev.h
index 5ce15a3db9..0b3da83a4f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.h
+++ b/drivers/event/dpaa/dpaa_eventdev.h
@@ -76,4 +76,20 @@ struct dpaa_eventdev {
 	uint32_t nb_event_port_enqueue_depth;
 	uint32_t event_dev_cfg;
 };
+
+#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
+
+#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
+	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
+#define DPAA_EVENTDEV_ERR(fmt, args...) \
+	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
+#define DPAA_EVENTDEV_INFO(fmt, args...) \
+	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
+#define DPAA_EVENTDEV_WARN(fmt, args...) \
+	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
+
 #endif /* __DPAA_EVENTDEV_H__ */
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 3a2528331c..451e2d5d56 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -36,6 +36,7 @@ struct dpaa_memseg_list rte_dpaa_memsegs
 	= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
 
 struct dpaa_bp_info *rte_dpaa_bpid_info;
+int dpaa_logtype_mempool;
 
 static int
 dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@ -356,3 +357,10 @@ static const struct rte_mempool_ops dpaa_mpool_ops = {
 };
 
 MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);
+
+RTE_INIT(dpaa_mp_init_log)
+{
+	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
+	if (dpaa_logtype_mempool >= 0)
+		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
+}
diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h
index f69e11f011..dc0058e6dd 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.h
+++ b/drivers/mempool/dpaa/dpaa_mempool.h
@@ -58,4 +58,23 @@ extern struct dpaa_bp_info *rte_dpaa_bpid_info;
 
 #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid])
 
+/* Mempool related logs */
+
+#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
+
+#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
+	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
+#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
+	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
+#define DPAA_MEMPOOL_ERR(fmt, args...) \
+	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
+#define DPAA_MEMPOOL_INFO(fmt, args...) \
+	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
+#define DPAA_MEMPOOL_WARN(fmt, args...) \
+	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
+
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 56eb5ec47c..c97f3042be 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -46,6 +46,8 @@
 #include <fsl_bman.h>
 #include <fsl_fman.h>
 
+int dpaa_logtype_pmd;
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -1058,7 +1060,7 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 
 	temp1 = read(rxq->q_fd, &temp, sizeof(temp));
 	if (temp1 != sizeof(temp))
-		DPAA_EVENTDEV_ERR("irq read error");
+		DPAA_PMD_ERR("irq read error");
 
 	qman_fq_portal_thread_irq(rxq->qp);
 
@@ -1664,3 +1666,9 @@ static struct rte_dpaa_driver rte_dpaa_pmd = {
 };
 
 RTE_PMD_REGISTER_DPAA(net_dpaa, rte_dpaa_pmd);
+RTE_INIT(dpaa_net_init_log)
+{
+	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
+	if (dpaa_logtype_pmd >= 0)
+		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
+}
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 7393a9df05..6a6477ac87 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -185,4 +185,26 @@ dpaa_rx_cb_atomic(void *event,
 		  const struct qm_dqrr_entry *dqrr,
 		  void **bufs);
 
+/* PMD related logs */
+extern int dpaa_logtype_pmd;
+
+#define DPAA_PMD_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
+
+#define DPAA_PMD_DEBUG(fmt, args...) \
+	DPAA_PMD_LOG(DEBUG, fmt, ## args)
+#define DPAA_PMD_ERR(fmt, args...) \
+	DPAA_PMD_LOG(ERR, fmt, ## args)
+#define DPAA_PMD_INFO(fmt, args...) \
+	DPAA_PMD_LOG(INFO, fmt, ## args)
+#define DPAA_PMD_WARN(fmt, args...) \
+	DPAA_PMD_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level */
+#define DPAA_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt, ## args)
+
 #endif
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 10/12] bus/dpaa: change netcfg access as function
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (8 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 09/12] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 11/12] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
                       ` (2 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch changes the export of fman port config
as function call instead of direct variable access.
This is in control path, so it will not impact perf.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
 drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
 drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
 drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 41d42b0c30..d53fe6083a 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
 RTE_DEFINE_PER_LCORE(bool, dpaa_io);
 RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 
+struct fm_eth_port_cfg *
+dpaa_get_eth_port_cfg(int dev_id)
+{
+	return &dpaa_netcfg->port_cfg[dev_id];
+}
+
 static int
 compare_dpaa_devices(struct rte_dpaa_device *dev1,
 		     struct rte_dpaa_device *dev2)
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 9b02cc674c..1d6bd39f4d 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,7 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_eth_port_cfg;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
 	dpaa_svr_family;
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index d4aee132ef..2a186d83fb 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -44,9 +44,6 @@ struct rte_dpaa_driver;
 TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
 TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
 
-/* Configuration variables exported from DPAA bus */
-extern struct netcfg_info *dpaa_netcfg;
-
 enum rte_dpaa_type {
 	FSL_DPAA_ETH = 1,
 	FSL_DPAA_CRYPTO,
@@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
 #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
 
+__rte_internal
+struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index c97f3042be..13d1c6a1fc 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
 	dpaa_intf = eth_dev->data->dev_private;
-	cfg = &dpaa_netcfg->port_cfg[dev_id];
+	cfg = dpaa_get_eth_port_cfg(dev_id);
 	fman_intf = cfg->fman_if;
 
 	dpaa_intf->name = dpaa_device->name;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 11/12] bus/fslmc: share mcp ptr as function across libs
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (9 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 10/12] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 12/12] bus/fslmc: remove unused symbols Hemant Agrawal
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@ static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 04e61156c3..53e3ce6f99 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -11,6 +11,7 @@ INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +102,6 @@ INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 
 	local: *;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v3 12/12] bus/fslmc: remove unused symbols
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (10 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 11/12] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-13 13:27     ` Hemant Agrawal
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-13 13:27 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

rte_dpaa2_memsegs is not being used by any other library
or even within bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
 drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
 3 files changed, 10 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index 79b148f20b..d9619848d8 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -28,12 +28,6 @@
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-/* List of all the memseg information locally maintained in dpaa2 driver. This
- * is to optimize the PA_to_VA searches until a better mechanism (algo) is
- * available.
- */
-struct dpaa2_memseg_list rte_dpaa2_memsegs
-	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
 
 TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
 static struct dpbp_dev_list dpbp_dev_list
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 194b99c583..19fdd9cfaa 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -325,9 +325,6 @@ struct dpaa2_memseg {
 	size_t len;
 };
 
-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
-
 #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
 extern uint8_t dpaa2_virt_mode;
 static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 53e3ce6f99..975c769d9e 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -96,7 +96,6 @@ INTERNAL {
 	rte_dpaa2_free_dpci_dev;
 	rte_dpaa2_intr_disable;
 	rte_dpaa2_intr_enable;
-	rte_dpaa2_memsegs;
 	rte_fslmc_driver_register;
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-13 14:06       ` Hemant Agrawal (OSS)
  2020-05-14  7:13         ` Ray Kinsella
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-13 14:06 UTC (permalink / raw)
  To: mdr; +Cc: dev

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@nxp.com>
> Sent: Wednesday, May 13, 2020 6:58 PM
> To: dev@dpdk.org; david.marchand@redhat.com; mdr@ashroe.eu
> Cc: Hemant Agrawal <hemant.agrawal@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@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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-13 14:06       ` Hemant Agrawal (OSS)
@ 2020-05-14  7:13         ` Ray Kinsella
  2020-05-14  9:53           ` Hemant Agrawal (OSS)
  0 siblings, 1 reply; 134+ messages in thread
From: Ray Kinsella @ 2020-05-14  7:13 UTC (permalink / raw)
  To: Hemant Agrawal (OSS); +Cc: dev

Hi Hemant,

So validate_abi.sh has been somewhat deprecated - it may be removed in future.
To run the libabigail abi checks, you need to run the magic command.

DPDK_ABI_REF_DIR=/build/dpdk/reference/ DPDK_ABI_REF_VERSION=v20.02 ./devtools/test-meson-builds.sh

DPDK_ABI_REF_DIR - needs an absolute path, for reasons that are still unclear to me. 
DPDK_ABI_REF_VERSION - you need to use the last DPDK release.

Thanks, 

Ray K

On 13/05/2020 15:06, Hemant Agrawal (OSS) wrote:
> 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@nxp.com>
>> Sent: Wednesday, May 13, 2020 6:58 PM
>> To: dev@dpdk.org; david.marchand@redhat.com; mdr@ashroe.eu
>> Cc: Hemant Agrawal <hemant.agrawal@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@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
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14  7:13         ` Ray Kinsella
@ 2020-05-14  9:53           ` Hemant Agrawal (OSS)
  2020-05-14 10:09             ` Ray Kinsella
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14  9:53 UTC (permalink / raw)
  To: Ray Kinsella, Hemant Agrawal (OSS); +Cc: dev

> Hi Hemant,
> 
> So validate_abi.sh has been somewhat deprecated - it may be removed in
> future.
> To run the libabigail abi checks, you need to run the magic command.
> 
> DPDK_ABI_REF_DIR=/build/dpdk/reference/ DPDK_ABI_REF_VERSION=v20.02
> ./devtools/test-meson-builds.sh
> 
> DPDK_ABI_REF_DIR - needs an absolute path, for reasons that are still unclear
> to me.
> DPDK_ABI_REF_VERSION - you need to use the last DPDK release.

[Hemant] Thanks it worked  for me. It is not showing any error for the changes in this patchset.

Regards,
Hemant

> 
> Thanks,
> 
> Ray K
> 
> On 13/05/2020 15:06, Hemant Agrawal (OSS) wrote:
> > 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@nxp.com>
> >> Sent: Wednesday, May 13, 2020 6:58 PM
> >> To: dev@dpdk.org; david.marchand@redhat.com; mdr@ashroe.eu
> >> Cc: Hemant Agrawal <hemant.agrawal@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@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
> >

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14  9:53           ` Hemant Agrawal (OSS)
@ 2020-05-14 10:09             ` Ray Kinsella
  2020-05-14 11:06               ` Hemant Agrawal (OSS)
  0 siblings, 1 reply; 134+ messages in thread
From: Ray Kinsella @ 2020-05-14 10:09 UTC (permalink / raw)
  To: Hemant Agrawal (OSS); +Cc: dev



On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
> [Hemant] Thanks it worked  for me. It is not showing any error for the changes in this patchset.

I tested it also - and it didn't show an error either, which confused me. As you are dropping a whole bunch of symbols from DPDK v20, it _should_ baulk at this. 

Need to dig a bit deeper on this.

Ray K




^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 10:09             ` Ray Kinsella
@ 2020-05-14 11:06               ` Hemant Agrawal (OSS)
  2020-05-14 11:10                 ` Ray Kinsella
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14 11:06 UTC (permalink / raw)
  To: Ray Kinsella, Hemant Agrawal (OSS); +Cc: dev

 
> On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
> > [Hemant] Thanks it worked  for me. It is not showing any error for the
> changes in this patchset.
> 
> I tested it also - and it didn't show an error either, which confused me. As you
> are dropping a whole bunch of symbols from DPDK v20, it _should_ baulk at
> this.
> 
> Need to dig a bit deeper on this.

[Hemant] I have also made change in  libabigail.abignore. That should be the reason for no complains?

Hemant
> 
> Ray K
> 
> 


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 11:06               ` Hemant Agrawal (OSS)
@ 2020-05-14 11:10                 ` Ray Kinsella
  2020-05-14 11:19                   ` David Marchand
  2020-05-14 11:21                   ` Hemant Agrawal (OSS)
  0 siblings, 2 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-14 11:10 UTC (permalink / raw)
  To: Hemant Agrawal (OSS); +Cc: dev



On 14/05/2020 12:06, Hemant Agrawal (OSS) wrote:
>  
>> On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
>>> [Hemant] Thanks it worked  for me. It is not showing any error for the
>> changes in this patchset.
>>
>> I tested it also - and it didn't show an error either, which confused me. As you
>> are dropping a whole bunch of symbols from DPDK v20, it _should_ baulk at
>> this.
>>
>> Need to dig a bit deeper on this.
> 
> [Hemant] I have also made change in  libabigail.abignore. That should be the reason for no complains?

yes ... I discovered that since. 
are we 100% certain that no end user application would  ever have used these symbol?

[suppress_variable]
         name = rte_crypto_aead_algorithm_strings
+; Ignore moving DPAAx stable functions to INTERNAL tag
+[suppress_file]
+       file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+       file_name_regexp = ^librte_mempool_dpaa\.
+[suppress_file]
+       file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+       file_name_regexp = ^librte_bus_dpaa\.
+[suppress_file]
+       file_name_regexp = ^librte_pmd_dpaa\.

> Hemant
>>
>> Ray K
>>
>>
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 11:10                 ` Ray Kinsella
@ 2020-05-14 11:19                   ` David Marchand
  2020-05-14 11:23                     ` Hemant Agrawal (OSS)
  2020-05-14 11:21                   ` Hemant Agrawal (OSS)
  1 sibling, 1 reply; 134+ messages in thread
From: David Marchand @ 2020-05-14 11:19 UTC (permalink / raw)
  To: Ray Kinsella; +Cc: Hemant Agrawal (OSS), dev

On Thu, May 14, 2020 at 1:10 PM Ray Kinsella <mdr@ashroe.eu> wrote:
>
>
>
> On 14/05/2020 12:06, Hemant Agrawal (OSS) wrote:
> >
> >> On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
> >>> [Hemant] Thanks it worked  for me. It is not showing any error for the
> >> changes in this patchset.
> >>
> >> I tested it also - and it didn't show an error either, which confused me. As you
> >> are dropping a whole bunch of symbols from DPDK v20, it _should_ baulk at
> >> this.
> >>
> >> Need to dig a bit deeper on this.
> >
> > [Hemant] I have also made change in  libabigail.abignore. That should be the reason for no complains?
>
> yes ... I discovered that since.
> are we 100% certain that no end user application would  ever have used these symbol?
>
> [suppress_variable]
>          name = rte_crypto_aead_algorithm_strings
> +; Ignore moving DPAAx stable functions to INTERNAL tag
> +[suppress_file]
> +       file_name_regexp = ^librte_common_dpaax\.
> +[suppress_file]
> +       file_name_regexp = ^librte_mempool_dpaa\.
> +[suppress_file]
> +       file_name_regexp = ^librte_bus_fslmc\.
> +[suppress_file]
> +       file_name_regexp = ^librte_bus_dpaa\.
> +[suppress_file]
> +       file_name_regexp = ^librte_pmd_dpaa\.

Ignoring the whole dpaa net driver is wrong as the symbol
rte_pmd_dpaa_set_tx_loopback is marked stable.
This is used by applications, like testpmd:
app/test-pmd/cmdline.c:         ret =
rte_pmd_dpaa_set_tx_loopback(res->port_id, is_on);

You need a more refined filter for this.
Public APIs are prefixed with rte_ so maybe whitelisting ^dpaa_
variables/functions?


-- 
David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 11:10                 ` Ray Kinsella
  2020-05-14 11:19                   ` David Marchand
@ 2020-05-14 11:21                   ` Hemant Agrawal (OSS)
  1 sibling, 0 replies; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14 11:21 UTC (permalink / raw)
  To: Ray Kinsella, Hemant Agrawal (OSS); +Cc: dev

 
> On 14/05/2020 12:06, Hemant Agrawal (OSS) wrote:
> >
> >> On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
> >>> [Hemant] Thanks it worked  for me. It is not showing any error for
> >>> the
> >> changes in this patchset.
> >>
> >> I tested it also - and it didn't show an error either, which confused
> >> me. As you are dropping a whole bunch of symbols from DPDK v20, it
> >> _should_ baulk at this.
> >>
> >> Need to dig a bit deeper on this.
> >
> > [Hemant] I have also made change in  libabigail.abignore. That should be
> the reason for no complains?
> 
> yes ... I discovered that since.
> are we 100% certain that no end user application would  ever have used these
> symbol?

[Hemant]  No, apps are not using & can not easily use them. 
The header files containing these symbols are also not installed. 

> 
> [suppress_variable]
>          name = rte_crypto_aead_algorithm_strings
> +; Ignore moving DPAAx stable functions to INTERNAL tag [suppress_file]
> +       file_name_regexp = ^librte_common_dpaax\.
> +[suppress_file]
> +       file_name_regexp = ^librte_mempool_dpaa\.
> +[suppress_file]
> +       file_name_regexp = ^librte_bus_fslmc\.
> +[suppress_file]
> +       file_name_regexp = ^librte_bus_dpaa\.
> +[suppress_file]
> +       file_name_regexp = ^librte_pmd_dpaa\.
> 
> > Hemant
> >>
> >> Ray K
> >>
> >>
> >

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 11:19                   ` David Marchand
@ 2020-05-14 11:23                     ` Hemant Agrawal (OSS)
  2020-05-14 12:38                       ` Hemant Agrawal (OSS)
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14 11:23 UTC (permalink / raw)
  To: David Marchand, Ray Kinsella; +Cc: Hemant Agrawal (OSS), dev



> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of David Marchand
> Sent: Thursday, May 14, 2020 4:49 PM
> To: Ray Kinsella <mdr@ashroe.eu>
> Cc: Hemant Agrawal (OSS) <hemant.agrawal@oss.nxp.com>; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal
> symbols into INTERNAL section
> 
> On Thu, May 14, 2020 at 1:10 PM Ray Kinsella <mdr@ashroe.eu> wrote:
> >
> >
> >
> > On 14/05/2020 12:06, Hemant Agrawal (OSS) wrote:
> > >
> > >> On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
> > >>> [Hemant] Thanks it worked  for me. It is not showing any error for
> > >>> the
> > >> changes in this patchset.
> > >>
> > >> I tested it also - and it didn't show an error either, which
> > >> confused me. As you are dropping a whole bunch of symbols from DPDK
> > >> v20, it _should_ baulk at this.
> > >>
> > >> Need to dig a bit deeper on this.
> > >
> > > [Hemant] I have also made change in  libabigail.abignore. That should be
> the reason for no complains?
> >
> > yes ... I discovered that since.
> > are we 100% certain that no end user application would  ever have used
> these symbol?
> >
> > [suppress_variable]
> >          name = rte_crypto_aead_algorithm_strings
> > +; Ignore moving DPAAx stable functions to INTERNAL tag
> > +[suppress_file]
> > +       file_name_regexp = ^librte_common_dpaax\.
> > +[suppress_file]
> > +       file_name_regexp = ^librte_mempool_dpaa\.
> > +[suppress_file]
> > +       file_name_regexp = ^librte_bus_fslmc\.
> > +[suppress_file]
> > +       file_name_regexp = ^librte_bus_dpaa\.
> > +[suppress_file]
> > +       file_name_regexp = ^librte_pmd_dpaa\.
> 
> Ignoring the whole dpaa net driver is wrong as the symbol
> rte_pmd_dpaa_set_tx_loopback is marked stable.
> This is used by applications, like testpmd:
> app/test-pmd/cmdline.c:         ret =
> rte_pmd_dpaa_set_tx_loopback(res->port_id, is_on);
> 
> You need a more refined filter for this.
> Public APIs are prefixed with rte_ so maybe whitelisting ^dpaa_
> variables/functions?
> 
> 
[Hemant]  Ok. I will try it. 


> --
> David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 11:23                     ` Hemant Agrawal (OSS)
@ 2020-05-14 12:38                       ` Hemant Agrawal (OSS)
  2020-05-14 13:31                         ` David Marchand
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14 12:38 UTC (permalink / raw)
  To: Hemant Agrawal (OSS), David Marchand, Ray Kinsella
  Cc: Hemant Agrawal (OSS), dev

Hi David/Ray

> > On Thu, May 14, 2020 at 1:10 PM Ray Kinsella <mdr@ashroe.eu> wrote:
> > >
> > >
> > >
> > > On 14/05/2020 12:06, Hemant Agrawal (OSS) wrote:
> > > >
> > > >> On 14/05/2020 10:53, Hemant Agrawal (OSS) wrote:
> > > >>> [Hemant] Thanks it worked  for me. It is not showing any error
> > > >>> for the
> > > >> changes in this patchset.
> > > >>
> > > >> I tested it also - and it didn't show an error either, which
> > > >> confused me. As you are dropping a whole bunch of symbols from
> > > >> DPDK v20, it _should_ baulk at this.
> > > >>
> > > >> Need to dig a bit deeper on this.
> > > >
> > > > [Hemant] I have also made change in  libabigail.abignore. That
> > > > should be
> > the reason for no complains?
> > >
> > > yes ... I discovered that since.
> > > are we 100% certain that no end user application would  ever have
> > > used
> > these symbol?
> > >
> > > [suppress_variable]
> > >          name = rte_crypto_aead_algorithm_strings
> > > +; Ignore moving DPAAx stable functions to INTERNAL tag
> > > +[suppress_file]
> > > +       file_name_regexp = ^librte_common_dpaax\.
> > > +[suppress_file]
> > > +       file_name_regexp = ^librte_mempool_dpaa\.
> > > +[suppress_file]
> > > +       file_name_regexp = ^librte_bus_fslmc\.
> > > +[suppress_file]
> > > +       file_name_regexp = ^librte_bus_dpaa\.
> > > +[suppress_file]
> > > +       file_name_regexp = ^librte_pmd_dpaa\.
> >
> > Ignoring the whole dpaa net driver is wrong as the symbol
> > rte_pmd_dpaa_set_tx_loopback is marked stable.
> > This is used by applications, like testpmd:
> > app/test-pmd/cmdline.c:         ret =
> > rte_pmd_dpaa_set_tx_loopback(res->port_id, is_on);
> >
> > You need a more refined filter for this.
> > Public APIs are prefixed with rte_ so maybe whitelisting ^dpaa_
> > variables/functions?

[Hemant] this is working fine for pmd_dpaa but not for pmd_dpaa2

I removed the filename_exp and introduced function based name=
Now the issue is  the following warning
SONAME changed from 'librte_pmd_dpaa2.so.20.0' to 'librte_pmd_dpaa2.so.0.200.2'

The  primary reason is that now pmd_dpaa2 has no symbol left for 20.0 section. 
Following is not helping. 
[suppress_file]
	soname_regexp = ^librte_pmd_dpaa2
so, it seems for now, the filename_exp is the only option 
> >
> >
> [Hemant]  Ok. I will try it.
> 
> 
> > --
> > David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL
  2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                       ` (11 preceding siblings ...)
  2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 12/12] bus/fslmc: remove unused symbols Hemant Agrawal
@ 2020-05-14 13:25     ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                         ` (15 more replies)
  12 siblings, 16 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr

v4: pmd_dpaa, mempool_dpaa2 also has external symbols. So, changing
the libabigail.abignore exception to only for selected func calls
pmd_dpaa2 also has experimental external func call remaining.
However, it causes the so name to be changed. So, we need to maintain
the specific file name exception there for now. 

v3: adding entries in libabigail.ignore

This patchset moves the internal symbol to the INTERNAL sections

This patch also change some of the shared variables to function
calls. (Mostly control path used variables). 

Hemant Agrawal (13):
  common/dpaax: move internal symbols into INTERNAL section
  bus/fslmc: move internal symbols into INTERNAL section
  bus/dpaa: move internal symbols into INTERNAL section
  crypto: move internal symbols into INTERNAL section
  mempool/dpaa2: move internal symbols into INTERNAL section
  net/dpaa: move internal symbols into INTERNAL section
  net/dpaa2: move internal symbols into INTERNAL section
  mempool/dpaa2: fix to add the include file
  bus/dpaa: share qman portal ids as function calls
  bus/dpaa: move log into to respective dpaa drivers
  bus/dpaa: change netcfg access as function
  bus/fslmc: share mcp ptr as function across libs
  bus/fslmc: remove unused symbols

 devtools/libabigail.abignore                  | 21 +++++++
 drivers/bus/dpaa/base/qbman/qman_driver.c     | 10 ++++
 drivers/bus/dpaa/dpaa_bus.c                   | 25 +++-----
 drivers/bus/dpaa/include/fsl_bman.h           |  6 ++
 drivers/bus/dpaa/include/fsl_fman.h           | 27 +++++++++
 drivers/bus/dpaa/include/fsl_qman.h           | 40 ++++++++++++-
 drivers/bus/dpaa/include/fsl_usd.h            |  6 ++
 drivers/bus/dpaa/include/netcfg.h             |  2 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map     | 16 ++---
 drivers/bus/dpaa/rte_dpaa_bus.h               | 11 +++-
 drivers/bus/dpaa/rte_dpaa_logs.h              | 58 -------------------
 drivers/bus/fslmc/fslmc_vfio.c                | 15 ++++-
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 ++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 +
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 +++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 +++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |  8 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 ++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       | 18 ++++--
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 +
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  7 +--
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 drivers/common/dpaax/dpaa_of.h                | 15 +++++
 drivers/common/dpaax/dpaax_iova_table.h       |  4 ++
 .../common/dpaax/rte_common_dpaax_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h    |  5 +-
 .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map   |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h      |  8 +--
 .../dpaa_sec/rte_pmd_dpaa_sec_version.map     |  4 +-
 drivers/event/dpaa/dpaa_eventdev.c            |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h            | 16 +++++
 drivers/event/dpaa2/dpaa2_hw_dpcon.c          |  2 +-
 drivers/mempool/dpaa/dpaa_mempool.c           |  8 +++
 drivers/mempool/dpaa/dpaa_mempool.h           | 19 ++++++
 .../mempool/dpaa/rte_mempool_dpaa_version.map |  2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h      |  1 +
 drivers/mempool/dpaa2/meson.build             |  2 +
 .../dpaa2/rte_mempool_dpaa2_version.map       |  9 ++-
 drivers/net/dpaa/dpaa_ethdev.c                | 12 +++-
 drivers/net/dpaa/dpaa_ethdev.h                | 24 ++++++++
 drivers/net/dpaa/rte_pmd_dpaa_version.map     |  9 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.h              |  2 +
 drivers/net/dpaa2/dpaa2_mux.c                 |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  2 +-
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map   |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           |  2 +-
 56 files changed, 389 insertions(+), 140 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 02/13] bus/fslmc: " Hemant Agrawal
                         ` (14 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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 |  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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 02/13] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 03/13] bus/dpaa: " Hemant Agrawal
                         ` (13 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which were not used
anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                  |  2 +
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  4 +-
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 15 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index b1488d5549..877c6d5be8 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -51,3 +51,5 @@
 ; Ignore moving DPAAx stable functions to INTERNAL tag
 [suppress_file]
 	file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_fslmc\.
diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..04e61156c3 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +11,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +100,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
 
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 03/13] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 02/13] bus/fslmc: " Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 04/13] crypto: " Hemant Agrawal
                         ` (12 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              |  2 ++
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  6 +++++
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  7 +----
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 8 files changed, 81 insertions(+), 6 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 877c6d5be8..ab34302d0c 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -53,3 +53,5 @@
 	file_name_regexp = ^librte_common_dpaax\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_dpaa\.
diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..30ec63a09d 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,8 +67,12 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
 
 void qman_clear_irq(void);
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..f4947fac41 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +13,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -51,7 +50,6 @@ DPDK_20.0 {
 	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
-	qman_clear_irq;
 	qman_create_cgr;
 	qman_create_fq;
 	qman_dca_index;
@@ -87,10 +85,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 04/13] crypto: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (2 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 03/13] bus/dpaa: " Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 05/13] mempool/dpaa2: " Hemant Agrawal
                         ` (11 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                           | 4 ++++
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 4 +---
 5 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index ab34302d0c..8db64f267d 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -55,3 +55,7 @@
 	file_name_regexp = ^librte_bus_fslmc\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_dpaa\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa2_sec\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa_sec\.
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..1352f576e5 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..aed07fb371 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,6 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 05/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (3 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 04/13] crypto: " Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 06/13] net/dpaa: " Hemant Agrawal
                         ` (10 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                        | 6 ++++++
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 8db64f267d..02b7a973cb 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -59,3 +59,9 @@
 	file_name_regexp = ^librte_pmd_dpaa2_sec\.
 [suppress_file]
 	file_name_regexp = ^librte_pmd_dpaa_sec\.
+[suppress_file]
+	file_name_regexp = ^librte_mempool_dpaa\.
+[suppress_function]
+	name = rte_dpaa2_mbuf_alloc_bulk
+[suppress_function]
+	name = rte_dpaa2_bpid_info
diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..142547ee38 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 06/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (4 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 05/13] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 07/13] net/dpaa2: " Hemant Agrawal
                         ` (9 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              | 4 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 02b7a973cb..54ac181204 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -64,4 +64,6 @@
 [suppress_function]
 	name = rte_dpaa2_mbuf_alloc_bulk
 [suppress_function]
-	name = rte_dpaa2_bpid_info
+	name_regexp = ^rte_dpaa2_bpid_info
+[suppress_function]
+        name_regexp = ^dpaa
\ No newline at end of file
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..774aa0de45 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,14 @@
 DPDK_20.0 {
 	global:
 
-	dpaa_eth_eventq_attach;
-	dpaa_eth_eventq_detach;
 	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	dpaa_eth_eventq_attach;
+	dpaa_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 07/13] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (5 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 06/13] net/dpaa: " Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
                         ` (8 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                | 4 +++-
 drivers/net/dpaa2/dpaa2_ethdev.h            | 2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 54ac181204..d54b9675e1 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -66,4 +66,6 @@
 [suppress_function]
 	name_regexp = ^rte_dpaa2_bpid_info
 [suppress_function]
-        name_regexp = ^dpaa
\ No newline at end of file
+        name_regexp = ^dpaa
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa2\.
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..78ea74e058 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_eth_eventq_attach;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 08/13] mempool/dpaa2: fix to add the include file
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (6 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 07/13] net/dpaa2: " Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
                         ` (7 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: stable, Hemant Agrawal

rte_dpaa2_mempool.h header was missed to be
added in meson.build for header installation.

Fixes: 7ed359909556 ("mempool/dpaa2: add functions for CMDIF")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/mempool/dpaa2/meson.build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
index df299a0456..c3f479afa1 100644
--- a/drivers/mempool/dpaa2/meson.build
+++ b/drivers/mempool/dpaa2/meson.build
@@ -8,3 +8,5 @@ endif
 
 deps += ['bus_fslmc']
 sources = files('dpaa2_hw_mempool.c')
+
+install_headers('rte_dpaa2_mempool.h')
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 09/13] bus/dpaa: share qman portal ids as function calls
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (7 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
                         ` (6 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

qman caam and pool portal ids are only used in control
path. This patch changes their inter library access to
function call instead of direct shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
 drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 69244ef701..1166d68e21 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
 	.type = dpaa_portal_qman
 };
 
+u16 dpaa_get_qm_channel_caam(void)
+{
+	return qm_channel_caam;
+}
+
+u16 dpaa_get_qm_channel_pool(void)
+{
+	return qm_channel_pool1;
+}
+
 static int fsl_qman_portal_init(uint32_t index, int is_shared)
 {
 	struct qman_portal *portal;
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 4411bb0a79..78b698f393 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -44,6 +44,12 @@ enum qm_dc_portal {
 	qm_dc_portal_pme = 3
 };
 
+__rte_internal
+u16 dpaa_get_qm_channel_caam(void);
+
+__rte_internal
+u16 dpaa_get_qm_channel_pool(void);
+
 /* Portal processing (interrupt) sources */
 #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
 #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
@@ -65,7 +71,7 @@ enum qm_dc_portal {
 /* for conversion from n of qm_channel */
 static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
 {
-	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
+	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
 }
 
 /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index f4947fac41..220fc32da1 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,8 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_qm_channel_caam;
+	dpaa_get_qm_channel_pool;
 	dpaa_logtype_eventdev;
 	dpaa_logtype_mempool;
 	dpaa_logtype_pmd;
@@ -46,8 +48,6 @@ INTERNAL {
 	netcfg_release;
 	per_lcore_dpaa_io;
 	per_lcore_held_bufs;
-	qm_channel_caam;
-	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
 	qman_create_cgr;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 25dcbd259a..4af9024a00 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
 
 	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
 	fq_opts.fqd.context_b = fqid_out;
-	fq_opts.fqd.dest.channel = qm_channel_caam;
+	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
 	fq_opts.fqd.dest.wq = 0;
 
 	fq_in->cb.ern  = ern_sec_fq_handler;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 10/13] bus/dpaa: move log into to respective dpaa drivers
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (8 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
                         ` (5 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This is to reduce the number of variables getting exposed
from the dpaa bus. They are not required to be in bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 19 +-------
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 --
 drivers/bus/dpaa/rte_dpaa_logs.h          | 58 -----------------------
 drivers/event/dpaa/dpaa_eventdev.c        |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h        | 16 +++++++
 drivers/mempool/dpaa/dpaa_mempool.c       |  8 ++++
 drivers/mempool/dpaa/dpaa_mempool.h       | 19 ++++++++
 drivers/net/dpaa/dpaa_ethdev.c            | 10 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 22 +++++++++
 9 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index f27820db37..41d42b0c30 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -43,9 +43,6 @@
 #include <netcfg.h>
 
 int dpaa_logtype_bus;
-int dpaa_logtype_mempool;
-int dpaa_logtype_pmd;
-int dpaa_logtype_eventdev;
 
 static struct rte_dpaa_bus rte_dpaa_bus;
 struct netcfg_info *dpaa_netcfg;
@@ -567,13 +564,13 @@ rte_dpaa_bus_probe(void)
 			/* One time load of Qman/Bman drivers */
 			ret = qman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("QMAN initialization failed: %d",
+				DPAA_BUS_ERR("QMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
 			ret = bman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("BMAN initialization failed: %d",
+				DPAA_BUS_ERR("BMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
@@ -752,16 +749,4 @@ RTE_INIT(dpaa_init_log)
 	dpaa_logtype_bus = rte_log_register("bus.dpaa");
 	if (dpaa_logtype_bus >= 0)
 		rte_log_set_level(dpaa_logtype_bus, RTE_LOG_NOTICE);
-
-	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
-	if (dpaa_logtype_mempool >= 0)
-		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
-
-	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
-	if (dpaa_logtype_pmd >= 0)
-		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
-
-	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
-	if (dpaa_logtype_eventdev >= 0)
-		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
 }
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 220fc32da1..9b02cc674c 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -10,10 +10,6 @@ INTERNAL {
 	bman_thread_irq;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
-	dpaa_logtype_eventdev;
-	dpaa_logtype_mempool;
-	dpaa_logtype_pmd;
-	dpaa_netcfg;
 	dpaa_svr_family;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h
index e414354320..149b127434 100644
--- a/drivers/bus/dpaa/rte_dpaa_logs.h
+++ b/drivers/bus/dpaa/rte_dpaa_logs.h
@@ -10,9 +10,6 @@
 #include <rte_log.h>
 
 extern int dpaa_logtype_bus;
-extern int dpaa_logtype_mempool;
-extern int dpaa_logtype_pmd;
-extern int dpaa_logtype_eventdev;
 
 #define DPAA_BUS_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, dpaa_logtype_bus, "dpaa: " fmt "\n", ##args)
@@ -40,59 +37,4 @@ extern int dpaa_logtype_eventdev;
 #define DPAA_BUS_WARN(fmt, args...) \
 	DPAA_BUS_LOG(WARNING, fmt, ## args)
 
-/* Mempool related logs */
-
-#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
-
-#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
-	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
-#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
-	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
-#define DPAA_MEMPOOL_ERR(fmt, args...) \
-	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
-#define DPAA_MEMPOOL_INFO(fmt, args...) \
-	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
-#define DPAA_MEMPOOL_WARN(fmt, args...) \
-	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
-
-/* PMD related logs */
-
-#define DPAA_PMD_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
-
-#define DPAA_PMD_DEBUG(fmt, args...) \
-	DPAA_PMD_LOG(DEBUG, fmt, ## args)
-#define DPAA_PMD_ERR(fmt, args...) \
-	DPAA_PMD_LOG(ERR, fmt, ## args)
-#define DPAA_PMD_INFO(fmt, args...) \
-	DPAA_PMD_LOG(INFO, fmt, ## args)
-#define DPAA_PMD_WARN(fmt, args...) \
-	DPAA_PMD_LOG(WARNING, fmt, ## args)
-
-#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
-
-#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
-	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
-#define DPAA_EVENTDEV_ERR(fmt, args...) \
-	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
-#define DPAA_EVENTDEV_INFO(fmt, args...) \
-	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
-#define DPAA_EVENTDEV_WARN(fmt, args...) \
-	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
-
-/* DP Logs, toggled out at compile time if level lower than current level */
-#define DPAA_DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
-
 #endif /* _DPAA_LOGS_H_ */
diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index a7d57edce7..5a018d4871 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -46,6 +46,7 @@
  * Eventqueue = Channel Instance
  * 1 Eventdev can have N Eventqueue
  */
+int dpaa_logtype_eventdev;
 
 #define DISABLE_INTR_MODE "disable_intr"
 
@@ -1068,3 +1069,9 @@ static struct rte_vdev_driver vdev_eventdev_dpaa_pmd = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DPAA_PMD, vdev_eventdev_dpaa_pmd);
 RTE_PMD_REGISTER_PARAM_STRING(EVENTDEV_NAME_DPAA_PMD,
 		DISABLE_INTR_MODE "=<int>");
+RTE_INIT(dpaa_event_init_log)
+{
+	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
+	if (dpaa_logtype_eventdev >= 0)
+		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/dpaa/dpaa_eventdev.h b/drivers/event/dpaa/dpaa_eventdev.h
index 5ce15a3db9..0b3da83a4f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.h
+++ b/drivers/event/dpaa/dpaa_eventdev.h
@@ -76,4 +76,20 @@ struct dpaa_eventdev {
 	uint32_t nb_event_port_enqueue_depth;
 	uint32_t event_dev_cfg;
 };
+
+#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
+
+#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
+	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
+#define DPAA_EVENTDEV_ERR(fmt, args...) \
+	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
+#define DPAA_EVENTDEV_INFO(fmt, args...) \
+	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
+#define DPAA_EVENTDEV_WARN(fmt, args...) \
+	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
+
 #endif /* __DPAA_EVENTDEV_H__ */
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 3a2528331c..451e2d5d56 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -36,6 +36,7 @@ struct dpaa_memseg_list rte_dpaa_memsegs
 	= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
 
 struct dpaa_bp_info *rte_dpaa_bpid_info;
+int dpaa_logtype_mempool;
 
 static int
 dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@ -356,3 +357,10 @@ static const struct rte_mempool_ops dpaa_mpool_ops = {
 };
 
 MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);
+
+RTE_INIT(dpaa_mp_init_log)
+{
+	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
+	if (dpaa_logtype_mempool >= 0)
+		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
+}
diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h
index f69e11f011..dc0058e6dd 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.h
+++ b/drivers/mempool/dpaa/dpaa_mempool.h
@@ -58,4 +58,23 @@ extern struct dpaa_bp_info *rte_dpaa_bpid_info;
 
 #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid])
 
+/* Mempool related logs */
+
+#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
+
+#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
+	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
+#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
+	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
+#define DPAA_MEMPOOL_ERR(fmt, args...) \
+	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
+#define DPAA_MEMPOOL_INFO(fmt, args...) \
+	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
+#define DPAA_MEMPOOL_WARN(fmt, args...) \
+	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
+
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 56eb5ec47c..c97f3042be 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -46,6 +46,8 @@
 #include <fsl_bman.h>
 #include <fsl_fman.h>
 
+int dpaa_logtype_pmd;
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -1058,7 +1060,7 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 
 	temp1 = read(rxq->q_fd, &temp, sizeof(temp));
 	if (temp1 != sizeof(temp))
-		DPAA_EVENTDEV_ERR("irq read error");
+		DPAA_PMD_ERR("irq read error");
 
 	qman_fq_portal_thread_irq(rxq->qp);
 
@@ -1664,3 +1666,9 @@ static struct rte_dpaa_driver rte_dpaa_pmd = {
 };
 
 RTE_PMD_REGISTER_DPAA(net_dpaa, rte_dpaa_pmd);
+RTE_INIT(dpaa_net_init_log)
+{
+	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
+	if (dpaa_logtype_pmd >= 0)
+		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
+}
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 7393a9df05..6a6477ac87 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -185,4 +185,26 @@ dpaa_rx_cb_atomic(void *event,
 		  const struct qm_dqrr_entry *dqrr,
 		  void **bufs);
 
+/* PMD related logs */
+extern int dpaa_logtype_pmd;
+
+#define DPAA_PMD_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
+
+#define DPAA_PMD_DEBUG(fmt, args...) \
+	DPAA_PMD_LOG(DEBUG, fmt, ## args)
+#define DPAA_PMD_ERR(fmt, args...) \
+	DPAA_PMD_LOG(ERR, fmt, ## args)
+#define DPAA_PMD_INFO(fmt, args...) \
+	DPAA_PMD_LOG(INFO, fmt, ## args)
+#define DPAA_PMD_WARN(fmt, args...) \
+	DPAA_PMD_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level */
+#define DPAA_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt, ## args)
+
 #endif
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 11/13] bus/dpaa: change netcfg access as function
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (9 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
                         ` (4 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch changes the export of fman port config
as function call instead of direct variable access.
This is in control path, so it will not impact perf.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
 drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
 drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
 drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 41d42b0c30..d53fe6083a 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
 RTE_DEFINE_PER_LCORE(bool, dpaa_io);
 RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 
+struct fm_eth_port_cfg *
+dpaa_get_eth_port_cfg(int dev_id)
+{
+	return &dpaa_netcfg->port_cfg[dev_id];
+}
+
 static int
 compare_dpaa_devices(struct rte_dpaa_device *dev1,
 		     struct rte_dpaa_device *dev2)
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 9b02cc674c..1d6bd39f4d 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,7 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_eth_port_cfg;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
 	dpaa_svr_family;
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index d4aee132ef..2a186d83fb 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -44,9 +44,6 @@ struct rte_dpaa_driver;
 TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
 TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
 
-/* Configuration variables exported from DPAA bus */
-extern struct netcfg_info *dpaa_netcfg;
-
 enum rte_dpaa_type {
 	FSL_DPAA_ETH = 1,
 	FSL_DPAA_CRYPTO,
@@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
 #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
 
+__rte_internal
+struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index c97f3042be..13d1c6a1fc 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
 	dpaa_intf = eth_dev->data->dev_private;
-	cfg = &dpaa_netcfg->port_cfg[dev_id];
+	cfg = dpaa_get_eth_port_cfg(dev_id);
 	fman_intf = cfg->fman_if;
 
 	dpaa_intf->name = dpaa_device->name;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 12/13] bus/fslmc: share mcp ptr as function across libs
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (10 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
                         ` (3 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@ static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 04e61156c3..53e3ce6f99 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -11,6 +11,7 @@ INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +102,6 @@ INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 
 	local: *;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v4 13/13] bus/fslmc: remove unused symbols
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (11 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-14 13:25       ` Hemant Agrawal
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (2 subsequent siblings)
  15 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 13:25 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

rte_dpaa2_memsegs is not being used by any other library
or even within bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
 drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
 3 files changed, 10 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index 79b148f20b..d9619848d8 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -28,12 +28,6 @@
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-/* List of all the memseg information locally maintained in dpaa2 driver. This
- * is to optimize the PA_to_VA searches until a better mechanism (algo) is
- * available.
- */
-struct dpaa2_memseg_list rte_dpaa2_memsegs
-	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
 
 TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
 static struct dpbp_dev_list dpbp_dev_list
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 194b99c583..19fdd9cfaa 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -325,9 +325,6 @@ struct dpaa2_memseg {
 	size_t len;
 };
 
-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
-
 #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
 extern uint8_t dpaa2_virt_mode;
 static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 53e3ce6f99..975c769d9e 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -96,7 +96,6 @@ INTERNAL {
 	rte_dpaa2_free_dpci_dev;
 	rte_dpaa2_intr_disable;
 	rte_dpaa2_intr_enable;
-	rte_dpaa2_memsegs;
 	rte_fslmc_driver_register;
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 12:38                       ` Hemant Agrawal (OSS)
@ 2020-05-14 13:31                         ` David Marchand
  2020-05-14 14:10                           ` Hemant Agrawal (OSS)
  2020-05-14 16:28                           ` David Marchand
  0 siblings, 2 replies; 134+ messages in thread
From: David Marchand @ 2020-05-14 13:31 UTC (permalink / raw)
  To: Hemant Agrawal (OSS), Ray Kinsella; +Cc: dev

On Thu, May 14, 2020 at 2:39 PM Hemant Agrawal (OSS)
<hemant.agrawal@oss.nxp.com> wrote:
>
> [Hemant] this is working fine for pmd_dpaa but not for pmd_dpaa2
>
> I removed the filename_exp and introduced function based name=
> Now the issue is  the following warning
> SONAME changed from 'librte_pmd_dpaa2.so.20.0' to 'librte_pmd_dpaa2.so.0.200.2'
>
> The  primary reason is that now pmd_dpaa2 has no symbol left for 20.0 section.
> Following is not helping.
> [suppress_file]
>         soname_regexp = ^librte_pmd_dpaa2
> so, it seems for now, the filename_exp is the only option

That's interesting.
Because I wondered about this point when reviewing __rte_internal.
For components providing only internal symbols like components
providing only experimental symbols, the build framework will select a
soname with .0.200.x.

Here, your dpaa2 driver was seen as a stable library so far.
Moving everything to internal changes this and the build framework
changes the soname to non stable.

You could keep an empty DPDK_20.0 block to avoid this and the soname
will be kept as is.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 13:31                         ` David Marchand
@ 2020-05-14 14:10                           ` Hemant Agrawal (OSS)
  2020-05-14 16:28                           ` David Marchand
  1 sibling, 0 replies; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14 14:10 UTC (permalink / raw)
  To: David Marchand, Hemant Agrawal (OSS), Ray Kinsella; +Cc: dev

> > [Hemant] this is working fine for pmd_dpaa but not for pmd_dpaa2
> >
> > I removed the filename_exp and introduced function based name= Now the
> > issue is  the following warning SONAME changed from
> > 'librte_pmd_dpaa2.so.20.0' to 'librte_pmd_dpaa2.so.0.200.2'
> >
> > The  primary reason is that now pmd_dpaa2 has no symbol left for 20.0
> section.
> > Following is not helping.
> > [suppress_file]
> >         soname_regexp = ^librte_pmd_dpaa2 so, it seems for now, the
> > filename_exp is the only option
> 
> That's interesting.
> Because I wondered about this point when reviewing __rte_internal.
> For components providing only internal symbols like components providing
> only experimental symbols, the build framework will select a soname with
> .0.200.x.
> 
> Here, your dpaa2 driver was seen as a stable library so far.
> Moving everything to internal changes this and the build framework changes
> the soname to non stable.
> 
> You could keep an empty DPDK_20.0 block to avoid this and the soname will
> be kept as is.

[Hemant] Thanks! It worked. I am sending v5 to fix it. 

Regards,
Hemant
> 
> 
> --
> David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (12 preceding siblings ...)
  2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
@ 2020-05-14 14:24       ` Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                           ` (4 more replies)
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  15 siblings, 5 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:24 UTC (permalink / raw)
  To: dev, david.marchand, mdr

v5: use empty DPDK_20.0 to avoid so name err in pmd_dpaa2

v4: pmd_dpaa, mempool_dpaa2 also has external symbols. So, changing
the libabigail.abignore exception to only for selected func calls
pmd_dpaa2 also has experimental external func call remaining.
However, it causes the so name to be changed. So, we need to maintain
the specific file name exception there for now. 

v3: adding entries in libabigail.ignore

This patchset moves the internal symbol to the INTERNAL sections

This patch also change some of the shared variables to function
calls. (Mostly control path used variables).

Hemant Agrawal (13):
  common/dpaax: move internal symbols into INTERNAL section
  bus/fslmc: move internal symbols into INTERNAL section
  bus/dpaa: move internal symbols into INTERNAL section
  crypto: move internal symbols into INTERNAL section
  mempool/dpaa2: move internal symbols into INTERNAL section
  net/dpaa: move internal symbols into INTERNAL section
  net/dpaa2: move internal symbols into INTERNAL section
  mempool/dpaa2: fix to add the include file
  bus/dpaa: share qman portal ids as function calls
  bus/dpaa: move log into to respective dpaa drivers
  bus/dpaa: change netcfg access as function
  bus/fslmc: share mcp ptr as function across libs
  bus/fslmc: remove unused symbols

 devtools/libabigail.abignore                  | 19 ++++++
 drivers/bus/dpaa/base/qbman/qman_driver.c     | 10 ++++
 drivers/bus/dpaa/dpaa_bus.c                   | 25 +++-----
 drivers/bus/dpaa/include/fsl_bman.h           |  6 ++
 drivers/bus/dpaa/include/fsl_fman.h           | 27 +++++++++
 drivers/bus/dpaa/include/fsl_qman.h           | 40 ++++++++++++-
 drivers/bus/dpaa/include/fsl_usd.h            |  6 ++
 drivers/bus/dpaa/include/netcfg.h             |  2 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map     | 16 ++---
 drivers/bus/dpaa/rte_dpaa_bus.h               | 11 +++-
 drivers/bus/dpaa/rte_dpaa_logs.h              | 58 -------------------
 drivers/bus/fslmc/fslmc_vfio.c                | 15 ++++-
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 ++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 +
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 +++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 +++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |  8 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 ++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       | 18 ++++--
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 +
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  7 +--
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 drivers/common/dpaax/dpaa_of.h                | 15 +++++
 drivers/common/dpaax/dpaax_iova_table.h       |  4 ++
 .../common/dpaax/rte_common_dpaax_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h    |  5 +-
 .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map   |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h      |  8 +--
 .../dpaa_sec/rte_pmd_dpaa_sec_version.map     |  4 +-
 drivers/event/dpaa/dpaa_eventdev.c            |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h            | 16 +++++
 drivers/event/dpaa2/dpaa2_hw_dpcon.c          |  2 +-
 drivers/mempool/dpaa/dpaa_mempool.c           |  8 +++
 drivers/mempool/dpaa/dpaa_mempool.h           | 19 ++++++
 .../mempool/dpaa/rte_mempool_dpaa_version.map |  2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h      |  1 +
 drivers/mempool/dpaa2/meson.build             |  2 +
 .../dpaa2/rte_mempool_dpaa2_version.map       |  9 ++-
 drivers/net/dpaa/dpaa_ethdev.c                | 12 +++-
 drivers/net/dpaa/dpaa_ethdev.h                | 24 ++++++++
 drivers/net/dpaa/rte_pmd_dpaa_version.map     |  9 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.h              |  2 +
 drivers/net/dpaa2/dpaa2_mux.c                 |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  2 +-
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map   | 12 ++--
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           |  2 +-
 56 files changed, 393 insertions(+), 144 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v5 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-14 14:24         ` Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH] temp Hemant Agrawal
                           ` (3 subsequent siblings)
  4 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:24 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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 |  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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH] temp
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-14 14:24         ` Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 02/13] bus/fslmc: move internal symbols into INTERNAL section Hemant Agrawal
                           ` (2 subsequent siblings)
  4 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:24 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                |  2 --
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 14 ++++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index d54b9675e..87c0a918b 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -67,5 +67,3 @@
 	name_regexp = ^rte_dpaa2_bpid_info
 [suppress_function]
         name_regexp = ^dpaa
-[suppress_file]
-	file_name_regexp = ^librte_pmd_dpaa2\.
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index 78ea74e05..b633fdc2a 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,9 +1,4 @@
-INTERNAL {
-	global:
-
-	dpaa2_eth_eventq_attach;
-	dpaa2_eth_eventq_detach;
-
+DPDK_20.0 {
 	local: *;
 };
 
@@ -14,3 +9,10 @@ EXPERIMENTAL {
 	rte_pmd_dpaa2_set_custom_hash;
 	rte_pmd_dpaa2_set_timestamp;
 };
+
+INTERNAL {
+	global:
+
+	dpaa2_eth_eventq_attach;
+	dpaa2_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v5 02/13] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH] temp Hemant Agrawal
@ 2020-05-14 14:24         ` Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 03/13] bus/dpaa: " Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 04/13] crypto: " Hemant Agrawal
  4 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:24 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which were not used
anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                  |  2 +
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  4 +-
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 15 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index b1488d5549..877c6d5be8 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -51,3 +51,5 @@
 ; Ignore moving DPAAx stable functions to INTERNAL tag
 [suppress_file]
 	file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_fslmc\.
diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..04e61156c3 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +11,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +100,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
 
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v5 03/13] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (2 preceding siblings ...)
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 02/13] bus/fslmc: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-14 14:24         ` Hemant Agrawal
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 04/13] crypto: " Hemant Agrawal
  4 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:24 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              |  2 ++
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  6 +++++
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  7 +----
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 8 files changed, 81 insertions(+), 6 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 877c6d5be8..ab34302d0c 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -53,3 +53,5 @@
 	file_name_regexp = ^librte_common_dpaax\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_dpaa\.
diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..30ec63a09d 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,8 +67,12 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
 
 void qman_clear_irq(void);
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..f4947fac41 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +13,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -51,7 +50,6 @@ DPDK_20.0 {
 	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
-	qman_clear_irq;
 	qman_create_cgr;
 	qman_create_fq;
 	qman_dca_index;
@@ -87,10 +85,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v5 04/13] crypto: move internal symbols into INTERNAL section
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (3 preceding siblings ...)
  2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 03/13] bus/dpaa: " Hemant Agrawal
@ 2020-05-14 14:24         ` Hemant Agrawal
  4 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:24 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                           | 4 ++++
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 4 +---
 5 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index ab34302d0c..8db64f267d 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -55,3 +55,7 @@
 	file_name_regexp = ^librte_bus_fslmc\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_dpaa\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa2_sec\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa_sec\.
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..1352f576e5 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..aed07fb371 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,6 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (13 preceding siblings ...)
  2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-14 14:29       ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                           ` (13 more replies)
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  15 siblings, 14 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr

v6: v5 was dirty

v5: use empty DPDK_20.0 to avoid so name erriin pmd_dpaa2


v4: pmd_dpaa, mempool_dpaa2 also has external symbols. So, changing
the libabigail.abignore exception to only for selected func calls
pmd_dpaa2 also has experimental external func call remaining.
However, it causes the so name to be changed. So, we need to maintain
the specific file name exception there for now. 

v3: adding entries in libabigail.ignore

This patchset moves the internal symbol to the INTERNAL sections

This patch also change some of the shared variables to function
calls. (Mostly control path used variables).

Hemant Agrawal (13):
  common/dpaax: move internal symbols into INTERNAL section
  bus/fslmc: move internal symbols into INTERNAL section
  bus/dpaa: move internal symbols into INTERNAL section
  crypto: move internal symbols into INTERNAL section
  mempool/dpaa2: move internal symbols into INTERNAL section
  net/dpaa: move internal symbols into INTERNAL section
  net/dpaa2: move internal symbols into INTERNAL section
  mempool/dpaa2: fix to add the include file
  bus/dpaa: share qman portal ids as function calls
  bus/dpaa: move log into to respective dpaa drivers
  bus/dpaa: change netcfg access as function
  bus/fslmc: share mcp ptr as function across libs
  bus/fslmc: remove unused symbols

 devtools/libabigail.abignore                  | 19 ++++++
 drivers/bus/dpaa/base/qbman/qman_driver.c     | 10 ++++
 drivers/bus/dpaa/dpaa_bus.c                   | 25 +++-----
 drivers/bus/dpaa/include/fsl_bman.h           |  6 ++
 drivers/bus/dpaa/include/fsl_fman.h           | 27 +++++++++
 drivers/bus/dpaa/include/fsl_qman.h           | 40 ++++++++++++-
 drivers/bus/dpaa/include/fsl_usd.h            |  6 ++
 drivers/bus/dpaa/include/netcfg.h             |  2 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map     | 16 ++---
 drivers/bus/dpaa/rte_dpaa_bus.h               | 11 +++-
 drivers/bus/dpaa/rte_dpaa_logs.h              | 58 -------------------
 drivers/bus/fslmc/fslmc_vfio.c                | 15 ++++-
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 ++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 +
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 +++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 +++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |  8 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 ++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       | 18 ++++--
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 +
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  7 +--
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 drivers/common/dpaax/dpaa_of.h                | 15 +++++
 drivers/common/dpaax/dpaax_iova_table.h       |  4 ++
 .../common/dpaax/rte_common_dpaax_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h    |  5 +-
 .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map   |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h      |  8 +--
 .../dpaa_sec/rte_pmd_dpaa_sec_version.map     |  4 +-
 drivers/event/dpaa/dpaa_eventdev.c            |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h            | 16 +++++
 drivers/event/dpaa2/dpaa2_hw_dpcon.c          |  2 +-
 drivers/mempool/dpaa/dpaa_mempool.c           |  8 +++
 drivers/mempool/dpaa/dpaa_mempool.h           | 19 ++++++
 .../mempool/dpaa/rte_mempool_dpaa_version.map |  2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h      |  1 +
 drivers/mempool/dpaa2/meson.build             |  2 +
 .../dpaa2/rte_mempool_dpaa2_version.map       |  9 ++-
 drivers/net/dpaa/dpaa_ethdev.c                | 12 +++-
 drivers/net/dpaa/dpaa_ethdev.h                | 24 ++++++++
 drivers/net/dpaa/rte_pmd_dpaa_version.map     |  9 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.h              |  2 +
 drivers/net/dpaa2/dpaa2_mux.c                 |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  2 +-
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map   | 12 ++--
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           |  2 +-
 56 files changed, 393 insertions(+), 144 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 02/13] bus/fslmc: " Hemant Agrawal
                           ` (12 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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 |  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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 02/13] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 03/13] bus/dpaa: " Hemant Agrawal
                           ` (11 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which were not used
anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                  |  2 +
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   |  4 +-
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 15 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index b1488d5549..877c6d5be8 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -51,3 +51,5 @@
 ; Ignore moving DPAAx stable functions to INTERNAL tag
 [suppress_file]
 	file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_fslmc\.
diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..04e61156c3 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +11,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +100,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
 
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 03/13] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 02/13] bus/fslmc: " Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 04/13] crypto: " Hemant Agrawal
                           ` (10 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              |  2 ++
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  6 +++++
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  7 +----
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 8 files changed, 81 insertions(+), 6 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 877c6d5be8..ab34302d0c 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -53,3 +53,5 @@
 	file_name_regexp = ^librte_common_dpaax\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_dpaa\.
diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..30ec63a09d 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,8 +67,12 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
 
 void qman_clear_irq(void);
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..f4947fac41 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +13,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -51,7 +50,6 @@ DPDK_20.0 {
 	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
-	qman_clear_irq;
 	qman_create_cgr;
 	qman_create_fq;
 	qman_dca_index;
@@ -87,10 +85,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 04/13] crypto: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (2 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 03/13] bus/dpaa: " Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 05/13] mempool/dpaa2: " Hemant Agrawal
                           ` (9 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                           | 4 ++++
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 4 +---
 5 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index ab34302d0c..8db64f267d 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -55,3 +55,7 @@
 	file_name_regexp = ^librte_bus_fslmc\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_dpaa\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa2_sec\.
+[suppress_file]
+	file_name_regexp = ^librte_pmd_dpaa_sec\.
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..1352f576e5 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..aed07fb371 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,6 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 05/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (3 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 04/13] crypto: " Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 06/13] net/dpaa: " Hemant Agrawal
                           ` (8 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                        | 6 ++++++
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 2 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 8db64f267d..02b7a973cb 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -59,3 +59,9 @@
 	file_name_regexp = ^librte_pmd_dpaa2_sec\.
 [suppress_file]
 	file_name_regexp = ^librte_pmd_dpaa_sec\.
+[suppress_file]
+	file_name_regexp = ^librte_mempool_dpaa\.
+[suppress_function]
+	name = rte_dpaa2_mbuf_alloc_bulk
+[suppress_function]
+	name = rte_dpaa2_bpid_info
diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..142547ee38 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,4 +1,4 @@
-DPDK_20.0 {
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 06/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (4 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 05/13] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 07/13] net/dpaa2: " Hemant Agrawal
                           ` (7 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              | 4 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 02b7a973cb..87c0a918bc 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -64,4 +64,6 @@
 [suppress_function]
 	name = rte_dpaa2_mbuf_alloc_bulk
 [suppress_function]
-	name = rte_dpaa2_bpid_info
+	name_regexp = ^rte_dpaa2_bpid_info
+[suppress_function]
+        name_regexp = ^dpaa
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..774aa0de45 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,14 @@
 DPDK_20.0 {
 	global:
 
-	dpaa_eth_eventq_attach;
-	dpaa_eth_eventq_detach;
 	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	dpaa_eth_eventq_attach;
+	dpaa_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 07/13] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (5 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 06/13] net/dpaa: " Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
                           ` (6 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa2/dpaa2_ethdev.h            |  2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..b633fdc2a8 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,9 +1,4 @@
 DPDK_20.0 {
-	global:
-
-	dpaa2_eth_eventq_attach;
-	dpaa2_eth_eventq_detach;
-
 	local: *;
 };
 
@@ -14,3 +9,10 @@ EXPERIMENTAL {
 	rte_pmd_dpaa2_set_custom_hash;
 	rte_pmd_dpaa2_set_timestamp;
 };
+
+INTERNAL {
+	global:
+
+	dpaa2_eth_eventq_attach;
+	dpaa2_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 08/13] mempool/dpaa2: fix to add the include file
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (6 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 07/13] net/dpaa2: " Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
                           ` (5 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: stable, Hemant Agrawal

rte_dpaa2_mempool.h header was missed to be
added in meson.build for header installation.

Fixes: 7ed359909556 ("mempool/dpaa2: add functions for CMDIF")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/mempool/dpaa2/meson.build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
index df299a0456..c3f479afa1 100644
--- a/drivers/mempool/dpaa2/meson.build
+++ b/drivers/mempool/dpaa2/meson.build
@@ -8,3 +8,5 @@ endif
 
 deps += ['bus_fslmc']
 sources = files('dpaa2_hw_mempool.c')
+
+install_headers('rte_dpaa2_mempool.h')
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 09/13] bus/dpaa: share qman portal ids as function calls
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (7 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
                           ` (4 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

qman caam and pool portal ids are only used in control
path. This patch changes their inter library access to
function call instead of direct shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
 drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 69244ef701..1166d68e21 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
 	.type = dpaa_portal_qman
 };
 
+u16 dpaa_get_qm_channel_caam(void)
+{
+	return qm_channel_caam;
+}
+
+u16 dpaa_get_qm_channel_pool(void)
+{
+	return qm_channel_pool1;
+}
+
 static int fsl_qman_portal_init(uint32_t index, int is_shared)
 {
 	struct qman_portal *portal;
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 4411bb0a79..78b698f393 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -44,6 +44,12 @@ enum qm_dc_portal {
 	qm_dc_portal_pme = 3
 };
 
+__rte_internal
+u16 dpaa_get_qm_channel_caam(void);
+
+__rte_internal
+u16 dpaa_get_qm_channel_pool(void);
+
 /* Portal processing (interrupt) sources */
 #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
 #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
@@ -65,7 +71,7 @@ enum qm_dc_portal {
 /* for conversion from n of qm_channel */
 static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
 {
-	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
+	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
 }
 
 /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index f4947fac41..220fc32da1 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,8 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_qm_channel_caam;
+	dpaa_get_qm_channel_pool;
 	dpaa_logtype_eventdev;
 	dpaa_logtype_mempool;
 	dpaa_logtype_pmd;
@@ -46,8 +48,6 @@ INTERNAL {
 	netcfg_release;
 	per_lcore_dpaa_io;
 	per_lcore_held_bufs;
-	qm_channel_caam;
-	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
 	qman_create_cgr;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 25dcbd259a..4af9024a00 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
 
 	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
 	fq_opts.fqd.context_b = fqid_out;
-	fq_opts.fqd.dest.channel = qm_channel_caam;
+	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
 	fq_opts.fqd.dest.wq = 0;
 
 	fq_in->cb.ern  = ern_sec_fq_handler;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 10/13] bus/dpaa: move log into to respective dpaa drivers
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (8 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
                           ` (3 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This is to reduce the number of variables getting exposed
from the dpaa bus. They are not required to be in bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 19 +-------
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 --
 drivers/bus/dpaa/rte_dpaa_logs.h          | 58 -----------------------
 drivers/event/dpaa/dpaa_eventdev.c        |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h        | 16 +++++++
 drivers/mempool/dpaa/dpaa_mempool.c       |  8 ++++
 drivers/mempool/dpaa/dpaa_mempool.h       | 19 ++++++++
 drivers/net/dpaa/dpaa_ethdev.c            | 10 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 22 +++++++++
 9 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index f27820db37..41d42b0c30 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -43,9 +43,6 @@
 #include <netcfg.h>
 
 int dpaa_logtype_bus;
-int dpaa_logtype_mempool;
-int dpaa_logtype_pmd;
-int dpaa_logtype_eventdev;
 
 static struct rte_dpaa_bus rte_dpaa_bus;
 struct netcfg_info *dpaa_netcfg;
@@ -567,13 +564,13 @@ rte_dpaa_bus_probe(void)
 			/* One time load of Qman/Bman drivers */
 			ret = qman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("QMAN initialization failed: %d",
+				DPAA_BUS_ERR("QMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
 			ret = bman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("BMAN initialization failed: %d",
+				DPAA_BUS_ERR("BMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
@@ -752,16 +749,4 @@ RTE_INIT(dpaa_init_log)
 	dpaa_logtype_bus = rte_log_register("bus.dpaa");
 	if (dpaa_logtype_bus >= 0)
 		rte_log_set_level(dpaa_logtype_bus, RTE_LOG_NOTICE);
-
-	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
-	if (dpaa_logtype_mempool >= 0)
-		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
-
-	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
-	if (dpaa_logtype_pmd >= 0)
-		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
-
-	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
-	if (dpaa_logtype_eventdev >= 0)
-		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
 }
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 220fc32da1..9b02cc674c 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -10,10 +10,6 @@ INTERNAL {
 	bman_thread_irq;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
-	dpaa_logtype_eventdev;
-	dpaa_logtype_mempool;
-	dpaa_logtype_pmd;
-	dpaa_netcfg;
 	dpaa_svr_family;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h
index e414354320..149b127434 100644
--- a/drivers/bus/dpaa/rte_dpaa_logs.h
+++ b/drivers/bus/dpaa/rte_dpaa_logs.h
@@ -10,9 +10,6 @@
 #include <rte_log.h>
 
 extern int dpaa_logtype_bus;
-extern int dpaa_logtype_mempool;
-extern int dpaa_logtype_pmd;
-extern int dpaa_logtype_eventdev;
 
 #define DPAA_BUS_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, dpaa_logtype_bus, "dpaa: " fmt "\n", ##args)
@@ -40,59 +37,4 @@ extern int dpaa_logtype_eventdev;
 #define DPAA_BUS_WARN(fmt, args...) \
 	DPAA_BUS_LOG(WARNING, fmt, ## args)
 
-/* Mempool related logs */
-
-#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
-
-#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
-	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
-#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
-	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
-#define DPAA_MEMPOOL_ERR(fmt, args...) \
-	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
-#define DPAA_MEMPOOL_INFO(fmt, args...) \
-	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
-#define DPAA_MEMPOOL_WARN(fmt, args...) \
-	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
-
-/* PMD related logs */
-
-#define DPAA_PMD_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
-
-#define DPAA_PMD_DEBUG(fmt, args...) \
-	DPAA_PMD_LOG(DEBUG, fmt, ## args)
-#define DPAA_PMD_ERR(fmt, args...) \
-	DPAA_PMD_LOG(ERR, fmt, ## args)
-#define DPAA_PMD_INFO(fmt, args...) \
-	DPAA_PMD_LOG(INFO, fmt, ## args)
-#define DPAA_PMD_WARN(fmt, args...) \
-	DPAA_PMD_LOG(WARNING, fmt, ## args)
-
-#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
-
-#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
-	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
-#define DPAA_EVENTDEV_ERR(fmt, args...) \
-	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
-#define DPAA_EVENTDEV_INFO(fmt, args...) \
-	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
-#define DPAA_EVENTDEV_WARN(fmt, args...) \
-	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
-
-/* DP Logs, toggled out at compile time if level lower than current level */
-#define DPAA_DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
-
 #endif /* _DPAA_LOGS_H_ */
diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index a7d57edce7..5a018d4871 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -46,6 +46,7 @@
  * Eventqueue = Channel Instance
  * 1 Eventdev can have N Eventqueue
  */
+int dpaa_logtype_eventdev;
 
 #define DISABLE_INTR_MODE "disable_intr"
 
@@ -1068,3 +1069,9 @@ static struct rte_vdev_driver vdev_eventdev_dpaa_pmd = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DPAA_PMD, vdev_eventdev_dpaa_pmd);
 RTE_PMD_REGISTER_PARAM_STRING(EVENTDEV_NAME_DPAA_PMD,
 		DISABLE_INTR_MODE "=<int>");
+RTE_INIT(dpaa_event_init_log)
+{
+	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
+	if (dpaa_logtype_eventdev >= 0)
+		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/dpaa/dpaa_eventdev.h b/drivers/event/dpaa/dpaa_eventdev.h
index 5ce15a3db9..0b3da83a4f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.h
+++ b/drivers/event/dpaa/dpaa_eventdev.h
@@ -76,4 +76,20 @@ struct dpaa_eventdev {
 	uint32_t nb_event_port_enqueue_depth;
 	uint32_t event_dev_cfg;
 };
+
+#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
+
+#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
+	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
+#define DPAA_EVENTDEV_ERR(fmt, args...) \
+	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
+#define DPAA_EVENTDEV_INFO(fmt, args...) \
+	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
+#define DPAA_EVENTDEV_WARN(fmt, args...) \
+	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
+
 #endif /* __DPAA_EVENTDEV_H__ */
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 3a2528331c..451e2d5d56 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -36,6 +36,7 @@ struct dpaa_memseg_list rte_dpaa_memsegs
 	= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
 
 struct dpaa_bp_info *rte_dpaa_bpid_info;
+int dpaa_logtype_mempool;
 
 static int
 dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@ -356,3 +357,10 @@ static const struct rte_mempool_ops dpaa_mpool_ops = {
 };
 
 MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);
+
+RTE_INIT(dpaa_mp_init_log)
+{
+	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
+	if (dpaa_logtype_mempool >= 0)
+		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
+}
diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h
index f69e11f011..dc0058e6dd 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.h
+++ b/drivers/mempool/dpaa/dpaa_mempool.h
@@ -58,4 +58,23 @@ extern struct dpaa_bp_info *rte_dpaa_bpid_info;
 
 #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid])
 
+/* Mempool related logs */
+
+#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
+
+#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
+	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
+#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
+	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
+#define DPAA_MEMPOOL_ERR(fmt, args...) \
+	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
+#define DPAA_MEMPOOL_INFO(fmt, args...) \
+	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
+#define DPAA_MEMPOOL_WARN(fmt, args...) \
+	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
+
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 56eb5ec47c..c97f3042be 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -46,6 +46,8 @@
 #include <fsl_bman.h>
 #include <fsl_fman.h>
 
+int dpaa_logtype_pmd;
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -1058,7 +1060,7 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 
 	temp1 = read(rxq->q_fd, &temp, sizeof(temp));
 	if (temp1 != sizeof(temp))
-		DPAA_EVENTDEV_ERR("irq read error");
+		DPAA_PMD_ERR("irq read error");
 
 	qman_fq_portal_thread_irq(rxq->qp);
 
@@ -1664,3 +1666,9 @@ static struct rte_dpaa_driver rte_dpaa_pmd = {
 };
 
 RTE_PMD_REGISTER_DPAA(net_dpaa, rte_dpaa_pmd);
+RTE_INIT(dpaa_net_init_log)
+{
+	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
+	if (dpaa_logtype_pmd >= 0)
+		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
+}
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 7393a9df05..6a6477ac87 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -185,4 +185,26 @@ dpaa_rx_cb_atomic(void *event,
 		  const struct qm_dqrr_entry *dqrr,
 		  void **bufs);
 
+/* PMD related logs */
+extern int dpaa_logtype_pmd;
+
+#define DPAA_PMD_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
+
+#define DPAA_PMD_DEBUG(fmt, args...) \
+	DPAA_PMD_LOG(DEBUG, fmt, ## args)
+#define DPAA_PMD_ERR(fmt, args...) \
+	DPAA_PMD_LOG(ERR, fmt, ## args)
+#define DPAA_PMD_INFO(fmt, args...) \
+	DPAA_PMD_LOG(INFO, fmt, ## args)
+#define DPAA_PMD_WARN(fmt, args...) \
+	DPAA_PMD_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level */
+#define DPAA_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt, ## args)
+
 #endif
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 11/13] bus/dpaa: change netcfg access as function
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (9 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
                           ` (2 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch changes the export of fman port config
as function call instead of direct variable access.
This is in control path, so it will not impact perf.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
 drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
 drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
 drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 41d42b0c30..d53fe6083a 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
 RTE_DEFINE_PER_LCORE(bool, dpaa_io);
 RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 
+struct fm_eth_port_cfg *
+dpaa_get_eth_port_cfg(int dev_id)
+{
+	return &dpaa_netcfg->port_cfg[dev_id];
+}
+
 static int
 compare_dpaa_devices(struct rte_dpaa_device *dev1,
 		     struct rte_dpaa_device *dev2)
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 9b02cc674c..1d6bd39f4d 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -8,6 +8,7 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_eth_port_cfg;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
 	dpaa_svr_family;
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index d4aee132ef..2a186d83fb 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -44,9 +44,6 @@ struct rte_dpaa_driver;
 TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
 TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
 
-/* Configuration variables exported from DPAA bus */
-extern struct netcfg_info *dpaa_netcfg;
-
 enum rte_dpaa_type {
 	FSL_DPAA_ETH = 1,
 	FSL_DPAA_CRYPTO,
@@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
 #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
 
+__rte_internal
+struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index c97f3042be..13d1c6a1fc 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
 	dpaa_intf = eth_dev->data->dev_private;
-	cfg = &dpaa_netcfg->port_cfg[dev_id];
+	cfg = dpaa_get_eth_port_cfg(dev_id);
 	fman_intf = cfg->fman_if;
 
 	dpaa_intf->name = dpaa_device->name;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 12/13] bus/fslmc: share mcp ptr as function across libs
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (10 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@ static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 04e61156c3..53e3ce6f99 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -11,6 +11,7 @@ INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,7 +102,6 @@ INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 
 	local: *;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v6 13/13] bus/fslmc: remove unused symbols
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (11 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-14 14:29         ` Hemant Agrawal
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-14 14:29 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

rte_dpaa2_memsegs is not being used by any other library
or even within bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
 drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
 3 files changed, 10 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index 79b148f20b..d9619848d8 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -28,12 +28,6 @@
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-/* List of all the memseg information locally maintained in dpaa2 driver. This
- * is to optimize the PA_to_VA searches until a better mechanism (algo) is
- * available.
- */
-struct dpaa2_memseg_list rte_dpaa2_memsegs
-	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
 
 TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
 static struct dpbp_dev_list dpbp_dev_list
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 194b99c583..19fdd9cfaa 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -325,9 +325,6 @@ struct dpaa2_memseg {
 	size_t len;
 };
 
-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
-
 #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
 extern uint8_t dpaa2_virt_mode;
 static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 53e3ce6f99..975c769d9e 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -96,7 +96,6 @@ INTERNAL {
 	rte_dpaa2_free_dpci_dev;
 	rte_dpaa2_intr_disable;
 	rte_dpaa2_intr_enable;
-	rte_dpaa2_memsegs;
 	rte_fslmc_driver_register;
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 13:31                         ` David Marchand
  2020-05-14 14:10                           ` Hemant Agrawal (OSS)
@ 2020-05-14 16:28                           ` David Marchand
  2020-05-14 17:15                             ` Hemant Agrawal (OSS)
  1 sibling, 1 reply; 134+ messages in thread
From: David Marchand @ 2020-05-14 16:28 UTC (permalink / raw)
  To: Hemant Agrawal (OSS), Ray Kinsella; +Cc: dev, Thomas Monjalon

On Thu, May 14, 2020 at 3:31 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Thu, May 14, 2020 at 2:39 PM Hemant Agrawal (OSS)
> <hemant.agrawal@oss.nxp.com> wrote:
> >
> > [Hemant] this is working fine for pmd_dpaa but not for pmd_dpaa2
> >
> > I removed the filename_exp and introduced function based name=
> > Now the issue is  the following warning
> > SONAME changed from 'librte_pmd_dpaa2.so.20.0' to 'librte_pmd_dpaa2.so.0.200.2'
> >
> > The  primary reason is that now pmd_dpaa2 has no symbol left for 20.0 section.
> > Following is not helping.
> > [suppress_file]
> >         soname_regexp = ^librte_pmd_dpaa2
> > so, it seems for now, the filename_exp is the only option
>
> That's interesting.
> Because I wondered about this point when reviewing __rte_internal.
> For components providing only internal symbols like components
> providing only experimental symbols, the build framework will select a
> soname with .0.200.x.
>
> Here, your dpaa2 driver was seen as a stable library so far.
> Moving everything to internal changes this and the build framework
> changes the soname to non stable.

Looking at a v19.11 testpmd binary:
$ readelf -d $HOME/abi/v19.11/build-gcc-shared/usr/local/bin/dpdk-testpmd
|grep dpaa
 0x0000000000000001 (NEEDED)             Shared library:
[librte_bus_dpaa.so.20.0]
 0x0000000000000001 (NEEDED)             Shared library:
[librte_common_dpaax.so.20.0]
 0x0000000000000001 (NEEDED)             Shared library:
[librte_mempool_dpaa.so.20.0]
 0x0000000000000001 (NEEDED)             Shared library:
[librte_pmd_dpaa.so.20.0]

Changing the soname would break this.

> You could keep an empty DPDK_20.0 block to avoid this and the soname
> will be kept as is.

We will have to maintain such soname for all dpaa libraries until 20.11.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 16:28                           ` David Marchand
@ 2020-05-14 17:15                             ` Hemant Agrawal (OSS)
  2020-05-15  9:26                               ` Thomas Monjalon
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal (OSS) @ 2020-05-14 17:15 UTC (permalink / raw)
  To: David Marchand, Hemant Agrawal (OSS), Ray Kinsella; +Cc: dev, Thomas Monjalon

> 
> On Thu, May 14, 2020 at 3:31 PM David Marchand
> <david.marchand@redhat.com> wrote:
> >
> > On Thu, May 14, 2020 at 2:39 PM Hemant Agrawal (OSS)
> > <hemant.agrawal@oss.nxp.com> wrote:
> > >
> > > [Hemant] this is working fine for pmd_dpaa but not for pmd_dpaa2
> > >
> > > I removed the filename_exp and introduced function based name= Now
> > > the issue is  the following warning SONAME changed from
> > > 'librte_pmd_dpaa2.so.20.0' to 'librte_pmd_dpaa2.so.0.200.2'
> > >
> > > The  primary reason is that now pmd_dpaa2 has no symbol left for 20.0
> section.
> > > Following is not helping.
> > > [suppress_file]
> > >         soname_regexp = ^librte_pmd_dpaa2 so, it seems for now, the
> > > filename_exp is the only option
> >
> > That's interesting.
> > Because I wondered about this point when reviewing __rte_internal.
> > For components providing only internal symbols like components
> > providing only experimental symbols, the build framework will select a
> > soname with .0.200.x.
> >
> > Here, your dpaa2 driver was seen as a stable library so far.
> > Moving everything to internal changes this and the build framework
> > changes the soname to non stable.
> 
> Looking at a v19.11 testpmd binary:
> $ readelf -d $HOME/abi/v19.11/build-gcc-shared/usr/local/bin/dpdk-testpmd
> |grep dpaa
>  0x0000000000000001 (NEEDED)             Shared library:
> [librte_bus_dpaa.so.20.0]
>  0x0000000000000001 (NEEDED)             Shared library:
> [librte_common_dpaax.so.20.0]
>  0x0000000000000001 (NEEDED)             Shared library:
> [librte_mempool_dpaa.so.20.0]
>  0x0000000000000001 (NEEDED)             Shared library:
> [librte_pmd_dpaa.so.20.0]
> 
> Changing the soname would break this.
> 
> > You could keep an empty DPDK_20.0 block to avoid this and the soname
> > will be kept as is.

[Hemant] Yes, I was thinking about it but missed to make this change while sending patch. Will do it asap.
> 
> We will have to maintain such soname for all dpaa libraries until 20.11.
> 
> 
> --
> David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (12 preceding siblings ...)
  2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
@ 2020-05-15  5:08         ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                             ` (12 more replies)
  13 siblings, 13 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr

v7: using empty DPDK_20.0 to preserve the so name

v6: v5 was dirty

v5: use empty DPDK_20.0 to avoid so name erriin pmd_dpaa2


v4: pmd_dpaa, mempool_dpaa2 also has external symbols. So, changing
the libabigail.abignore exception to only for selected func calls
pmd_dpaa2 also has experimental external func call remaining.
However, it causes the so name to be changed. So, we need to maintain
the specific file name exception there for now. 

v3: adding entries in libabigail.ignore

This patchset moves the internal symbol to the INTERNAL sections

This patch also change some of the shared variables to function
calls. (Mostly control path used variables).

Hemant Agrawal (13):
  common/dpaax: move internal symbols into INTERNAL section
  bus/fslmc: move internal symbols into INTERNAL section
  bus/dpaa: move internal symbols into INTERNAL section
  mempool/dpaa2: move internal symbols into INTERNAL section
  net/dpaa: move internal symbols into INTERNAL section
  net/dpaa2: move internal symbols into INTERNAL section
  crypto: move internal symbols into INTERNAL section
  mempool/dpaa2: fix to add the include file
  bus/dpaa: share qman portal ids as function calls
  bus/dpaa: move log into to respective dpaa drivers
  bus/dpaa: change netcfg access as function
  bus/fslmc: share mcp ptr as function across libs
  bus/fslmc: remove unused symbols

 devtools/libabigail.abignore                  | 17 ++++++
 drivers/bus/dpaa/base/qbman/qman_driver.c     | 10 ++++
 drivers/bus/dpaa/dpaa_bus.c                   | 25 +++-----
 drivers/bus/dpaa/include/fsl_bman.h           |  6 ++
 drivers/bus/dpaa/include/fsl_fman.h           | 27 +++++++++
 drivers/bus/dpaa/include/fsl_qman.h           | 40 ++++++++++++-
 drivers/bus/dpaa/include/fsl_usd.h            |  8 ++-
 drivers/bus/dpaa/include/netcfg.h             |  2 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map     | 17 +++---
 drivers/bus/dpaa/rte_dpaa_bus.h               | 11 +++-
 drivers/bus/dpaa/rte_dpaa_logs.h              | 58 -------------------
 drivers/bus/fslmc/fslmc_vfio.c                | 15 ++++-
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 ++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 +
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 +++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 +++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |  8 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 ++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       | 18 ++++--
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 +
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   | 23 ++++----
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 drivers/common/dpaax/dpaa_of.h                | 15 +++++
 drivers/common/dpaax/dpaax_iova_table.h       |  4 ++
 .../common/dpaax/rte_common_dpaax_version.map |  6 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h    |  5 +-
 .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map   |  6 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h      |  8 +--
 .../dpaa_sec/rte_pmd_dpaa_sec_version.map     |  6 +-
 drivers/event/dpaa/dpaa_eventdev.c            |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h            | 16 +++++
 drivers/event/dpaa2/dpaa2_hw_dpcon.c          |  2 +-
 drivers/mempool/dpaa/dpaa_mempool.c           |  8 +++
 drivers/mempool/dpaa/dpaa_mempool.h           | 19 ++++++
 .../mempool/dpaa/rte_mempool_dpaa_version.map |  6 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h      |  1 +
 drivers/mempool/dpaa2/meson.build             |  2 +
 .../dpaa2/rte_mempool_dpaa2_version.map       |  9 ++-
 drivers/net/dpaa/dpaa_ethdev.c                | 12 +++-
 drivers/net/dpaa/dpaa_ethdev.h                | 24 ++++++++
 drivers/net/dpaa/rte_pmd_dpaa_version.map     |  9 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.h              |  2 +
 drivers/net/dpaa2/dpaa2_mux.c                 |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  2 +-
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map   | 12 ++--
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           |  2 +-
 56 files changed, 416 insertions(+), 152 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 02/13] bus/fslmc: " Hemant Agrawal
                             ` (11 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 02/13] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 03/13] bus/dpaa: " Hemant Agrawal
                             ` (10 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which were not used
anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                  |  2 +
 drivers/bus/fslmc/fslmc_vfio.h                |  4 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  6 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             |  8 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               |  9 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  2 +
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  1 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  3 ++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 41 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   | 20 ++++-----
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 15 files changed, 108 insertions(+), 10 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index b1488d5549..877c6d5be8 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -51,3 +51,5 @@
 ; Ignore moving DPAAx stable functions to INTERNAL tag
 [suppress_file]
 	file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_fslmc\.
diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..609e48aea3 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -41,7 +41,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..7b537a21be 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -14,6 +14,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +43,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +58,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +74,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +93,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..e7e8a5dda9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -23,11 +23,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +56,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +86,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +153,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +174,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +191,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..92e97db94b 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -13,11 +13,13 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +59,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +74,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +90,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +127,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..cdd8506625 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -34,6 +34,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +49,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..06ea41a3b2 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -80,6 +80,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..328f2022fc 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -24,7 +24,10 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..7ac0f82106 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -117,6 +117,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +287,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +327,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +343,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +353,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +377,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +413,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +428,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +444,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +452,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +461,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +472,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +498,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +511,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +640,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +675,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +685,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +718,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +727,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +738,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +872,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +893,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +905,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +940,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +955,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +971,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +981,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1007,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1017,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1028,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1041,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1050,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1077,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1095,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1112,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1154,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1180,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1206,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..1b7a5a45e9 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,14 @@
 DPDK_20.0 {
+	local: *;
+};
+
+EXPERIMENTAL {
+	global:
+
+	rte_fslmc_vfio_mem_dmamap;
+};
+
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +21,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,15 +110,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
-
-	local: *;
-};
-
-EXPERIMENTAL {
-	global:
-
-	rte_fslmc_vfio_mem_dmamap;
 };
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 03/13] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 02/13] bus/fslmc: " Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 04/13] mempool/dpaa2: " Hemant Agrawal
                             ` (9 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which are not
to be exported.
rte_dpaa_mem_ptov  - static inline in the headerfile
fman_ccsr_map_fd - local shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore              |  2 ++
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  8 +++++-
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  8 +++---
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 8 files changed, 85 insertions(+), 5 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 877c6d5be8..ab34302d0c 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -53,3 +53,5 @@
 	file_name_regexp = ^librte_common_dpaax\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_dpaa\.
diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..dcf35e4adb 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,10 +67,14 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
-
+__rte_internal
 void qman_clear_irq(void);
 
 /* Global setup */
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..53732289d3 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,8 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +17,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -87,10 +90,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 04/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (2 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 03/13] bus/dpaa: " Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 05/13] net/dpaa: " Hemant Agrawal
                             ` (8 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                        | 8 ++++++++
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 6 ++++--
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index ab34302d0c..42f9469221 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -55,3 +55,11 @@
 	file_name_regexp = ^librte_bus_fslmc\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_dpaa\.
+[suppress_function]
+	name = rte_dpaa2_mbuf_alloc_bulk
+[suppress_variable]
+	name_regexp = ^rte_dpaa_memsegs
+[suppress_variable]
+	name_regexp = ^rte_dpaa_bpid_info
+[suppress_variable]
+	name_regexp = ^rte_dpaa2_bpid_info
diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..89d7cf4957 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,8 +1,10 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
 	rte_dpaa_memsegs;
-
-	local: *;
 };
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 05/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (3 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 04/13] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 06/13] net/dpaa2: " Hemant Agrawal
                             ` (7 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              | 2 ++
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 42f9469221..7b6358c394 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -63,3 +63,5 @@
 	name_regexp = ^rte_dpaa_bpid_info
 [suppress_variable]
 	name_regexp = ^rte_dpaa2_bpid_info
+[suppress_function]
+        name_regexp = ^dpaa
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..774aa0de45 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,14 @@
 DPDK_20.0 {
 	global:
 
-	dpaa_eth_eventq_attach;
-	dpaa_eth_eventq_detach;
 	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	dpaa_eth_eventq_attach;
+	dpaa_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 06/13] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (4 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 05/13] net/dpaa: " Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 07/13] crypto: " Hemant Agrawal
                             ` (6 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa2/dpaa2_ethdev.h            |  2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..b633fdc2a8 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,9 +1,4 @@
 DPDK_20.0 {
-	global:
-
-	dpaa2_eth_eventq_attach;
-	dpaa2_eth_eventq_detach;
-
 	local: *;
 };
 
@@ -14,3 +9,10 @@ EXPERIMENTAL {
 	rte_pmd_dpaa2_set_custom_hash;
 	rte_pmd_dpaa2_set_timestamp;
 };
+
+INTERNAL {
+	global:
+
+	dpaa2_eth_eventq_attach;
+	dpaa2_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 07/13] crypto: move internal symbols into INTERNAL section
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (5 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 06/13] net/dpaa2: " Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
                             ` (5 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 6 ++++--
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 6 ++++--
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..3d863aff4d 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,8 +1,10 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
 	dpaa2_sec_eventq_detach;
-
-	local: *;
 };
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..023e120516 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,10 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 08/13] mempool/dpaa2: fix to add the include file
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (6 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 07/13] crypto: " Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
                             ` (4 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: stable, Hemant Agrawal

rte_dpaa2_mempool.h header was missed to be
added in meson.build for header installation.

Fixes: 7ed359909556 ("mempool/dpaa2: add functions for CMDIF")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/mempool/dpaa2/meson.build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
index df299a0456..c3f479afa1 100644
--- a/drivers/mempool/dpaa2/meson.build
+++ b/drivers/mempool/dpaa2/meson.build
@@ -8,3 +8,5 @@ endif
 
 deps += ['bus_fslmc']
 sources = files('dpaa2_hw_mempool.c')
+
+install_headers('rte_dpaa2_mempool.h')
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 09/13] bus/dpaa: share qman portal ids as function calls
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (7 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
                             ` (3 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

qman caam and pool portal ids are only used in control
path. This patch changes their inter library access to
function call instead of direct shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
 drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 69244ef701..1166d68e21 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
 	.type = dpaa_portal_qman
 };
 
+u16 dpaa_get_qm_channel_caam(void)
+{
+	return qm_channel_caam;
+}
+
+u16 dpaa_get_qm_channel_pool(void)
+{
+	return qm_channel_pool1;
+}
+
 static int fsl_qman_portal_init(uint32_t index, int is_shared)
 {
 	struct qman_portal *portal;
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 4411bb0a79..78b698f393 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -44,6 +44,12 @@ enum qm_dc_portal {
 	qm_dc_portal_pme = 3
 };
 
+__rte_internal
+u16 dpaa_get_qm_channel_caam(void);
+
+__rte_internal
+u16 dpaa_get_qm_channel_pool(void);
+
 /* Portal processing (interrupt) sources */
 #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
 #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
@@ -65,7 +71,7 @@ enum qm_dc_portal {
 /* for conversion from n of qm_channel */
 static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
 {
-	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
+	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
 }
 
 /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 53732289d3..8bb2757e04 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -12,6 +12,8 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_qm_channel_caam;
+	dpaa_get_qm_channel_pool;
 	dpaa_logtype_eventdev;
 	dpaa_logtype_mempool;
 	dpaa_logtype_pmd;
@@ -50,8 +52,6 @@ INTERNAL {
 	netcfg_release;
 	per_lcore_dpaa_io;
 	per_lcore_held_bufs;
-	qm_channel_caam;
-	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
 	qman_clear_irq;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 25dcbd259a..4af9024a00 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
 
 	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
 	fq_opts.fqd.context_b = fqid_out;
-	fq_opts.fqd.dest.channel = qm_channel_caam;
+	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
 	fq_opts.fqd.dest.wq = 0;
 
 	fq_in->cb.ern  = ern_sec_fq_handler;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 10/13] bus/dpaa: move log into to respective dpaa drivers
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (8 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
                             ` (2 subsequent siblings)
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This is to reduce the number of variables getting exposed
from the dpaa bus. They are not required to be in bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 19 +-------
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 --
 drivers/bus/dpaa/rte_dpaa_logs.h          | 58 -----------------------
 drivers/event/dpaa/dpaa_eventdev.c        |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h        | 16 +++++++
 drivers/mempool/dpaa/dpaa_mempool.c       |  8 ++++
 drivers/mempool/dpaa/dpaa_mempool.h       | 19 ++++++++
 drivers/net/dpaa/dpaa_ethdev.c            | 10 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 22 +++++++++
 9 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index f27820db37..41d42b0c30 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -43,9 +43,6 @@
 #include <netcfg.h>
 
 int dpaa_logtype_bus;
-int dpaa_logtype_mempool;
-int dpaa_logtype_pmd;
-int dpaa_logtype_eventdev;
 
 static struct rte_dpaa_bus rte_dpaa_bus;
 struct netcfg_info *dpaa_netcfg;
@@ -567,13 +564,13 @@ rte_dpaa_bus_probe(void)
 			/* One time load of Qman/Bman drivers */
 			ret = qman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("QMAN initialization failed: %d",
+				DPAA_BUS_ERR("QMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
 			ret = bman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("BMAN initialization failed: %d",
+				DPAA_BUS_ERR("BMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
@@ -752,16 +749,4 @@ RTE_INIT(dpaa_init_log)
 	dpaa_logtype_bus = rte_log_register("bus.dpaa");
 	if (dpaa_logtype_bus >= 0)
 		rte_log_set_level(dpaa_logtype_bus, RTE_LOG_NOTICE);
-
-	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
-	if (dpaa_logtype_mempool >= 0)
-		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
-
-	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
-	if (dpaa_logtype_pmd >= 0)
-		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
-
-	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
-	if (dpaa_logtype_eventdev >= 0)
-		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
 }
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 8bb2757e04..e53e8fa222 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -14,10 +14,6 @@ INTERNAL {
 	bman_thread_irq;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
-	dpaa_logtype_eventdev;
-	dpaa_logtype_mempool;
-	dpaa_logtype_pmd;
-	dpaa_netcfg;
 	dpaa_svr_family;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h
index e414354320..149b127434 100644
--- a/drivers/bus/dpaa/rte_dpaa_logs.h
+++ b/drivers/bus/dpaa/rte_dpaa_logs.h
@@ -10,9 +10,6 @@
 #include <rte_log.h>
 
 extern int dpaa_logtype_bus;
-extern int dpaa_logtype_mempool;
-extern int dpaa_logtype_pmd;
-extern int dpaa_logtype_eventdev;
 
 #define DPAA_BUS_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, dpaa_logtype_bus, "dpaa: " fmt "\n", ##args)
@@ -40,59 +37,4 @@ extern int dpaa_logtype_eventdev;
 #define DPAA_BUS_WARN(fmt, args...) \
 	DPAA_BUS_LOG(WARNING, fmt, ## args)
 
-/* Mempool related logs */
-
-#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
-
-#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
-	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
-#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
-	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
-#define DPAA_MEMPOOL_ERR(fmt, args...) \
-	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
-#define DPAA_MEMPOOL_INFO(fmt, args...) \
-	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
-#define DPAA_MEMPOOL_WARN(fmt, args...) \
-	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
-
-/* PMD related logs */
-
-#define DPAA_PMD_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
-
-#define DPAA_PMD_DEBUG(fmt, args...) \
-	DPAA_PMD_LOG(DEBUG, fmt, ## args)
-#define DPAA_PMD_ERR(fmt, args...) \
-	DPAA_PMD_LOG(ERR, fmt, ## args)
-#define DPAA_PMD_INFO(fmt, args...) \
-	DPAA_PMD_LOG(INFO, fmt, ## args)
-#define DPAA_PMD_WARN(fmt, args...) \
-	DPAA_PMD_LOG(WARNING, fmt, ## args)
-
-#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
-
-#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
-	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
-#define DPAA_EVENTDEV_ERR(fmt, args...) \
-	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
-#define DPAA_EVENTDEV_INFO(fmt, args...) \
-	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
-#define DPAA_EVENTDEV_WARN(fmt, args...) \
-	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
-
-/* DP Logs, toggled out at compile time if level lower than current level */
-#define DPAA_DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
-
 #endif /* _DPAA_LOGS_H_ */
diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index a7d57edce7..5a018d4871 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -46,6 +46,7 @@
  * Eventqueue = Channel Instance
  * 1 Eventdev can have N Eventqueue
  */
+int dpaa_logtype_eventdev;
 
 #define DISABLE_INTR_MODE "disable_intr"
 
@@ -1068,3 +1069,9 @@ static struct rte_vdev_driver vdev_eventdev_dpaa_pmd = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DPAA_PMD, vdev_eventdev_dpaa_pmd);
 RTE_PMD_REGISTER_PARAM_STRING(EVENTDEV_NAME_DPAA_PMD,
 		DISABLE_INTR_MODE "=<int>");
+RTE_INIT(dpaa_event_init_log)
+{
+	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
+	if (dpaa_logtype_eventdev >= 0)
+		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/dpaa/dpaa_eventdev.h b/drivers/event/dpaa/dpaa_eventdev.h
index 5ce15a3db9..0b3da83a4f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.h
+++ b/drivers/event/dpaa/dpaa_eventdev.h
@@ -76,4 +76,20 @@ struct dpaa_eventdev {
 	uint32_t nb_event_port_enqueue_depth;
 	uint32_t event_dev_cfg;
 };
+
+#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
+
+#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
+	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
+#define DPAA_EVENTDEV_ERR(fmt, args...) \
+	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
+#define DPAA_EVENTDEV_INFO(fmt, args...) \
+	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
+#define DPAA_EVENTDEV_WARN(fmt, args...) \
+	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
+
 #endif /* __DPAA_EVENTDEV_H__ */
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 3a2528331c..451e2d5d56 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -36,6 +36,7 @@ struct dpaa_memseg_list rte_dpaa_memsegs
 	= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
 
 struct dpaa_bp_info *rte_dpaa_bpid_info;
+int dpaa_logtype_mempool;
 
 static int
 dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@ -356,3 +357,10 @@ static const struct rte_mempool_ops dpaa_mpool_ops = {
 };
 
 MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);
+
+RTE_INIT(dpaa_mp_init_log)
+{
+	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
+	if (dpaa_logtype_mempool >= 0)
+		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
+}
diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h
index f69e11f011..dc0058e6dd 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.h
+++ b/drivers/mempool/dpaa/dpaa_mempool.h
@@ -58,4 +58,23 @@ extern struct dpaa_bp_info *rte_dpaa_bpid_info;
 
 #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid])
 
+/* Mempool related logs */
+
+#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
+
+#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
+	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
+#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
+	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
+#define DPAA_MEMPOOL_ERR(fmt, args...) \
+	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
+#define DPAA_MEMPOOL_INFO(fmt, args...) \
+	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
+#define DPAA_MEMPOOL_WARN(fmt, args...) \
+	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
+
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 56eb5ec47c..c97f3042be 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -46,6 +46,8 @@
 #include <fsl_bman.h>
 #include <fsl_fman.h>
 
+int dpaa_logtype_pmd;
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -1058,7 +1060,7 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 
 	temp1 = read(rxq->q_fd, &temp, sizeof(temp));
 	if (temp1 != sizeof(temp))
-		DPAA_EVENTDEV_ERR("irq read error");
+		DPAA_PMD_ERR("irq read error");
 
 	qman_fq_portal_thread_irq(rxq->qp);
 
@@ -1664,3 +1666,9 @@ static struct rte_dpaa_driver rte_dpaa_pmd = {
 };
 
 RTE_PMD_REGISTER_DPAA(net_dpaa, rte_dpaa_pmd);
+RTE_INIT(dpaa_net_init_log)
+{
+	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
+	if (dpaa_logtype_pmd >= 0)
+		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
+}
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 7393a9df05..6a6477ac87 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -185,4 +185,26 @@ dpaa_rx_cb_atomic(void *event,
 		  const struct qm_dqrr_entry *dqrr,
 		  void **bufs);
 
+/* PMD related logs */
+extern int dpaa_logtype_pmd;
+
+#define DPAA_PMD_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
+
+#define DPAA_PMD_DEBUG(fmt, args...) \
+	DPAA_PMD_LOG(DEBUG, fmt, ## args)
+#define DPAA_PMD_ERR(fmt, args...) \
+	DPAA_PMD_LOG(ERR, fmt, ## args)
+#define DPAA_PMD_INFO(fmt, args...) \
+	DPAA_PMD_LOG(INFO, fmt, ## args)
+#define DPAA_PMD_WARN(fmt, args...) \
+	DPAA_PMD_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level */
+#define DPAA_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt, ## args)
+
 #endif
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 11/13] bus/dpaa: change netcfg access as function
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (9 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch changes the export of fman port config
as function call instead of direct variable access.
This is in control path, so it will not impact perf.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
 drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
 drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
 drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 41d42b0c30..d53fe6083a 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
 RTE_DEFINE_PER_LCORE(bool, dpaa_io);
 RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 
+struct fm_eth_port_cfg *
+dpaa_get_eth_port_cfg(int dev_id)
+{
+	return &dpaa_netcfg->port_cfg[dev_id];
+}
+
 static int
 compare_dpaa_devices(struct rte_dpaa_device *dev1,
 		     struct rte_dpaa_device *dev2)
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e53e8fa222..46d42f7d64 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -12,6 +12,7 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_eth_port_cfg;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
 	dpaa_svr_family;
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index d4aee132ef..2a186d83fb 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -44,9 +44,6 @@ struct rte_dpaa_driver;
 TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
 TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
 
-/* Configuration variables exported from DPAA bus */
-extern struct netcfg_info *dpaa_netcfg;
-
 enum rte_dpaa_type {
 	FSL_DPAA_ETH = 1,
 	FSL_DPAA_CRYPTO,
@@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
 #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
 
+__rte_internal
+struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index c97f3042be..13d1c6a1fc 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
 	dpaa_intf = eth_dev->data->dev_private;
-	cfg = &dpaa_netcfg->port_cfg[dev_id];
+	cfg = dpaa_get_eth_port_cfg(dev_id);
 	fman_intf = cfg->fman_if;
 
 	dpaa_intf->name = dpaa_device->name;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 12/13] bus/fslmc: share mcp ptr as function across libs
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (10 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@ static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 1b7a5a45e9..80da19a277 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -21,6 +21,7 @@ INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -111,5 +112,4 @@ INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v7 13/13] bus/fslmc: remove unused symbols
  2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                             ` (11 preceding siblings ...)
  2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-15  5:08           ` Hemant Agrawal
  12 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  5:08 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

rte_dpaa2_memsegs is not being used by any other library
or even within bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
 drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
 3 files changed, 10 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index 79b148f20b..d9619848d8 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -28,12 +28,6 @@
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-/* List of all the memseg information locally maintained in dpaa2 driver. This
- * is to optimize the PA_to_VA searches until a better mechanism (algo) is
- * available.
- */
-struct dpaa2_memseg_list rte_dpaa2_memsegs
-	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
 
 TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
 static struct dpbp_dev_list dpbp_dev_list
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 194b99c583..19fdd9cfaa 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -325,9 +325,6 @@ struct dpaa2_memseg {
 	size_t len;
 };
 
-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
-
 #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
 extern uint8_t dpaa2_virt_mode;
 static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 80da19a277..69e7dc6ad9 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -106,7 +106,6 @@ INTERNAL {
 	rte_dpaa2_free_dpci_dev;
 	rte_dpaa2_intr_disable;
 	rte_dpaa2_intr_enable;
-	rte_dpaa2_memsegs;
 	rte_fslmc_driver_register;
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-14 17:15                             ` Hemant Agrawal (OSS)
@ 2020-05-15  9:26                               ` Thomas Monjalon
  2020-05-15 11:19                                 ` Thomas Monjalon
  0 siblings, 1 reply; 134+ messages in thread
From: Thomas Monjalon @ 2020-05-15  9:26 UTC (permalink / raw)
  To: David Marchand, hemant.agrawal; +Cc: Ray Kinsella, dev, neil.horman, techboard

14/05/2020 19:15, Hemant Agrawal (OSS):
> > On Thu, May 14, 2020 at 3:31 PM David Marchand
> > <david.marchand@redhat.com> wrote:
> > > On Thu, May 14, 2020 at 2:39 PM Hemant Agrawal (OSS)
> > > <hemant.agrawal@oss.nxp.com> wrote:
> > > >
> > > > [Hemant] this is working fine for pmd_dpaa but not for pmd_dpaa2
> > > >
> > > > I removed the filename_exp and introduced function based name
> > > > Now the issue is  the following warning SONAME changed from
> > > > 'librte_pmd_dpaa2.so.20.0' to 'librte_pmd_dpaa2.so.0.200.2'
> > > >
> > > > The  primary reason is that now pmd_dpaa2 has no symbol left for
> > > > 20.0 section.
> > > > Following is not helping.
> > > > [suppress_file]
> > > >         soname_regexp = ^librte_pmd_dpaa2 so, it seems for now, the
> > > > filename_exp is the only option
> > >
> > > That's interesting.
> > > Because I wondered about this point when reviewing __rte_internal.
> > > For components providing only internal symbols like components
> > > providing only experimental symbols, the build framework will select a
> > > soname with .0.200.x.

I will remind once again that I was against this rule.
Distinguishing "stable or partially stable" and "completely non-stable"
libraries is an useless complication.


> > > Here, your dpaa2 driver was seen as a stable library so far.
> > > Moving everything to internal changes this and the build framework
> > > changes the soname to non stable.
> > 
> > Looking at a v19.11 testpmd binary:
> > $ readelf -d $HOME/abi/v19.11/build-gcc-shared/usr/local/bin/dpdk-testpmd
> > |grep dpaa
> >  0x0000000000000001 (NEEDED)             Shared library:
> > [librte_bus_dpaa.so.20.0]
> >  0x0000000000000001 (NEEDED)             Shared library:
> > [librte_common_dpaax.so.20.0]
> >  0x0000000000000001 (NEEDED)             Shared library:
> > [librte_mempool_dpaa.so.20.0]
> >  0x0000000000000001 (NEEDED)             Shared library:
> > [librte_pmd_dpaa.so.20.0]
> > 
> > Changing the soname would break this.
> > 
> > > You could keep an empty DPDK_20.0 block to avoid this and the soname
> > > will be kept as is.
> 
> [Hemant] Yes, I was thinking about it but missed to make this change while sending patch. Will do it asap.
> > 
> > We will have to maintain such soname for all dpaa libraries until 20.11.

Thank you for maintaining the soname compatibility in v7.

Now the question is: what to do in v20.11?
This question will have to be voted in the Technical Board which voted
the "pure experimental" versioning rule.
We have 3 options:

a) "Pure internal" libs are versioned as "stable" libs,
while "pure experimental" libs have version 0.x.
It looks inconsistent and non-sense.

b) "Pure internal" libs are versioned as
"pure experimental" libs: version 0.x.
It makes "pure internal" libs version decreasing in 20.11.

c) Forget about the different versioning scheme,
i.e. increase 0.x versions to x as "stable" libs.

Of course, I vote for option c.



^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL
  2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                         ` (14 preceding siblings ...)
  2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-15  9:47       ` Hemant Agrawal
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
                           ` (13 more replies)
  15 siblings, 14 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr

v8: fix 32bit compilation

v7: using empty DPDK_20.0 to preserve the so name

v6: v5 was dirty

v5: use empty DPDK_20.0 to avoid so name erriin pmd_dpaa2


v4: pmd_dpaa, mempool_dpaa2 also has external symbols. So, changing
the libabigail.abignore exception to only for selected func calls
pmd_dpaa2 also has experimental external func call remaining.
However, it causes the so name to be changed. So, we need to maintain
the specific file name exception there for now. 

v3: adding entries in libabigail.ignore

This patchset moves the internal symbol to the INTERNAL sections

This patch also change some of the shared variables to function
calls. (Mostly control path used variables).

Hemant Agrawal (13):
  common/dpaax: move internal symbols into INTERNAL section
  bus/fslmc: move internal symbols into INTERNAL section
  bus/dpaa: move internal symbols into INTERNAL section
  mempool/dpaa2: move internal symbols into INTERNAL section
  net/dpaa: move internal symbols into INTERNAL section
  net/dpaa2: move internal symbols into INTERNAL section
  crypto: move internal symbols into INTERNAL section
  mempool/dpaa2: fix to add the include file
  bus/dpaa: share qman portal ids as function calls
  bus/dpaa: move log into to respective dpaa drivers
  bus/dpaa: change netcfg access as function
  bus/fslmc: share mcp ptr as function across libs
  bus/fslmc: remove unused symbols

 devtools/libabigail.abignore                  | 17 ++++++
 drivers/bus/dpaa/base/qbman/qman_driver.c     | 10 ++++
 drivers/bus/dpaa/dpaa_bus.c                   | 25 +++-----
 drivers/bus/dpaa/include/fsl_bman.h           |  6 ++
 drivers/bus/dpaa/include/fsl_fman.h           | 27 +++++++++
 drivers/bus/dpaa/include/fsl_qman.h           | 40 ++++++++++++-
 drivers/bus/dpaa/include/fsl_usd.h            |  8 ++-
 drivers/bus/dpaa/include/netcfg.h             |  2 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map     | 17 +++---
 drivers/bus/dpaa/rte_dpaa_bus.h               | 11 +++-
 drivers/bus/dpaa/rte_dpaa_logs.h              | 58 -------------------
 drivers/bus/fslmc/fslmc_vfio.c                | 15 ++++-
 drivers/bus/fslmc/fslmc_vfio.h                |  5 ++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  7 +++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 +
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             | 10 ++++
 drivers/bus/fslmc/mc/fsl_dpio.h               | 11 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  4 ++
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  2 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c      |  8 +--
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c      |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 ++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       | 18 ++++--
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  8 +++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 42 ++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   | 23 ++++----
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 drivers/common/dpaax/dpaa_of.h                | 15 +++++
 drivers/common/dpaax/dpaax_iova_table.h       |  4 ++
 .../common/dpaax/rte_common_dpaax_version.map |  6 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h    |  5 +-
 .../dpaa2_sec/rte_pmd_dpaa2_sec_version.map   |  6 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |  2 +-
 drivers/crypto/dpaa_sec/dpaa_sec_event.h      |  8 +--
 .../dpaa_sec/rte_pmd_dpaa_sec_version.map     |  6 +-
 drivers/event/dpaa/dpaa_eventdev.c            |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h            | 16 +++++
 drivers/event/dpaa2/dpaa2_hw_dpcon.c          |  2 +-
 drivers/mempool/dpaa/dpaa_mempool.c           |  8 +++
 drivers/mempool/dpaa/dpaa_mempool.h           | 19 ++++++
 .../mempool/dpaa/rte_mempool_dpaa_version.map |  6 +-
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h      |  1 +
 drivers/mempool/dpaa2/meson.build             |  2 +
 .../dpaa2/rte_mempool_dpaa2_version.map       |  9 ++-
 drivers/net/dpaa/dpaa_ethdev.c                | 12 +++-
 drivers/net/dpaa/dpaa_ethdev.h                | 24 ++++++++
 drivers/net/dpaa/rte_pmd_dpaa_version.map     |  9 ++-
 drivers/net/dpaa2/dpaa2_ethdev.c              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.h              |  2 +
 drivers/net/dpaa2/dpaa2_mux.c                 |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c                 |  2 +-
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map   | 12 ++--
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c           |  2 +-
 56 files changed, 431 insertions(+), 152 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19  6:43           ` Hemant Agrawal
  2020-05-19  9:51           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 02/13] bus/fslmc: " Hemant Agrawal
                           ` (12 subsequent siblings)
  13 siblings, 2 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 02/13] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 10:00           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 03/13] bus/dpaa: " Hemant Agrawal
                           ` (11 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which were not used
anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore                  |  2 +
 drivers/bus/fslmc/fslmc_vfio.h                |  5 +++
 drivers/bus/fslmc/mc/fsl_dpbp.h               |  7 ++++
 drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
 drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
 drivers/bus/fslmc/mc/fsl_dpdmai.h             | 10 +++++
 drivers/bus/fslmc/mc/fsl_dpio.h               | 11 +++++
 drivers/bus/fslmc/mc/fsl_dpmng.h              |  4 ++
 drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  2 +
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
 .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  8 ++++
 .../fslmc/qbman/include/fsl_qbman_portal.h    | 42 +++++++++++++++++++
 drivers/bus/fslmc/rte_bus_fslmc_version.map   | 20 ++++-----
 drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
 15 files changed, 123 insertions(+), 10 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index b1488d5549..877c6d5be8 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -51,3 +51,5 @@
 ; Ignore moving DPAAx stable functions to INTERNAL tag
 [suppress_file]
 	file_name_regexp = ^librte_common_dpaax\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_fslmc\.
diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
index c988121294..bc7c6f62d7 100644
--- a/drivers/bus/fslmc/fslmc_vfio.h
+++ b/drivers/bus/fslmc/fslmc_vfio.h
@@ -8,6 +8,7 @@
 #ifndef _FSLMC_VFIO_H_
 #define _FSLMC_VFIO_H_
 
+#include <rte_compat.h>
 #include <rte_vfio.h>
 
 /* Pathname of FSL-MC devices directory. */
@@ -41,7 +42,11 @@ typedef struct fslmc_vfio_container {
 } fslmc_vfio_container;
 
 extern char *fslmc_container;
+
+__rte_internal
 int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
+
+__rte_internal
 int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
 
 int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
index 9d405b42c4..0d590a2647 100644
--- a/drivers/bus/fslmc/mc/fsl_dpbp.h
+++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
@@ -7,6 +7,7 @@
 #ifndef __FSL_DPBP_H
 #define __FSL_DPBP_H
 
+#include <rte_compat.h>
 /*
  * Data Path Buffer Pool API
  * Contains initialization APIs and runtime control APIs for DPBP
@@ -14,6 +15,7 @@
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpbp_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpbp_id,
@@ -42,10 +44,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t obj_id);
 
+__rte_internal
 int dpbp_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpbp_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -55,6 +59,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpbp_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -70,6 +75,7 @@ struct dpbp_attr {
 	uint16_t bpid;
 };
 
+__rte_internal
 int dpbp_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -88,6 +94,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
 			   uint32_t cmd_flags,
 			   uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
index a0ee5bfe69..81fd3438aa 100644
--- a/drivers/bus/fslmc/mc/fsl_dpci.h
+++ b/drivers/bus/fslmc/mc/fsl_dpci.h
@@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
 	int order_preservation_en;
 };
 
+__rte_internal
 int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
 		      uint32_t cmd_flags,
 		      uint16_t token,
@@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
 			 uint16_t *major_ver,
 			 uint16_t *minor_ver);
 
+__rte_internal
 int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
@@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
 		 uint8_t options,
 		 struct opr_cfg *cfg);
 
+__rte_internal
 int dpci_get_opr(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
index af81d51195..7caa6c68a1 100644
--- a/drivers/bus/fslmc/mc/fsl_dpcon.h
+++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
@@ -20,6 +20,7 @@ struct fsl_mc_io;
  */
 #define DPCON_INVALID_DPIO_ID		(int)(-1)
 
+__rte_internal
 int dpcon_open(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       int dpcon_id,
@@ -77,6 +78,7 @@ struct dpcon_attr {
 	uint8_t num_priorities;
 };
 
+__rte_internal
 int dpcon_get_attributes(struct fsl_mc_io *mc_io,
 			 uint32_t cmd_flags,
 			 uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
index 40469cc139..19328c00a0 100644
--- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
+++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
@@ -5,6 +5,8 @@
 #ifndef __FSL_DPDMAI_H
 #define __FSL_DPDMAI_H
 
+#include <rte_compat.h>
+
 struct fsl_mc_io;
 
 /* Data Path DMA Interface API
@@ -23,11 +25,13 @@ struct fsl_mc_io;
  */
 #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
 
+__rte_internal
 int dpdmai_open(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		int dpdmai_id,
 		uint16_t *token);
 
+__rte_internal
 int dpdmai_close(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -54,10 +58,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint32_t object_id);
 
+__rte_internal
 int dpdmai_enable(struct fsl_mc_io *mc_io,
 		  uint32_t cmd_flags,
 		  uint16_t token);
 
+__rte_internal
 int dpdmai_disable(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   uint16_t token);
@@ -82,6 +88,7 @@ struct dpdmai_attr {
 	uint8_t num_of_queues;
 };
 
+__rte_internal
 int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
 			  uint32_t cmd_flags,
 			  uint16_t token,
@@ -148,6 +155,7 @@ struct dpdmai_rx_queue_cfg {
 
 };
 
+__rte_internal
 int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -168,6 +176,7 @@ struct dpdmai_rx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
@@ -184,6 +193,7 @@ struct dpdmai_tx_queue_attr {
 	uint32_t fqid;
 };
 
+__rte_internal
 int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
index 3158f53191..c2db76bdf8 100644
--- a/drivers/bus/fslmc/mc/fsl_dpio.h
+++ b/drivers/bus/fslmc/mc/fsl_dpio.h
@@ -7,17 +7,21 @@
 #ifndef __FSL_DPIO_H
 #define __FSL_DPIO_H
 
+#include <rte_compat.h>
+
 /* Data Path I/O Portal API
  * Contains initialization APIs and runtime control APIs for DPIO
  */
 
 struct fsl_mc_io;
 
+__rte_internal
 int dpio_open(struct fsl_mc_io *mc_io,
 	      uint32_t cmd_flags,
 	      int dpio_id,
 	      uint16_t *token);
 
+__rte_internal
 int dpio_close(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
@@ -57,10 +61,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint32_t object_id);
 
+__rte_internal
 int dpio_enable(struct fsl_mc_io *mc_io,
 		uint32_t cmd_flags,
 		uint16_t token);
 
+__rte_internal
 int dpio_disable(struct fsl_mc_io *mc_io,
 		 uint32_t cmd_flags,
 		 uint16_t token);
@@ -70,10 +76,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
 		    uint16_t token,
 		    int *en);
 
+__rte_internal
 int dpio_reset(struct fsl_mc_io *mc_io,
 	       uint32_t cmd_flags,
 	       uint16_t token);
 
+__rte_internal
 int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint32_t cmd_flags,
 				  uint16_t token,
@@ -84,12 +92,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
 				  uint16_t token,
 				  uint8_t *sdest);
 
+__rte_internal
 int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				    uint32_t cmd_flags,
 				    uint16_t token,
 				    int dpcon_id,
 				    uint8_t *channel_index);
 
+__rte_internal
 int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
 				       uint32_t cmd_flags,
 				       uint16_t token,
@@ -119,6 +129,7 @@ struct dpio_attr {
 	uint32_t clk;
 };
 
+__rte_internal
 int dpio_get_attributes(struct fsl_mc_io *mc_io,
 			uint32_t cmd_flags,
 			uint16_t token,
diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
index 36c387af27..8764ceaed9 100644
--- a/drivers/bus/fslmc/mc/fsl_dpmng.h
+++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_DPMNG_H
 #define __FSL_DPMNG_H
 
+#include <rte_compat.h>
+
 /*
  * Management Complex General API
  * Contains general API for the Management Complex firmware
@@ -34,6 +36,7 @@ struct mc_version {
 	uint32_t revision;
 };
 
+__rte_internal
 int mc_get_version(struct fsl_mc_io *mc_io,
 		   uint32_t cmd_flags,
 		   struct mc_version *mc_ver_info);
@@ -48,6 +51,7 @@ struct mc_soc_version {
 	uint32_t pvr;
 };
 
+__rte_internal
 int mc_get_soc_version(struct fsl_mc_io *mc_io,
 		       uint32_t cmd_flags,
 		       struct mc_soc_version *mc_platform_info);
diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
index ac919610cf..7c0ca6b73a 100644
--- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
+++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
@@ -7,6 +7,7 @@
 #ifndef __FSL_MC_CMD_H
 #define __FSL_MC_CMD_H
 
+#include <rte_compat.h>
 #include <rte_byteorder.h>
 #include <stdint.h>
 
@@ -80,6 +81,7 @@ enum mc_cmd_status {
 
 #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
 
+__rte_internal
 int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
 
 static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
index 2829c93806..7c5966241a 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
@@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
 extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
 
 /* Affine a DPIO portal to current processing thread */
+__rte_internal
 int dpaa2_affine_qbman_swp(void);
 
 /* Affine additional DPIO portal to current crypto processing thread */
+__rte_internal
 int dpaa2_affine_qbman_ethrx_swp(void);
 
 /* allocate memory for FQ - dq storage */
+__rte_internal
 int
 dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free memory for FQ- dq storage */
+__rte_internal
 void
 dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
 
 /* free the enqueue response descriptors */
+__rte_internal
 uint32_t
 dpaa2_free_eq_descriptors(void);
 
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 368fe7c688..33b191f823 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
 {
 	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
 }
+__rte_internal
 struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
+
+__rte_internal
 void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
+
+__rte_internal
 int dpaa2_dpbp_supported(void);
 
+__rte_internal
 struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
+
+__rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
 #endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
index e010b1b6ae..f0c2f9fcb3 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
@@ -1,6 +1,10 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  * Copyright (C) 2015 Freescale Semiconductor, Inc.
  */
+#ifndef _FSL_QBMAN_DEBUG_H
+#define _FSL_QBMAN_DEBUG_H
+
+#include <rte_compat.h>
 
 struct qbman_swp;
 
@@ -24,7 +28,11 @@ uint8_t verb;
 	uint8_t reserved2[29];
 };
 
+__rte_internal
 int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
 			 struct qbman_fq_query_np_rslt *r);
+
+__rte_internal
 uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
 uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
+#endif
diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
index 88f0a99686..f820077d2b 100644
--- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
+++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
@@ -7,6 +7,7 @@
 #ifndef _FSL_QBMAN_PORTAL_H
 #define _FSL_QBMAN_PORTAL_H
 
+#include <rte_compat.h>
 #include <fsl_qbman_base.h>
 
 #define SVR_LS1080A	0x87030000
@@ -117,6 +118,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
  * @p: the given software portal object.
  * @mask: The value to set in SWP_ISR register.
  */
+__rte_internal
 void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
 
 /**
@@ -286,6 +288,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
  * rather by specifying the index (from 0 to 15) that has been mapped to the
  * desired channel.
  */
+__rte_internal
 void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
 
 /* ------------------- */
@@ -325,6 +328,7 @@ enum qbman_pull_type_e {
  * default/starting state.
  * @d: the pull dequeue descriptor to be cleared.
  */
+__rte_internal
 void qbman_pull_desc_clear(struct qbman_pull_desc *d);
 
 /**
@@ -340,6 +344,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
  * the caller provides in 'storage_phys'), and 'stash' controls whether or not
  * those writes to main-memory express a cache-warming attribute.
  */
+__rte_internal
 void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
 				 struct qbman_result *storage,
 				 uint64_t storage_phys,
@@ -349,6 +354,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
  * @d: the pull dequeue descriptor to be set.
  * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
  */
+__rte_internal
 void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
 				   uint8_t numframes);
 /**
@@ -372,6 +378,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
  * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
  * @fqid: the frame queue index of the given FQ.
  */
+__rte_internal
 void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
 
 /**
@@ -407,6 +414,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
  * Return 0 for success, and -EBUSY if the software portal is not ready
  * to do pull dequeue.
  */
+__rte_internal
 int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
 
 /* -------------------------------- */
@@ -421,12 +429,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
  * only once, so repeated calls can return a sequence of DQRR entries, without
  * requiring they be consumed immediately or in any particular order.
  */
+__rte_internal
 const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
 
 /**
  * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
  * @s: the software portal object.
  */
+__rte_internal
 void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
 
 /**
@@ -435,6 +445,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
  * @s: the software portal object.
  * @dq: the DQRR entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
 
 /**
@@ -442,6 +453,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
  * @s: the software portal object.
  * @dqrr_index: the DQRR index entry to be consumed.
  */
+__rte_internal
 void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
 
 /**
@@ -450,6 +462,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
  *
  * Return dqrr index.
  */
+__rte_internal
 uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
 
 /**
@@ -460,6 +473,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
  *
  * Return dqrr entry object.
  */
+__rte_internal
 struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
 
 /* ------------------------------------------------- */
@@ -485,6 +499,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_result_has_new_result(struct qbman_swp *s,
 				struct qbman_result *dq);
 
@@ -497,8 +512,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
  * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
  * dequeue result.
  */
+__rte_internal
 int qbman_check_command_complete(struct qbman_result *dq);
 
+__rte_internal
 int qbman_check_new_result(struct qbman_result *dq);
 
 /* -------------------------------------------------------- */
@@ -624,6 +641,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
  *
  * Return the state field.
  */
+__rte_internal
 uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
 
 /**
@@ -658,6 +676,7 @@ static inline int qbman_result_DQ_is_pull_complete(
  *
  * Return seqnum.
  */
+__rte_internal
 uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
 
 /**
@@ -667,6 +686,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
  *
  * Return odpid.
  */
+__rte_internal
 uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
 
 /**
@@ -699,6 +719,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
  *
  * Return the frame queue context.
  */
+__rte_internal
 uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
 
 /**
@@ -707,6 +728,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
  *
  * Return the frame descriptor.
  */
+__rte_internal
 const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
 
 /* State-change notifications (FQDAN/CDAN/CSCN/...). */
@@ -717,6 +739,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
  *
  * Return the state in the notifiation.
  */
+__rte_internal
 uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
 
 /**
@@ -850,6 +873,7 @@ struct qbman_eq_response {
  * default/starting state.
  * @d: the given enqueue descriptor.
  */
+__rte_internal
 void qbman_eq_desc_clear(struct qbman_eq_desc *d);
 
 /* Exactly one of the following descriptor "actions" should be set. (Calling
@@ -870,6 +894,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
  * @response_success: 1 = enqueue with response always; 0 = enqueue with
  * rejections returned on a FQ.
  */
+__rte_internal
 void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
 /**
  * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
@@ -881,6 +906,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
  * @incomplete: indiates whether this is the last fragments using the same
  * sequeue number.
  */
+__rte_internal
 void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
 			   uint16_t opr_id, uint16_t seqnum, int incomplete);
 
@@ -915,6 +941,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
  * data structure.) 'stash' controls whether or not the write to main-memory
  * expresses a cache-warming attribute.
  */
+__rte_internal
 void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
 				uint64_t storage_phys,
 				int stash);
@@ -929,6 +956,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
  * result "storage" before issuing an enqueue, and use any non-zero 'token'
  * value.
  */
+__rte_internal
 void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
 
 /**
@@ -944,6 +972,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
  * @d: the enqueue descriptor
  * @fqid: the id of the frame queue to be enqueued.
  */
+__rte_internal
 void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
 
 /**
@@ -953,6 +982,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
  * @qd_bin: the queuing destination bin
  * @qd_prio: the queuing destination priority.
  */
+__rte_internal
 void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
 			  uint16_t qd_bin, uint8_t qd_prio);
 
@@ -978,6 +1008,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
  * held-active (order-preserving) FQ, whether the FQ should be parked instead of
  * being rescheduled.)
  */
+__rte_internal
 void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
 			   uint8_t dqrr_idx, int park);
 
@@ -987,6 +1018,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
  *
  * Return the fd pointer.
  */
+__rte_internal
 struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
 
 /**
@@ -997,6 +1029,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
  * This value is set into the response id before the enqueue command, which,
  * get overwritten by qbman once the enqueue command is complete.
  */
+__rte_internal
 void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
 
 /**
@@ -1009,6 +1042,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
  * copied into the enqueue response to determine if the command has been
  * completed, and response has been updated.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
 
 /**
@@ -1017,6 +1051,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
  *
  * Return 0 when command is sucessful.
  */
+__rte_internal
 uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
 
 /**
@@ -1043,6 +1078,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple(struct qbman_swp *s,
 			       const struct qbman_eq_desc *d,
 			       const struct qbman_fd *fd,
@@ -1060,6 +1096,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
 				  const struct qbman_eq_desc *d,
 				  struct qbman_fd **fd,
@@ -1076,6 +1113,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
  *
  * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
  */
+__rte_internal
 int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
 				    const struct qbman_eq_desc *d,
 				    const struct qbman_fd *fd,
@@ -1117,12 +1155,14 @@ struct qbman_release_desc {
  * default/starting state.
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_clear(struct qbman_release_desc *d);
 
 /**
  * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
  * @d: the qbman release descriptor.
  */
+__rte_internal
 void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
 
 /**
@@ -1141,6 +1181,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
  *
  * Return 0 for success, -EBUSY if the release command ring is not ready.
  */
+__rte_internal
 int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
 		      const uint64_t *buffers, unsigned int num_buffers);
 
@@ -1166,6 +1207,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
  * Return 0 for success, or negative error code if the acquire command
  * fails.
  */
+__rte_internal
 int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
 		      unsigned int num_buffers);
 
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index fe45575046..1b7a5a45e9 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -1,4 +1,14 @@
 DPDK_20.0 {
+	local: *;
+};
+
+EXPERIMENTAL {
+	global:
+
+	rte_fslmc_vfio_mem_dmamap;
+};
+
+INTERNAL {
 	global:
 
 	dpaa2_affine_qbman_ethrx_swp;
@@ -11,7 +21,6 @@ DPDK_20.0 {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
-	dpaa2_get_qbman_swp;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -101,15 +110,6 @@ DPDK_20.0 {
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
-	rte_fslmc_vfio_dmamap;
 	rte_global_active_dqs_list;
 	rte_mcp_ptr_list;
-
-	local: *;
-};
-
-EXPERIMENTAL {
-	global:
-
-	rte_fslmc_vfio_mem_dmamap;
 };
diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
index 96ba8dc259..5078b48ee1 100644
--- a/drivers/bus/fslmc/rte_fslmc.h
+++ b/drivers/bus/fslmc/rte_fslmc.h
@@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
 
 /**
@@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
  *   A pointer to a rte_dpaa2_driver structure describing the driver
  *   to be unregistered.
  */
+__rte_internal
 void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
 
 /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
@@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
  *   A pointer to a rte_dpaa_object structure describing the mc object
  *   to be registered.
  */
+__rte_internal
 void rte_fslmc_object_register(struct rte_dpaa2_object *object);
 
 /**
@@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
  *   >=0 for count; 0 indicates either no device of the said type scanned or
  *   invalid device type.
  */
+__rte_internal
 uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
 
 /** Helper for DPAA2 object registration */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 03/13] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 02/13] bus/fslmc: " Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 10:56           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: " Hemant Agrawal
                           ` (10 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch moves the internal symbols to INTERNAL sections
so that any change in them is not reported as ABI breakage.

This patch also removes two symbols, which are not
to be exported.
rte_dpaa_mem_ptov  - static inline in the headerfile
fman_ccsr_map_fd - local shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 devtools/libabigail.abignore              |  2 ++
 drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
 drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h        |  8 +++++-
 drivers/bus/dpaa/include/netcfg.h         |  2 ++
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  8 +++---
 drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
 8 files changed, 85 insertions(+), 5 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 877c6d5be8..ab34302d0c 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -53,3 +53,5 @@
 	file_name_regexp = ^librte_common_dpaax\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_fslmc\.
+[suppress_file]
+	file_name_regexp = ^librte_bus_dpaa\.
diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
index f9cd972153..82da2fcfe0 100644
--- a/drivers/bus/dpaa/include/fsl_bman.h
+++ b/drivers/bus/dpaa/include/fsl_bman.h
@@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
  * the structure provided by the caller can be released or reused after the
  * function returns.
  */
+__rte_internal
 struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
 
 /**
  * bman_free_pool - Deallocates a Buffer Pool object
  * @pool: the pool object to release
  */
+__rte_internal
 void bman_free_pool(struct bman_pool *pool);
 
 /**
@@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
  * The returned pointer refers to state within the pool object so must not be
  * modified and can no longer be read once the pool object is destroyed.
  */
+__rte_internal
 const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
 
 /**
@@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
  * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
  *
  */
+__rte_internal
 int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
  * The return value will be the number of buffers obtained from the pool, or a
  * negative error code if a h/w error or pool starvation was encountered.
  */
+__rte_internal
 int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
 		 u32 flags);
 
@@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
  *
  * Return the number of the free buffers
  */
+__rte_internal
 u32 bman_query_free_buffers(struct bman_pool *pool);
 
 /**
diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
index 5705ebfdce..6c87c8db0d 100644
--- a/drivers/bus/dpaa/include/fsl_fman.h
+++ b/drivers/bus/dpaa/include/fsl_fman.h
@@ -7,6 +7,8 @@
 #ifndef __FSL_FMAN_H
 #define __FSL_FMAN_H
 
+#include <rte_compat.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -43,18 +45,23 @@ struct fm_status_t {
 } __rte_packed;
 
 /* Set MAC address for a particular interface */
+__rte_internal
 int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
 
 /* Remove a MAC address for a particular interface */
+__rte_internal
 void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
 
 /* Get the FMAN statistics */
+__rte_internal
 void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
 
 /* Reset the FMAN statistics */
+__rte_internal
 void fman_if_stats_reset(struct fman_if *p);
 
 /* Get all of the FMAN statistics */
+__rte_internal
 void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
 
 /* Set ignore pause option for a specific interface */
@@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
 void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
 
 /* Enable/disable Rx promiscuous mode on specified interface */
+__rte_internal
 void fman_if_promiscuous_enable(struct fman_if *p);
+__rte_internal
 void fman_if_promiscuous_disable(struct fman_if *p);
 
 /* Enable/disable Rx on specific interfaces */
+__rte_internal
 void fman_if_enable_rx(struct fman_if *p);
+__rte_internal
 void fman_if_disable_rx(struct fman_if *p);
 
 /* Enable/disable loopback on specific interfaces */
+__rte_internal
 void fman_if_loopback_enable(struct fman_if *p);
+__rte_internal
 void fman_if_loopback_disable(struct fman_if *p);
 
 /* Set buffer pool on specific interface */
+__rte_internal
 void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
 		    size_t bufsize);
 
 /* Get Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_get_fc_threshold(struct fman_if *fm_if);
 
 /* Enable and Set Flow Control threshold parameters on specific interface */
+__rte_internal
 int fman_if_set_fc_threshold(struct fman_if *fm_if,
 			u32 high_water, u32 low_water, u32 bpid);
 
 /* Get Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_get_fc_quanta(struct fman_if *fm_if);
 
 /* Set Flow Control pause quanta on specific interface */
+__rte_internal
 int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
 
 /* Set default error fqid on specific interface */
@@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
 int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
 
 /* Set IC transfer params */
+__rte_internal
 int fman_if_set_ic_params(struct fman_if *fm_if,
 			  const struct fman_if_ic_params *icp);
 
 /* Get interface fd->offset value */
+__rte_internal
 int fman_if_get_fdoff(struct fman_if *fm_if);
 
 /* Set interface fd->offset value */
+__rte_internal
 void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
 
 /* Get interface SG enable status value */
+__rte_internal
 int fman_if_get_sg_enable(struct fman_if *fm_if);
 
 /* Set interface SG support mode */
+__rte_internal
 void fman_if_set_sg(struct fman_if *fm_if, int enable);
 
 /* Get interface Max Frame length (MTU) */
 uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
 
 /* Set interface  Max Frame length (MTU) */
+__rte_internal
 void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
 
 /* Set interface next invoked action for dequeue operation */
 void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
 
 /* discard error packets on rx */
+__rte_internal
 void fman_if_discard_rx_errors(struct fman_if *fm_if);
 
+__rte_internal
 void fman_if_set_mcast_filter_table(struct fman_if *p);
 
+__rte_internal
 void fman_if_reset_mcast_filter_table(struct fman_if *p);
 
 int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 1b3342e7e6..4411bb0a79 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -1314,6 +1314,7 @@ struct qman_cgr {
 #define QMAN_CGR_MODE_FRAME          0x00000001
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
+__rte_internal
 void qman_set_fq_lookup_table(void **table);
 #endif
 
@@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
  */
 int qman_get_portal_index(void);
 
+__rte_internal
 u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
 			void **bufs);
 
@@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
  * processed via qman_poll_***() functions). Returns zero for success, or
  * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_add(u32 bits);
 
 /**
@@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
 
 /**
@@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
  * instead be processed via qman_poll_***() functions. Returns zero for success,
  * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
  */
+__rte_internal
 int qman_irqsource_remove(u32 bits);
 
 /**
@@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
  * takes portal (fq specific) as input rather than using the thread affined
  * portal.
  */
+__rte_internal
 int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
 
 /**
@@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
  */
 u16 qman_affine_channel(int cpu);
 
+__rte_internal
 unsigned int qman_portal_poll_rx(unsigned int poll_limit,
 				 void **bufs, struct qman_portal *q);
 
@@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
  *
  * This function will issue a volatile dequeue command to the QMAN.
  */
+__rte_internal
 int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
 
 /**
@@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
  * is issued. It will keep returning NULL until there is no packet available on
  * the DQRR.
  */
+__rte_internal
 struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
 
 /**
@@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
  * This will consume the DQRR enrey and make it available for next volatile
  * dequeue.
  */
+__rte_internal
 void qman_dqrr_consume(struct qman_fq *fq,
 		       struct qm_dqrr_entry *dq);
 
@@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
  * this function will return -EINVAL, otherwise the return value is >=0 and
  * represents the number of DQRR entries processed.
  */
+__rte_internal
 int qman_poll_dqrr(unsigned int limit);
 
 /**
@@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
  * (SDQCR). The requested pools are limited to those the portal has dequeue
  * access to.
  */
+__rte_internal
 void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
 
 /**
@@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
  * function must be called from the same CPU as that which processed the DQRR
  * entry in the first place.
  */
+__rte_internal
 void qman_dca_index(u8 index, int park_request);
 
 /**
@@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
  * a frame queue object based on that, rather than assuming/requiring that it be
  * Out of Service.
  */
+__rte_internal
 int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
 
 /**
@@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
  * qman_fq_fqid - Queries the frame queue ID of a FQ object
  * @fq: the frame queue object to query
  */
+__rte_internal
 u32 qman_fq_fqid(struct qman_fq *fq);
 
 /**
@@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
  * This captures the state, as seen by the driver, at the time the function
  * executes.
  */
+__rte_internal
 void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
 
 /**
@@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
  * context_a.address fields and will leave the stashing fields provided by the
  * user alone, otherwise it will zero out the context_a.stashing fields.
  */
+__rte_internal
 int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
 
 /**
@@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
  * caller should be prepared to accept the callback as the function is called,
  * not only once it has returned.
  */
+__rte_internal
 int qman_retire_fq(struct qman_fq *fq, u32 *flags);
 
 /**
@@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
  * The frame queue must be retired and empty, and if any order restoration list
  * was released as ERNs at the time of retirement, they must all be consumed.
  */
+__rte_internal
 int qman_oos_fq(struct qman_fq *fq);
 
 /**
@@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
  * @fq: the frame queue object to be queried
  * @np: storage for the queried FQD fields
  */
+__rte_internal
 int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
 
 /**
@@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
  * @fq: the frame queue object to be queried
  * @frm_cnt: number of frames in the queue
  */
+__rte_internal
 int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
 
 /**
@@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
  * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
  * "flags" retrieved from qman_fq_state().
  */
+__rte_internal
 int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
 
 /**
@@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
  * of an already busy hardware resource by throttling many of the to-be-dropped
  * enqueues "at the source".
  */
+__rte_internal
 int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
 
+__rte_internal
 int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
 		       int frames_to_send);
 
@@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
  * This API is similar to qman_enqueue_multi(), but it takes fd which needs
  * to be processed by different frame queues.
  */
+__rte_internal
 int
 qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
 		      u32 *flags, int frames_to_send);
@@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
  * @fqid: the base FQID of the range to deallocate
  * @count: the number of FQIDs in the range
  */
+__rte_internal
 int qman_reserve_fqid_range(u32 fqid, unsigned int count);
 static inline int qman_reserve_fqid(u32 fqid)
 {
@@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_pool(u32 *result)
 {
@@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
  * any unspecified parameters) will be used rather than a modify hw hardware
  * (which only modifies the specified parameters).
  */
+__rte_internal
 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
  * is executed. This must be excuted on the same affine portal on which it was
  * created.
  */
+__rte_internal
 int qman_delete_cgr(struct qman_cgr *cgr);
 
 /**
@@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
  * unspecified parameters) will be used rather than a modify hw hardware (which
  * only modifies the specified parameters).
  */
+__rte_internal
 int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
 		    struct qm_mcc_initcgr *opts);
 
@@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
  * than requested (though alignment will be as requested). If @partial is zero,
  * the return value will either be 'count' or negative.
  */
+__rte_internal
 int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
 static inline int qman_alloc_cgrid(u32 *result)
 {
@@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
  * @id: the base CGR ID of the range to deallocate
  * @count: the number of CGR IDs in the range
  */
+__rte_internal
 void qman_release_cgrid_range(u32 id, unsigned int count);
 static inline void qman_release_cgrid(u32 id)
 {
diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
index 263d9bb976..dcf35e4adb 100644
--- a/drivers/bus/dpaa/include/fsl_usd.h
+++ b/drivers/bus/dpaa/include/fsl_usd.h
@@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
 int bman_free_raw_portal(struct dpaa_raw_portal *portal);
 
 /* Obtain thread-local UIO file-descriptors */
+__rte_internal
 int qman_thread_fd(void);
 int bman_thread_fd(void);
 
@@ -66,10 +67,14 @@ int bman_thread_fd(void);
  * processing is complete. As such, it is essential to call this before going
  * into another blocking read/select/poll.
  */
+__rte_internal
 void qman_thread_irq(void);
+
+__rte_internal
 void bman_thread_irq(void);
+__rte_internal
 void qman_fq_portal_thread_irq(struct qman_portal *qp);
-
+__rte_internal
 void qman_clear_irq(void);
 
 /* Global setup */
@@ -77,6 +82,7 @@ int qman_global_init(void);
 int bman_global_init(void);
 
 /* Direct portal create and destroy */
+__rte_internal
 struct qman_portal *fsl_qman_fq_portal_create(int *fd);
 int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
 int fsl_qman_fq_portal_init(struct qman_portal *qp);
diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
index bf7bfae8cb..d7d1befd24 100644
--- a/drivers/bus/dpaa/include/netcfg.h
+++ b/drivers/bus/dpaa/include/netcfg.h
@@ -46,11 +46,13 @@ struct netcfg_interface {
  * cfg_file: FMC config XML file
  * Returns the configuration information in newly allocated memory.
  */
+__rte_internal
 struct netcfg_info *netcfg_acquire(void);
 
 /* cfg_ptr: configuration information pointer.
  * Frees the resources allocated by the configuration layer.
  */
+__rte_internal
 void netcfg_release(struct netcfg_info *cfg_ptr);
 
 #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e6ca4361e0..53732289d3 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -1,4 +1,8 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	bman_acquire;
@@ -13,7 +17,6 @@ DPDK_20.0 {
 	dpaa_logtype_pmd;
 	dpaa_netcfg;
 	dpaa_svr_family;
-	fman_ccsr_map_fd;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
 	fman_if_add_mac_addr;
@@ -87,10 +90,7 @@ DPDK_20.0 {
 	qman_volatile_dequeue;
 	rte_dpaa_driver_register;
 	rte_dpaa_driver_unregister;
-	rte_dpaa_mem_ptov;
 	rte_dpaa_portal_fq_close;
 	rte_dpaa_portal_fq_init;
 	rte_dpaa_portal_init;
-
-	local: *;
 };
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index 373aca9785..d4aee132ef 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
  *   A pointer to a rte_dpaa_driver structure describing the driver
  *   to be registered.
  */
+__rte_internal
 void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
 
 /**
@@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
  *	A pointer to a rte_dpaa_driver structure describing the driver
  *	to be unregistered.
  */
+__rte_internal
 void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
 
 /**
@@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
  * @return
  *	0 in case of success, error otherwise
  */
+__rte_internal
 int rte_dpaa_portal_init(void *arg);
 
+__rte_internal
 int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
 
+__rte_internal
 int rte_dpaa_portal_fq_close(struct qman_fq *fq);
 
 /**
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (2 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 03/13] bus/dpaa: " Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:03           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 05/13] net/dpaa: " Hemant Agrawal
                           ` (9 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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                        | 8 ++++++++
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 6 ++++--
 drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
 drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index ab34302d0c..42f9469221 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -55,3 +55,11 @@
 	file_name_regexp = ^librte_bus_fslmc\.
 [suppress_file]
 	file_name_regexp = ^librte_bus_dpaa\.
+[suppress_function]
+	name = rte_dpaa2_mbuf_alloc_bulk
+[suppress_variable]
+	name_regexp = ^rte_dpaa_memsegs
+[suppress_variable]
+	name_regexp = ^rte_dpaa_bpid_info
+[suppress_variable]
+	name_regexp = ^rte_dpaa2_bpid_info
diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
index 9eebaf7ffd..89d7cf4957 100644
--- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
+++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
@@ -1,8 +1,10 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	rte_dpaa_bpid_info;
 	rte_dpaa_memsegs;
-
-	local: *;
 };
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index fa0f2280d5..53fa1552d1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -61,6 +61,7 @@ struct dpaa2_bp_info {
 
 extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
 
+__rte_internal
 int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
 		       void **obj_table, unsigned int count);
 
diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
index cd4bc88273..686b024624 100644
--- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
+++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
@@ -1,10 +1,15 @@
 DPDK_20.0 {
 	global:
 
-	rte_dpaa2_bpid_info;
-	rte_dpaa2_mbuf_alloc_bulk;
 	rte_dpaa2_mbuf_from_buf_addr;
 	rte_dpaa2_mbuf_pool_bpid;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	rte_dpaa2_bpid_info;
+	rte_dpaa2_mbuf_alloc_bulk;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 05/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (3 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:14           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 06/13] net/dpaa2: " Hemant Agrawal
                           ` (8 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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              | 2 ++
 drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
index 42f9469221..7b6358c394 100644
--- a/devtools/libabigail.abignore
+++ b/devtools/libabigail.abignore
@@ -63,3 +63,5 @@
 	name_regexp = ^rte_dpaa_bpid_info
 [suppress_variable]
 	name_regexp = ^rte_dpaa2_bpid_info
+[suppress_function]
+        name_regexp = ^dpaa
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index af9fc2105d..7393a9df05 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -160,12 +160,14 @@ struct dpaa_if_stats {
 	uint64_t tund;		/**<Tx Undersized */
 };
 
+__rte_internal
 int
 dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		u16 ch_id,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int
 dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
 			   int eth_rx_queue_id);
diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
index f403a1526d..774aa0de45 100644
--- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
+++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
@@ -1,9 +1,14 @@
 DPDK_20.0 {
 	global:
 
-	dpaa_eth_eventq_attach;
-	dpaa_eth_eventq_detach;
 	rte_pmd_dpaa_set_tx_loopback;
 
 	local: *;
 };
+
+INTERNAL {
+	global:
+
+	dpaa_eth_eventq_attach;
+	dpaa_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 06/13] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (4 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 05/13] net/dpaa: " Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:15           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 07/13] crypto: " Hemant Agrawal
                           ` (7 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/net/dpaa2/dpaa2_ethdev.h            |  2 ++
 drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 2c49a7f01f..c7fb6539ff 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
 
 int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
 
+__rte_internal
 int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
 
+__rte_internal
 int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
 		int eth_rx_queue_id);
 
diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
index f2bb793319..b633fdc2a8 100644
--- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
+++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
@@ -1,9 +1,4 @@
 DPDK_20.0 {
-	global:
-
-	dpaa2_eth_eventq_attach;
-	dpaa2_eth_eventq_detach;
-
 	local: *;
 };
 
@@ -14,3 +9,10 @@ EXPERIMENTAL {
 	rte_pmd_dpaa2_set_custom_hash;
 	rte_pmd_dpaa2_set_timestamp;
 };
+
+INTERNAL {
+	global:
+
+	dpaa2_eth_eventq_attach;
+	dpaa2_eth_eventq_detach;
+};
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 07/13] crypto: move internal symbols into INTERNAL section
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (5 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 06/13] net/dpaa2: " Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:17           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
                           ` (6 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

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>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 6 ++++--
 drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
 drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 6 ++++--
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
index c779d5d837..675cbbb81d 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
@@ -6,12 +6,13 @@
 #ifndef _DPAA2_SEC_EVENT_H_
 #define _DPAA2_SEC_EVENT_H_
 
-int
-dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		struct dpaa2_dpcon_dev *dpcon,
 		const struct rte_event *event);
 
+__rte_internal
 int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
index 5952d645fd..3d863aff4d 100644
--- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
+++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
@@ -1,8 +1,10 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	dpaa2_sec_eventq_attach;
 	dpaa2_sec_eventq_detach;
-
-	local: *;
 };
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
index 8d1a018096..0b09fa8f75 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
+++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
@@ -6,14 +6,14 @@
 #ifndef _DPAA_SEC_EVENT_H_
 #define _DPAA_SEC_EVENT_H_
 
-int
-dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
 		int qp_id,
 		uint16_t ch_id,
 		const struct rte_event *event);
 
-int
-dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
+__rte_internal
+int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
 		int qp_id);
 
 #endif /* _DPAA_SEC_EVENT_H_ */
diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
index 8580fa13db..023e120516 100644
--- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
+++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
@@ -1,8 +1,10 @@
 DPDK_20.0 {
+	local: *;
+};
+
+INTERNAL {
 	global:
 
 	dpaa_sec_eventq_attach;
 	dpaa_sec_eventq_detach;
-
-	local: *;
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 08/13] mempool/dpaa2: fix to add the include file
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (6 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 07/13] crypto: " Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:18           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
                           ` (5 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: stable, Hemant Agrawal

rte_dpaa2_mempool.h header was missed to be
added in meson.build for header installation.

Fixes: 7ed359909556 ("mempool/dpaa2: add functions for CMDIF")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/mempool/dpaa2/meson.build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
index df299a0456..c3f479afa1 100644
--- a/drivers/mempool/dpaa2/meson.build
+++ b/drivers/mempool/dpaa2/meson.build
@@ -8,3 +8,5 @@ endif
 
 deps += ['bus_fslmc']
 sources = files('dpaa2_hw_mempool.c')
+
+install_headers('rte_dpaa2_mempool.h')
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 09/13] bus/dpaa: share qman portal ids as function calls
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (7 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:20           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
                           ` (4 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

qman caam and pool portal ids are only used in control
path. This patch changes their inter library access to
function call instead of direct shared variable.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
 drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
 drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
index 69244ef701..1166d68e21 100644
--- a/drivers/bus/dpaa/base/qbman/qman_driver.c
+++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
@@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
 	.type = dpaa_portal_qman
 };
 
+u16 dpaa_get_qm_channel_caam(void)
+{
+	return qm_channel_caam;
+}
+
+u16 dpaa_get_qm_channel_pool(void)
+{
+	return qm_channel_pool1;
+}
+
 static int fsl_qman_portal_init(uint32_t index, int is_shared)
 {
 	struct qman_portal *portal;
diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
index 4411bb0a79..78b698f393 100644
--- a/drivers/bus/dpaa/include/fsl_qman.h
+++ b/drivers/bus/dpaa/include/fsl_qman.h
@@ -44,6 +44,12 @@ enum qm_dc_portal {
 	qm_dc_portal_pme = 3
 };
 
+__rte_internal
+u16 dpaa_get_qm_channel_caam(void);
+
+__rte_internal
+u16 dpaa_get_qm_channel_pool(void);
+
 /* Portal processing (interrupt) sources */
 #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
 #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
@@ -65,7 +71,7 @@ enum qm_dc_portal {
 /* for conversion from n of qm_channel */
 static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
 {
-	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
+	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
 }
 
 /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 53732289d3..8bb2757e04 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -12,6 +12,8 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_qm_channel_caam;
+	dpaa_get_qm_channel_pool;
 	dpaa_logtype_eventdev;
 	dpaa_logtype_mempool;
 	dpaa_logtype_pmd;
@@ -50,8 +52,6 @@ INTERNAL {
 	netcfg_release;
 	per_lcore_dpaa_io;
 	per_lcore_held_bufs;
-	qm_channel_caam;
-	qm_channel_pool1;
 	qman_alloc_cgrid_range;
 	qman_alloc_pool_range;
 	qman_clear_irq;
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 25dcbd259a..4af9024a00 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
 
 	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
 	fq_opts.fqd.context_b = fqid_out;
-	fq_opts.fqd.dest.channel = qm_channel_caam;
+	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
 	fq_opts.fqd.dest.wq = 0;
 
 	fq_in->cb.ern  = ern_sec_fq_handler;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 10/13] bus/dpaa: move log into to respective dpaa drivers
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (8 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
                           ` (3 subsequent siblings)
  13 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This is to reduce the number of variables getting exposed
from the dpaa bus. They are not required to be in bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 19 +-------
 drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 --
 drivers/bus/dpaa/rte_dpaa_logs.h          | 58 -----------------------
 drivers/event/dpaa/dpaa_eventdev.c        |  7 +++
 drivers/event/dpaa/dpaa_eventdev.h        | 16 +++++++
 drivers/mempool/dpaa/dpaa_mempool.c       |  8 ++++
 drivers/mempool/dpaa/dpaa_mempool.h       | 19 ++++++++
 drivers/net/dpaa/dpaa_ethdev.c            | 10 +++-
 drivers/net/dpaa/dpaa_ethdev.h            | 22 +++++++++
 9 files changed, 83 insertions(+), 80 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index f27820db37..41d42b0c30 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -43,9 +43,6 @@
 #include <netcfg.h>
 
 int dpaa_logtype_bus;
-int dpaa_logtype_mempool;
-int dpaa_logtype_pmd;
-int dpaa_logtype_eventdev;
 
 static struct rte_dpaa_bus rte_dpaa_bus;
 struct netcfg_info *dpaa_netcfg;
@@ -567,13 +564,13 @@ rte_dpaa_bus_probe(void)
 			/* One time load of Qman/Bman drivers */
 			ret = qman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("QMAN initialization failed: %d",
+				DPAA_BUS_ERR("QMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
 			ret = bman_global_init();
 			if (ret) {
-				DPAA_PMD_ERR("BMAN initialization failed: %d",
+				DPAA_BUS_ERR("BMAN initialization failed: %d",
 					     ret);
 				return ret;
 			}
@@ -752,16 +749,4 @@ RTE_INIT(dpaa_init_log)
 	dpaa_logtype_bus = rte_log_register("bus.dpaa");
 	if (dpaa_logtype_bus >= 0)
 		rte_log_set_level(dpaa_logtype_bus, RTE_LOG_NOTICE);
-
-	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
-	if (dpaa_logtype_mempool >= 0)
-		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
-
-	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
-	if (dpaa_logtype_pmd >= 0)
-		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
-
-	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
-	if (dpaa_logtype_eventdev >= 0)
-		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
 }
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index 8bb2757e04..e53e8fa222 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -14,10 +14,6 @@ INTERNAL {
 	bman_thread_irq;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
-	dpaa_logtype_eventdev;
-	dpaa_logtype_mempool;
-	dpaa_logtype_pmd;
-	dpaa_netcfg;
 	dpaa_svr_family;
 	fman_dealloc_bufs_mask_hi;
 	fman_dealloc_bufs_mask_lo;
diff --git a/drivers/bus/dpaa/rte_dpaa_logs.h b/drivers/bus/dpaa/rte_dpaa_logs.h
index e414354320..149b127434 100644
--- a/drivers/bus/dpaa/rte_dpaa_logs.h
+++ b/drivers/bus/dpaa/rte_dpaa_logs.h
@@ -10,9 +10,6 @@
 #include <rte_log.h>
 
 extern int dpaa_logtype_bus;
-extern int dpaa_logtype_mempool;
-extern int dpaa_logtype_pmd;
-extern int dpaa_logtype_eventdev;
 
 #define DPAA_BUS_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, dpaa_logtype_bus, "dpaa: " fmt "\n", ##args)
@@ -40,59 +37,4 @@ extern int dpaa_logtype_eventdev;
 #define DPAA_BUS_WARN(fmt, args...) \
 	DPAA_BUS_LOG(WARNING, fmt, ## args)
 
-/* Mempool related logs */
-
-#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
-
-#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
-	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
-#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
-	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
-#define DPAA_MEMPOOL_ERR(fmt, args...) \
-	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
-#define DPAA_MEMPOOL_INFO(fmt, args...) \
-	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
-#define DPAA_MEMPOOL_WARN(fmt, args...) \
-	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
-
-/* PMD related logs */
-
-#define DPAA_PMD_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
-
-#define DPAA_PMD_DEBUG(fmt, args...) \
-	DPAA_PMD_LOG(DEBUG, fmt, ## args)
-#define DPAA_PMD_ERR(fmt, args...) \
-	DPAA_PMD_LOG(ERR, fmt, ## args)
-#define DPAA_PMD_INFO(fmt, args...) \
-	DPAA_PMD_LOG(INFO, fmt, ## args)
-#define DPAA_PMD_WARN(fmt, args...) \
-	DPAA_PMD_LOG(WARNING, fmt, ## args)
-
-#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
-		__func__, ##args)
-
-#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
-
-#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
-	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
-#define DPAA_EVENTDEV_ERR(fmt, args...) \
-	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
-#define DPAA_EVENTDEV_INFO(fmt, args...) \
-	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
-#define DPAA_EVENTDEV_WARN(fmt, args...) \
-	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
-
-/* DP Logs, toggled out at compile time if level lower than current level */
-#define DPAA_DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
-
 #endif /* _DPAA_LOGS_H_ */
diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index a7d57edce7..5a018d4871 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -46,6 +46,7 @@
  * Eventqueue = Channel Instance
  * 1 Eventdev can have N Eventqueue
  */
+int dpaa_logtype_eventdev;
 
 #define DISABLE_INTR_MODE "disable_intr"
 
@@ -1068,3 +1069,9 @@ static struct rte_vdev_driver vdev_eventdev_dpaa_pmd = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_DPAA_PMD, vdev_eventdev_dpaa_pmd);
 RTE_PMD_REGISTER_PARAM_STRING(EVENTDEV_NAME_DPAA_PMD,
 		DISABLE_INTR_MODE "=<int>");
+RTE_INIT(dpaa_event_init_log)
+{
+	dpaa_logtype_eventdev = rte_log_register("pmd.event.dpaa");
+	if (dpaa_logtype_eventdev >= 0)
+		rte_log_set_level(dpaa_logtype_eventdev, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/dpaa/dpaa_eventdev.h b/drivers/event/dpaa/dpaa_eventdev.h
index 5ce15a3db9..0b3da83a4f 100644
--- a/drivers/event/dpaa/dpaa_eventdev.h
+++ b/drivers/event/dpaa/dpaa_eventdev.h
@@ -76,4 +76,20 @@ struct dpaa_eventdev {
 	uint32_t nb_event_port_enqueue_depth;
 	uint32_t event_dev_cfg;
 };
+
+#define DPAA_EVENTDEV_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_eventdev, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define EVENTDEV_INIT_FUNC_TRACE() DPAA_EVENTDEV_LOG(DEBUG, " >>")
+
+#define DPAA_EVENTDEV_DEBUG(fmt, args...) \
+	DPAA_EVENTDEV_LOG(DEBUG, fmt, ## args)
+#define DPAA_EVENTDEV_ERR(fmt, args...) \
+	DPAA_EVENTDEV_LOG(ERR, fmt, ## args)
+#define DPAA_EVENTDEV_INFO(fmt, args...) \
+	DPAA_EVENTDEV_LOG(INFO, fmt, ## args)
+#define DPAA_EVENTDEV_WARN(fmt, args...) \
+	DPAA_EVENTDEV_LOG(WARNING, fmt, ## args)
+
 #endif /* __DPAA_EVENTDEV_H__ */
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 3a2528331c..451e2d5d56 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -36,6 +36,7 @@ struct dpaa_memseg_list rte_dpaa_memsegs
 	= TAILQ_HEAD_INITIALIZER(rte_dpaa_memsegs);
 
 struct dpaa_bp_info *rte_dpaa_bpid_info;
+int dpaa_logtype_mempool;
 
 static int
 dpaa_mbuf_create_pool(struct rte_mempool *mp)
@@ -356,3 +357,10 @@ static const struct rte_mempool_ops dpaa_mpool_ops = {
 };
 
 MEMPOOL_REGISTER_OPS(dpaa_mpool_ops);
+
+RTE_INIT(dpaa_mp_init_log)
+{
+	dpaa_logtype_mempool = rte_log_register("mempool.dpaa");
+	if (dpaa_logtype_mempool >= 0)
+		rte_log_set_level(dpaa_logtype_mempool, RTE_LOG_NOTICE);
+}
diff --git a/drivers/mempool/dpaa/dpaa_mempool.h b/drivers/mempool/dpaa/dpaa_mempool.h
index f69e11f011..dc0058e6dd 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.h
+++ b/drivers/mempool/dpaa/dpaa_mempool.h
@@ -58,4 +58,23 @@ extern struct dpaa_bp_info *rte_dpaa_bpid_info;
 
 #define DPAA_BPID_TO_POOL_INFO(__bpid) (&rte_dpaa_bpid_info[__bpid])
 
+/* Mempool related logs */
+
+#define DPAA_MEMPOOL_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_mempool, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define MEMPOOL_INIT_FUNC_TRACE() DPAA_MEMPOOL_LOG(DEBUG, " >>")
+
+#define DPAA_MEMPOOL_DPDEBUG(fmt, args...) \
+	RTE_LOG_DP(DEBUG, PMD, fmt, ## args)
+#define DPAA_MEMPOOL_DEBUG(fmt, args...) \
+	DPAA_MEMPOOL_LOG(DEBUG, fmt, ## args)
+#define DPAA_MEMPOOL_ERR(fmt, args...) \
+	DPAA_MEMPOOL_LOG(ERR, fmt, ## args)
+#define DPAA_MEMPOOL_INFO(fmt, args...) \
+	DPAA_MEMPOOL_LOG(INFO, fmt, ## args)
+#define DPAA_MEMPOOL_WARN(fmt, args...) \
+	DPAA_MEMPOOL_LOG(WARNING, fmt, ## args)
+
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 56eb5ec47c..c97f3042be 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -46,6 +46,8 @@
 #include <fsl_bman.h>
 #include <fsl_fman.h>
 
+int dpaa_logtype_pmd;
+
 /* Supported Rx offloads */
 static uint64_t dev_rx_offloads_sup =
 		DEV_RX_OFFLOAD_JUMBO_FRAME |
@@ -1058,7 +1060,7 @@ static int dpaa_dev_queue_intr_disable(struct rte_eth_dev *dev,
 
 	temp1 = read(rxq->q_fd, &temp, sizeof(temp));
 	if (temp1 != sizeof(temp))
-		DPAA_EVENTDEV_ERR("irq read error");
+		DPAA_PMD_ERR("irq read error");
 
 	qman_fq_portal_thread_irq(rxq->qp);
 
@@ -1664,3 +1666,9 @@ static struct rte_dpaa_driver rte_dpaa_pmd = {
 };
 
 RTE_PMD_REGISTER_DPAA(net_dpaa, rte_dpaa_pmd);
+RTE_INIT(dpaa_net_init_log)
+{
+	dpaa_logtype_pmd = rte_log_register("pmd.net.dpaa");
+	if (dpaa_logtype_pmd >= 0)
+		rte_log_set_level(dpaa_logtype_pmd, RTE_LOG_NOTICE);
+}
diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 7393a9df05..6a6477ac87 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -185,4 +185,26 @@ dpaa_rx_cb_atomic(void *event,
 		  const struct qm_dqrr_entry *dqrr,
 		  void **bufs);
 
+/* PMD related logs */
+extern int dpaa_logtype_pmd;
+
+#define DPAA_PMD_LOG(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, dpaa_logtype_pmd, "%s(): " fmt "\n", \
+		__func__, ##args)
+
+#define PMD_INIT_FUNC_TRACE() DPAA_PMD_LOG(DEBUG, " >>")
+
+#define DPAA_PMD_DEBUG(fmt, args...) \
+	DPAA_PMD_LOG(DEBUG, fmt, ## args)
+#define DPAA_PMD_ERR(fmt, args...) \
+	DPAA_PMD_LOG(ERR, fmt, ## args)
+#define DPAA_PMD_INFO(fmt, args...) \
+	DPAA_PMD_LOG(INFO, fmt, ## args)
+#define DPAA_PMD_WARN(fmt, args...) \
+	DPAA_PMD_LOG(WARNING, fmt, ## args)
+
+/* DP Logs, toggled out at compile time if level lower than current level */
+#define DPAA_DP_LOG(level, fmt, args...) \
+	RTE_LOG_DP(level, PMD, fmt, ## args)
+
 #endif
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 11/13] bus/dpaa: change netcfg access as function
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (9 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:22           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
                           ` (2 subsequent siblings)
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

This patch changes the export of fman port config
as function call instead of direct variable access.
This is in control path, so it will not impact perf.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
 drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
 drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
 drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 41d42b0c30..d53fe6083a 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
 RTE_DEFINE_PER_LCORE(bool, dpaa_io);
 RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 
+struct fm_eth_port_cfg *
+dpaa_get_eth_port_cfg(int dev_id)
+{
+	return &dpaa_netcfg->port_cfg[dev_id];
+}
+
 static int
 compare_dpaa_devices(struct rte_dpaa_device *dev1,
 		     struct rte_dpaa_device *dev2)
diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
index e53e8fa222..46d42f7d64 100644
--- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
+++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
@@ -12,6 +12,7 @@ INTERNAL {
 	bman_query_free_buffers;
 	bman_release;
 	bman_thread_irq;
+	dpaa_get_eth_port_cfg;
 	dpaa_get_qm_channel_caam;
 	dpaa_get_qm_channel_pool;
 	dpaa_svr_family;
diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
index d4aee132ef..2a186d83fb 100644
--- a/drivers/bus/dpaa/rte_dpaa_bus.h
+++ b/drivers/bus/dpaa/rte_dpaa_bus.h
@@ -44,9 +44,6 @@ struct rte_dpaa_driver;
 TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
 TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
 
-/* Configuration variables exported from DPAA bus */
-extern struct netcfg_info *dpaa_netcfg;
-
 enum rte_dpaa_type {
 	FSL_DPAA_ETH = 1,
 	FSL_DPAA_CRYPTO,
@@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
 #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
 #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
 
+__rte_internal
+struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index c97f3042be..13d1c6a1fc 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
 	dpaa_intf = eth_dev->data->dev_private;
-	cfg = &dpaa_netcfg->port_cfg[dev_id];
+	cfg = dpaa_get_eth_port_cfg(dev_id);
 	fman_intf = cfg->fman_if;
 
 	dpaa_intf->name = dpaa_device->name;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (10 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:26           ` Ray Kinsella
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
  2020-05-19 13:49         ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL David Marchand
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

Currently rte_mcp_ptr_list is being shared as a variable
across libs. This is only used in control path.
This patch change it to a exported function based access.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
 drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
 drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
 drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
 drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
 12 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 970969d2bf..efe2c43d37 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -51,6 +51,15 @@ static int fslmc_iommu_type;
 static uint32_t *msi_intr_vaddr;
 void *(*rte_mcp_ptr_list);
 
+void *
+dpaa2_get_mcp_ptr(int portal_idx)
+{
+	if (rte_mcp_ptr_list)
+		return rte_mcp_ptr_list[portal_idx];
+	else
+		return NULL;
+}
+
 static struct rte_dpaa2_object_list dpaa2_obj_list =
 	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
 
@@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	struct fsl_mc_io dpmng  = {0};
 	struct mc_version mc_ver_info = {0};
 
-	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
+	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
 	if (!rte_mcp_ptr_list) {
 		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
 		ret = -ENOMEM;
@@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 	 * required.
 	 */
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
-		rte_mcp_ptr_list[0] = (void *)v_addr;
+		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 		return 0;
 	}
 
@@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
 		ret = -1;
 		goto cleanup;
 	}
-	rte_mcp_ptr_list[0] = (void *)v_addr;
+	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
 
 	free(dev_name);
 	return 0;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index db49d637f5..79b148f20b 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpbp object */
-	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpbp_open(&dpbp_node->dpbp,
 			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 5ad0374df9..d393ce6186 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpci object */
-	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpci_open(&dpci_node->dpci,
 			CMD_PRI_LOW, dpci_id, &dpci_node->token);
 	if (ret) {
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
index 739ce434ba..21c535f2fb 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
@@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
 	dpio_dev->hw_id = object_id;
 	rte_atomic16_init(&dpio_dev->ref_count);
 	/* Using single portal  for all devices */
-	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	if (!check_lcore_cpuset) {
 		check_lcore_cpuset = 1;
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 33b191f823..194b99c583 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
 	uint8_t channel_index;
 };
 
-/*! Global MCP list */
-extern void *(*rte_mcp_ptr_list);
-
 /* Refer to Table 7-3 in SEC BG */
 struct qbman_fle {
 	uint32_t addr_lo;
@@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
 __rte_internal
 void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
 
+/* Global MCP pointer */
+__rte_internal
+void *dpaa2_get_mcp_ptr(int portal_idx);
+
 #endif
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 1b7a5a45e9..80da19a277 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -21,6 +21,7 @@ INTERNAL {
 	dpaa2_free_dpbp_dev;
 	dpaa2_free_dq_storage;
 	dpaa2_free_eq_descriptors;
+	dpaa2_get_mcp_ptr;
 	dpaa2_io_portal;
 	dpaa2_svr_family;
 	dpaa2_virt_mode;
@@ -111,5 +112,4 @@ INTERNAL {
 	rte_fslmc_get_device_count;
 	rte_fslmc_object_register;
 	rte_global_active_dqs_list;
-	rte_mcp_ptr_list;
 };
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index fe34e644cc..5d63644934 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
 			"Error in allocating the memory for dpsec object");
 		return -ENOMEM;
 	}
-	dpseci->regs = rte_mcp_ptr_list[0];
+	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 
 	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
 	if (retcode != 0) {
diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
index d64e588aa8..200b71640b 100644
--- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
+++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
@@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
 	}
 
 	/* Open the dpcon object */
-	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpcon_open(&dpcon_node->dpcon,
 			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 1bab3b064c..2f031ec5c1 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
 		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
 		return -1;
 	}
-	dpni_dev->regs = rte_mcp_ptr_list[0];
+	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	eth_dev->process_private = (void *)dpni_dev;
 
 	/* For secondary processes, the primary has done all the work */
diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
index 9ac8806faf..f8366e839e 100644
--- a/drivers/net/dpaa2/dpaa2_mux.c
+++ b/drivers/net/dpaa2/dpaa2_mux.c
@@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dpdmux object */
-	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
 			  &dpdmux_dev->token);
 	if (ret) {
diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
index 316912fe3e..f58eedb314 100644
--- a/drivers/net/dpaa2/dpaa2_ptp.c
+++ b/drivers/net/dpaa2/dpaa2_ptp.c
@@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
 	}
 
 	/* Open the dprtc object */
-	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
 			  &dprtc_dev->token);
 	if (ret) {
diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
index d5202d6522..1be1b6ddf0 100644
--- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
+++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
@@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
 
 	/* Open DPDMAI device */
 	dpdmai_dev->dpdmai_id = dpdmai_id;
-	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
+	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
 	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
 			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
 	if (ret) {
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* [dpdk-dev] [PATCH v8 13/13] bus/fslmc: remove unused symbols
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (11 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-15  9:47         ` Hemant Agrawal
  2020-05-19 11:29           ` Ray Kinsella
  2020-05-19 13:49         ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL David Marchand
  13 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-15  9:47 UTC (permalink / raw)
  To: dev, david.marchand, mdr; +Cc: Hemant Agrawal

rte_dpaa2_memsegs is not being used by any other library
or even within bus.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
 drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
 3 files changed, 10 deletions(-)

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
index 79b148f20b..d9619848d8 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
@@ -28,12 +28,6 @@
 #include "portal/dpaa2_hw_pvt.h"
 #include "portal/dpaa2_hw_dpio.h"
 
-/* List of all the memseg information locally maintained in dpaa2 driver. This
- * is to optimize the PA_to_VA searches until a better mechanism (algo) is
- * available.
- */
-struct dpaa2_memseg_list rte_dpaa2_memsegs
-	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
 
 TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
 static struct dpbp_dev_list dpbp_dev_list
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 194b99c583..19fdd9cfaa 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -325,9 +325,6 @@ struct dpaa2_memseg {
 	size_t len;
 };
 
-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
-
 #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
 extern uint8_t dpaa2_virt_mode;
 static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
index 80da19a277..69e7dc6ad9 100644
--- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
@@ -106,7 +106,6 @@ INTERNAL {
 	rte_dpaa2_free_dpci_dev;
 	rte_dpaa2_intr_disable;
 	rte_dpaa2_intr_enable;
-	rte_dpaa2_memsegs;
 	rte_fslmc_driver_register;
 	rte_fslmc_driver_unregister;
 	rte_fslmc_get_device_count;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section
  2020-05-15  9:26                               ` Thomas Monjalon
@ 2020-05-15 11:19                                 ` Thomas Monjalon
  0 siblings, 0 replies; 134+ messages in thread
From: Thomas Monjalon @ 2020-05-15 11:19 UTC (permalink / raw)
  To: techboard; +Cc: David Marchand, hemant.agrawal, Ray Kinsella, dev, nhorman

Adding a bit more definitions to better understand.

A "stable" library exports at least one symbol in the current stable ABI.
Its soname is suffixed with the current ABI version.
If the library exports no symbol in the current ABI, but has a symbol in
the next ABI, the soname is suffixed also with the current ABI version.

A "pure experimental" library exports only experimental symbols.
Its soname is suffixed with 0. and the stable ABI version.

A "pure internal" library has only internal symbols,
or no exported symbols at all, like in most PMDs.
Its soname is suffixed with the current ABI version.

An "experimental & internal" library exports experimental and internal
symbols, but none in current or next stable ABI.
We don't have such case yet.

I think the original intent was to use the suffix 0.x for libs
which export no stable ABI. But it is inconsistent currently.

Please read the options below, and give your opinion.
Thanks

15/05/2020 11:26, Thomas Monjalon:
> Now the question is: what to do in v20.11?
> This question will have to be voted in the Technical Board which voted
> the "pure experimental" versioning rule.
> We have 3 options:
> 
> a) "Pure internal" libs are versioned as "stable" libs,
> while "pure experimental" libs have version 0.x.
> It looks inconsistent and non-sense.
> 
> b) "Pure internal" libs are versioned as
> "pure experimental" libs: version 0.x.
> It makes "pure internal" libs version decreasing in 20.11.
> 
> c) Forget about the different versioning scheme,
> i.e. increase 0.x versions to x as "stable" libs.
> 
> Of course, I vote for option c.




^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
@ 2020-05-19  6:43           ` Hemant Agrawal
  2020-05-19  6:44             ` Ray Kinsella
  2020-05-19  9:51           ` Ray Kinsella
  1 sibling, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-19  6:43 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand, mdr

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


^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-19  6:43           ` Hemant Agrawal
@ 2020-05-19  6:44             ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19  6:44 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand

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
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
  2020-05-19  6:43           ` Hemant Agrawal
@ 2020-05-19  9:51           ` Ray Kinsella
  2020-05-19 10:39             ` Hemant Agrawal
  1 sibling, 1 reply; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19  9:51 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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: *;
>  };
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 02/13] bus/fslmc: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 02/13] bus/fslmc: " Hemant Agrawal
@ 2020-05-19 10:00           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 10:00 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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.
> 
> This patch also removes two symbols, which were not used
> anywhere else i.e. rte_fslmc_vfio_dmamap & dpaa2_get_qbman_swp
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  devtools/libabigail.abignore                  |  2 +
>  drivers/bus/fslmc/fslmc_vfio.h                |  5 +++
>  drivers/bus/fslmc/mc/fsl_dpbp.h               |  7 ++++
>  drivers/bus/fslmc/mc/fsl_dpci.h               |  3 ++
>  drivers/bus/fslmc/mc/fsl_dpcon.h              |  2 +
>  drivers/bus/fslmc/mc/fsl_dpdmai.h             | 10 +++++
>  drivers/bus/fslmc/mc/fsl_dpio.h               | 11 +++++
>  drivers/bus/fslmc/mc/fsl_dpmng.h              |  4 ++
>  drivers/bus/fslmc/mc/fsl_mc_cmd.h             |  2 +
>  drivers/bus/fslmc/portal/dpaa2_hw_dpio.h      |  5 +++
>  drivers/bus/fslmc/portal/dpaa2_hw_pvt.h       |  8 ++++
>  .../bus/fslmc/qbman/include/fsl_qbman_debug.h |  8 ++++
>  .../fslmc/qbman/include/fsl_qbman_portal.h    | 42 +++++++++++++++++++
>  drivers/bus/fslmc/rte_bus_fslmc_version.map   | 20 ++++-----
>  drivers/bus/fslmc/rte_fslmc.h                 |  4 ++
>  15 files changed, 123 insertions(+), 10 deletions(-)
> 
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
> index b1488d5549..877c6d5be8 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -51,3 +51,5 @@
>  ; Ignore moving DPAAx stable functions to INTERNAL tag
>  [suppress_file]
>  	file_name_regexp = ^librte_common_dpaax\.
> +[suppress_file]
> +	file_name_regexp = ^librte_bus_fslmc\.
> diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h
> index c988121294..bc7c6f62d7 100644
> --- a/drivers/bus/fslmc/fslmc_vfio.h
> +++ b/drivers/bus/fslmc/fslmc_vfio.h
> @@ -8,6 +8,7 @@
>  #ifndef _FSLMC_VFIO_H_
>  #define _FSLMC_VFIO_H_
>  
> +#include <rte_compat.h>
>  #include <rte_vfio.h>
>  
>  /* Pathname of FSL-MC devices directory. */
> @@ -41,7 +42,11 @@ typedef struct fslmc_vfio_container {
>  } fslmc_vfio_container;
>  
>  extern char *fslmc_container;
> +
> +__rte_internal
>  int rte_dpaa2_intr_enable(struct rte_intr_handle *intr_handle, int index);
> +
> +__rte_internal
>  int rte_dpaa2_intr_disable(struct rte_intr_handle *intr_handle, int index);
>  
>  int rte_dpaa2_vfio_setup_intr(struct rte_intr_handle *intr_handle,
> diff --git a/drivers/bus/fslmc/mc/fsl_dpbp.h b/drivers/bus/fslmc/mc/fsl_dpbp.h
> index 9d405b42c4..0d590a2647 100644
> --- a/drivers/bus/fslmc/mc/fsl_dpbp.h
> +++ b/drivers/bus/fslmc/mc/fsl_dpbp.h
> @@ -7,6 +7,7 @@
>  #ifndef __FSL_DPBP_H
>  #define __FSL_DPBP_H
>  
> +#include <rte_compat.h>
>  /*
>   * Data Path Buffer Pool API
>   * Contains initialization APIs and runtime control APIs for DPBP
> @@ -14,6 +15,7 @@
>  
>  struct fsl_mc_io;
>  
> +__rte_internal
>  int dpbp_open(struct fsl_mc_io *mc_io,
>  	      uint32_t cmd_flags,
>  	      int dpbp_id,
> @@ -42,10 +44,12 @@ int dpbp_destroy(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint32_t obj_id);
>  
> +__rte_internal
>  int dpbp_enable(struct fsl_mc_io *mc_io,
>  		uint32_t cmd_flags,
>  		uint16_t token);
>  
> +__rte_internal
>  int dpbp_disable(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint16_t token);
> @@ -55,6 +59,7 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io,
>  		    uint16_t token,
>  		    int *en);
>  
> +__rte_internal
>  int dpbp_reset(struct fsl_mc_io *mc_io,
>  	       uint32_t cmd_flags,
>  	       uint16_t token);
> @@ -70,6 +75,7 @@ struct dpbp_attr {
>  	uint16_t bpid;
>  };
>  
> +__rte_internal
>  int dpbp_get_attributes(struct fsl_mc_io *mc_io,
>  			uint32_t cmd_flags,
>  			uint16_t token,
> @@ -88,6 +94,7 @@ int dpbp_get_api_version(struct fsl_mc_io *mc_io,
>  			 uint16_t *major_ver,
>  			 uint16_t *minor_ver);
>  
> +__rte_internal
>  int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
>  			   uint32_t cmd_flags,
>  			   uint16_t token,
> diff --git a/drivers/bus/fslmc/mc/fsl_dpci.h b/drivers/bus/fslmc/mc/fsl_dpci.h
> index a0ee5bfe69..81fd3438aa 100644
> --- a/drivers/bus/fslmc/mc/fsl_dpci.h
> +++ b/drivers/bus/fslmc/mc/fsl_dpci.h
> @@ -181,6 +181,7 @@ struct dpci_rx_queue_cfg {
>  	int order_preservation_en;
>  };
>  
> +__rte_internal
>  int dpci_set_rx_queue(struct fsl_mc_io *mc_io,
>  		      uint32_t cmd_flags,
>  		      uint16_t token,
> @@ -228,6 +229,7 @@ int dpci_get_api_version(struct fsl_mc_io *mc_io,
>  			 uint16_t *major_ver,
>  			 uint16_t *minor_ver);
>  
> +__rte_internal
>  int dpci_set_opr(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint16_t token,
> @@ -235,6 +237,7 @@ int dpci_set_opr(struct fsl_mc_io *mc_io,
>  		 uint8_t options,
>  		 struct opr_cfg *cfg);
>  
> +__rte_internal
>  int dpci_get_opr(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint16_t token,
> diff --git a/drivers/bus/fslmc/mc/fsl_dpcon.h b/drivers/bus/fslmc/mc/fsl_dpcon.h
> index af81d51195..7caa6c68a1 100644
> --- a/drivers/bus/fslmc/mc/fsl_dpcon.h
> +++ b/drivers/bus/fslmc/mc/fsl_dpcon.h
> @@ -20,6 +20,7 @@ struct fsl_mc_io;
>   */
>  #define DPCON_INVALID_DPIO_ID		(int)(-1)
>  
> +__rte_internal
>  int dpcon_open(struct fsl_mc_io *mc_io,
>  	       uint32_t cmd_flags,
>  	       int dpcon_id,
> @@ -77,6 +78,7 @@ struct dpcon_attr {
>  	uint8_t num_priorities;
>  };
>  
> +__rte_internal
>  int dpcon_get_attributes(struct fsl_mc_io *mc_io,
>  			 uint32_t cmd_flags,
>  			 uint16_t token,
> diff --git a/drivers/bus/fslmc/mc/fsl_dpdmai.h b/drivers/bus/fslmc/mc/fsl_dpdmai.h
> index 40469cc139..19328c00a0 100644
> --- a/drivers/bus/fslmc/mc/fsl_dpdmai.h
> +++ b/drivers/bus/fslmc/mc/fsl_dpdmai.h
> @@ -5,6 +5,8 @@
>  #ifndef __FSL_DPDMAI_H
>  #define __FSL_DPDMAI_H
>  
> +#include <rte_compat.h>
> +
>  struct fsl_mc_io;
>  
>  /* Data Path DMA Interface API
> @@ -23,11 +25,13 @@ struct fsl_mc_io;
>   */
>  #define DPDMAI_ALL_QUEUES	(uint8_t)(-1)
>  
> +__rte_internal
>  int dpdmai_open(struct fsl_mc_io *mc_io,
>  		uint32_t cmd_flags,
>  		int dpdmai_id,
>  		uint16_t *token);
>  
> +__rte_internal
>  int dpdmai_close(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint16_t token);
> @@ -54,10 +58,12 @@ int dpdmai_destroy(struct fsl_mc_io *mc_io,
>  		   uint32_t cmd_flags,
>  		   uint32_t object_id);
>  
> +__rte_internal
>  int dpdmai_enable(struct fsl_mc_io *mc_io,
>  		  uint32_t cmd_flags,
>  		  uint16_t token);
>  
> +__rte_internal
>  int dpdmai_disable(struct fsl_mc_io *mc_io,
>  		   uint32_t cmd_flags,
>  		   uint16_t token);
> @@ -82,6 +88,7 @@ struct dpdmai_attr {
>  	uint8_t num_of_queues;
>  };
>  
> +__rte_internal
>  int dpdmai_get_attributes(struct fsl_mc_io *mc_io,
>  			  uint32_t cmd_flags,
>  			  uint16_t token,
> @@ -148,6 +155,7 @@ struct dpdmai_rx_queue_cfg {
>  
>  };
>  
> +__rte_internal
>  int dpdmai_set_rx_queue(struct fsl_mc_io *mc_io,
>  			uint32_t cmd_flags,
>  			uint16_t token,
> @@ -168,6 +176,7 @@ struct dpdmai_rx_queue_attr {
>  	uint32_t fqid;
>  };
>  
> +__rte_internal
>  int dpdmai_get_rx_queue(struct fsl_mc_io *mc_io,
>  			uint32_t cmd_flags,
>  			uint16_t token,
> @@ -184,6 +193,7 @@ struct dpdmai_tx_queue_attr {
>  	uint32_t fqid;
>  };
>  
> +__rte_internal
>  int dpdmai_get_tx_queue(struct fsl_mc_io *mc_io,
>  			uint32_t cmd_flags,
>  			uint16_t token,
> diff --git a/drivers/bus/fslmc/mc/fsl_dpio.h b/drivers/bus/fslmc/mc/fsl_dpio.h
> index 3158f53191..c2db76bdf8 100644
> --- a/drivers/bus/fslmc/mc/fsl_dpio.h
> +++ b/drivers/bus/fslmc/mc/fsl_dpio.h
> @@ -7,17 +7,21 @@
>  #ifndef __FSL_DPIO_H
>  #define __FSL_DPIO_H
>  
> +#include <rte_compat.h>
> +
>  /* Data Path I/O Portal API
>   * Contains initialization APIs and runtime control APIs for DPIO
>   */
>  
>  struct fsl_mc_io;
>  
> +__rte_internal
>  int dpio_open(struct fsl_mc_io *mc_io,
>  	      uint32_t cmd_flags,
>  	      int dpio_id,
>  	      uint16_t *token);
>  
> +__rte_internal
>  int dpio_close(struct fsl_mc_io *mc_io,
>  	       uint32_t cmd_flags,
>  	       uint16_t token);
> @@ -57,10 +61,12 @@ int dpio_destroy(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint32_t object_id);
>  
> +__rte_internal
>  int dpio_enable(struct fsl_mc_io *mc_io,
>  		uint32_t cmd_flags,
>  		uint16_t token);
>  
> +__rte_internal
>  int dpio_disable(struct fsl_mc_io *mc_io,
>  		 uint32_t cmd_flags,
>  		 uint16_t token);
> @@ -70,10 +76,12 @@ int dpio_is_enabled(struct fsl_mc_io *mc_io,
>  		    uint16_t token,
>  		    int *en);
>  
> +__rte_internal
>  int dpio_reset(struct fsl_mc_io *mc_io,
>  	       uint32_t cmd_flags,
>  	       uint16_t token);
>  
> +__rte_internal
>  int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,
>  				  uint32_t cmd_flags,
>  				  uint16_t token,
> @@ -84,12 +92,14 @@ int dpio_get_stashing_destination(struct fsl_mc_io *mc_io,
>  				  uint16_t token,
>  				  uint8_t *sdest);
>  
> +__rte_internal
>  int dpio_add_static_dequeue_channel(struct fsl_mc_io *mc_io,
>  				    uint32_t cmd_flags,
>  				    uint16_t token,
>  				    int dpcon_id,
>  				    uint8_t *channel_index);
>  
> +__rte_internal
>  int dpio_remove_static_dequeue_channel(struct fsl_mc_io *mc_io,
>  				       uint32_t cmd_flags,
>  				       uint16_t token,
> @@ -119,6 +129,7 @@ struct dpio_attr {
>  	uint32_t clk;
>  };
>  
> +__rte_internal
>  int dpio_get_attributes(struct fsl_mc_io *mc_io,
>  			uint32_t cmd_flags,
>  			uint16_t token,
> diff --git a/drivers/bus/fslmc/mc/fsl_dpmng.h b/drivers/bus/fslmc/mc/fsl_dpmng.h
> index 36c387af27..8764ceaed9 100644
> --- a/drivers/bus/fslmc/mc/fsl_dpmng.h
> +++ b/drivers/bus/fslmc/mc/fsl_dpmng.h
> @@ -7,6 +7,8 @@
>  #ifndef __FSL_DPMNG_H
>  #define __FSL_DPMNG_H
>  
> +#include <rte_compat.h>
> +
>  /*
>   * Management Complex General API
>   * Contains general API for the Management Complex firmware
> @@ -34,6 +36,7 @@ struct mc_version {
>  	uint32_t revision;
>  };
>  
> +__rte_internal
>  int mc_get_version(struct fsl_mc_io *mc_io,
>  		   uint32_t cmd_flags,
>  		   struct mc_version *mc_ver_info);
> @@ -48,6 +51,7 @@ struct mc_soc_version {
>  	uint32_t pvr;
>  };
>  
> +__rte_internal
>  int mc_get_soc_version(struct fsl_mc_io *mc_io,
>  		       uint32_t cmd_flags,
>  		       struct mc_soc_version *mc_platform_info);
> diff --git a/drivers/bus/fslmc/mc/fsl_mc_cmd.h b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
> index ac919610cf..7c0ca6b73a 100644
> --- a/drivers/bus/fslmc/mc/fsl_mc_cmd.h
> +++ b/drivers/bus/fslmc/mc/fsl_mc_cmd.h
> @@ -7,6 +7,7 @@
>  #ifndef __FSL_MC_CMD_H
>  #define __FSL_MC_CMD_H
>  
> +#include <rte_compat.h>
>  #include <rte_byteorder.h>
>  #include <stdint.h>
>  
> @@ -80,6 +81,7 @@ enum mc_cmd_status {
>  
>  #define MC_CMD_HDR_FLAGS_MASK	0xFF00FF00
>  
> +__rte_internal
>  int mc_send_command(struct fsl_mc_io *mc_io, struct mc_command *cmd);
>  
>  static inline uint64_t mc_encode_cmd_header(uint16_t cmd_id,
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
> index 2829c93806..7c5966241a 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
> @@ -36,20 +36,25 @@ extern uint8_t dpaa2_eqcr_size;
>  extern struct dpaa2_io_portal_t dpaa2_io_portal[RTE_MAX_LCORE];
>  
>  /* Affine a DPIO portal to current processing thread */
> +__rte_internal
>  int dpaa2_affine_qbman_swp(void);
>  
>  /* Affine additional DPIO portal to current crypto processing thread */
> +__rte_internal
>  int dpaa2_affine_qbman_ethrx_swp(void);
>  
>  /* allocate memory for FQ - dq storage */
> +__rte_internal
>  int
>  dpaa2_alloc_dq_storage(struct queue_storage_info_t *q_storage);
>  
>  /* free memory for FQ- dq storage */
> +__rte_internal
>  void
>  dpaa2_free_dq_storage(struct queue_storage_info_t *q_storage);
>  
>  /* free the enqueue response descriptors */
> +__rte_internal
>  uint32_t
>  dpaa2_free_eq_descriptors(void);
>  
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> index 368fe7c688..33b191f823 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> @@ -426,11 +426,19 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs)
>  {
>  	rte_global_active_dqs_list[dpio_index].global_active_dqs = dqs;
>  }
> +__rte_internal
>  struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void);
> +
> +__rte_internal
>  void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp);
> +
> +__rte_internal
>  int dpaa2_dpbp_supported(void);
>  
> +__rte_internal
>  struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
> +
> +__rte_internal
>  void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
>  
>  #endif
> diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
> index e010b1b6ae..f0c2f9fcb3 100644
> --- a/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
> +++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_debug.h
> @@ -1,6 +1,10 @@
>  /* SPDX-License-Identifier: BSD-3-Clause
>   * Copyright (C) 2015 Freescale Semiconductor, Inc.
>   */
> +#ifndef _FSL_QBMAN_DEBUG_H
> +#define _FSL_QBMAN_DEBUG_H
> +
> +#include <rte_compat.h>
>  
>  struct qbman_swp;
>  
> @@ -24,7 +28,11 @@ uint8_t verb;
>  	uint8_t reserved2[29];
>  };
>  
> +__rte_internal
>  int qbman_fq_query_state(struct qbman_swp *s, uint32_t fqid,
>  			 struct qbman_fq_query_np_rslt *r);
> +
> +__rte_internal
>  uint32_t qbman_fq_state_frame_count(const struct qbman_fq_query_np_rslt *r);
>  uint32_t qbman_fq_state_byte_count(const struct qbman_fq_query_np_rslt *r);
> +#endif
> diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
> index 88f0a99686..f820077d2b 100644
> --- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
> +++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
> @@ -7,6 +7,7 @@
>  #ifndef _FSL_QBMAN_PORTAL_H
>  #define _FSL_QBMAN_PORTAL_H
>  
> +#include <rte_compat.h>
>  #include <fsl_qbman_base.h>
>  
>  #define SVR_LS1080A	0x87030000
> @@ -117,6 +118,7 @@ uint32_t qbman_swp_interrupt_read_status(struct qbman_swp *p);
>   * @p: the given software portal object.
>   * @mask: The value to set in SWP_ISR register.
>   */
> +__rte_internal
>  void qbman_swp_interrupt_clear_status(struct qbman_swp *p, uint32_t mask);
>  
>  /**
> @@ -286,6 +288,7 @@ void qbman_swp_push_get(struct qbman_swp *s, uint8_t channel_idx, int *enabled);
>   * rather by specifying the index (from 0 to 15) that has been mapped to the
>   * desired channel.
>   */
> +__rte_internal
>  void qbman_swp_push_set(struct qbman_swp *s, uint8_t channel_idx, int enable);
>  
>  /* ------------------- */
> @@ -325,6 +328,7 @@ enum qbman_pull_type_e {
>   * default/starting state.
>   * @d: the pull dequeue descriptor to be cleared.
>   */
> +__rte_internal
>  void qbman_pull_desc_clear(struct qbman_pull_desc *d);
>  
>  /**
> @@ -340,6 +344,7 @@ void qbman_pull_desc_clear(struct qbman_pull_desc *d);
>   * the caller provides in 'storage_phys'), and 'stash' controls whether or not
>   * those writes to main-memory express a cache-warming attribute.
>   */
> +__rte_internal
>  void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
>  				 struct qbman_result *storage,
>  				 uint64_t storage_phys,
> @@ -349,6 +354,7 @@ void qbman_pull_desc_set_storage(struct qbman_pull_desc *d,
>   * @d: the pull dequeue descriptor to be set.
>   * @numframes: number of frames to be set, must be between 1 and 16, inclusive.
>   */
> +__rte_internal
>  void qbman_pull_desc_set_numframes(struct qbman_pull_desc *d,
>  				   uint8_t numframes);
>  /**
> @@ -372,6 +378,7 @@ void qbman_pull_desc_set_token(struct qbman_pull_desc *d, uint8_t token);
>   * qbman_pull_desc_set_fq() - Set fqid from which the dequeue command dequeues.
>   * @fqid: the frame queue index of the given FQ.
>   */
> +__rte_internal
>  void qbman_pull_desc_set_fq(struct qbman_pull_desc *d, uint32_t fqid);
>  
>  /**
> @@ -407,6 +414,7 @@ void qbman_pull_desc_set_rad(struct qbman_pull_desc *d, int rad);
>   * Return 0 for success, and -EBUSY if the software portal is not ready
>   * to do pull dequeue.
>   */
> +__rte_internal
>  int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
>  
>  /* -------------------------------- */
> @@ -421,12 +429,14 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d);
>   * only once, so repeated calls can return a sequence of DQRR entries, without
>   * requiring they be consumed immediately or in any particular order.
>   */
> +__rte_internal
>  const struct qbman_result *qbman_swp_dqrr_next(struct qbman_swp *p);
>  
>  /**
>   * qbman_swp_prefetch_dqrr_next() - prefetch the next DQRR entry.
>   * @s: the software portal object.
>   */
> +__rte_internal
>  void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
>  
>  /**
> @@ -435,6 +445,7 @@ void qbman_swp_prefetch_dqrr_next(struct qbman_swp *s);
>   * @s: the software portal object.
>   * @dq: the DQRR entry to be consumed.
>   */
> +__rte_internal
>  void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
>  
>  /**
> @@ -442,6 +453,7 @@ void qbman_swp_dqrr_consume(struct qbman_swp *s, const struct qbman_result *dq);
>   * @s: the software portal object.
>   * @dqrr_index: the DQRR index entry to be consumed.
>   */
> +__rte_internal
>  void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
>  
>  /**
> @@ -450,6 +462,7 @@ void qbman_swp_dqrr_idx_consume(struct qbman_swp *s, uint8_t dqrr_index);
>   *
>   * Return dqrr index.
>   */
> +__rte_internal
>  uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
>  
>  /**
> @@ -460,6 +473,7 @@ uint8_t qbman_get_dqrr_idx(const struct qbman_result *dqrr);
>   *
>   * Return dqrr entry object.
>   */
> +__rte_internal
>  struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
>  
>  /* ------------------------------------------------- */
> @@ -485,6 +499,7 @@ struct qbman_result *qbman_get_dqrr_from_idx(struct qbman_swp *s, uint8_t idx);
>   * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
>   * dequeue result.
>   */
> +__rte_internal
>  int qbman_result_has_new_result(struct qbman_swp *s,
>  				struct qbman_result *dq);
>  
> @@ -497,8 +512,10 @@ int qbman_result_has_new_result(struct qbman_swp *s,
>   * Return 1 for getting a valid dequeue result, or 0 for not getting a valid
>   * dequeue result.
>   */
> +__rte_internal
>  int qbman_check_command_complete(struct qbman_result *dq);
>  
> +__rte_internal
>  int qbman_check_new_result(struct qbman_result *dq);
>  
>  /* -------------------------------------------------------- */
> @@ -624,6 +641,7 @@ int qbman_result_is_FQPN(const struct qbman_result *dq);
>   *
>   * Return the state field.
>   */
> +__rte_internal
>  uint8_t qbman_result_DQ_flags(const struct qbman_result *dq);
>  
>  /**
> @@ -658,6 +676,7 @@ static inline int qbman_result_DQ_is_pull_complete(
>   *
>   * Return seqnum.
>   */
> +__rte_internal
>  uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
>  
>  /**
> @@ -667,6 +686,7 @@ uint16_t qbman_result_DQ_seqnum(const struct qbman_result *dq);
>   *
>   * Return odpid.
>   */
> +__rte_internal
>  uint16_t qbman_result_DQ_odpid(const struct qbman_result *dq);
>  
>  /**
> @@ -699,6 +719,7 @@ uint32_t qbman_result_DQ_frame_count(const struct qbman_result *dq);
>   *
>   * Return the frame queue context.
>   */
> +__rte_internal
>  uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
>  
>  /**
> @@ -707,6 +728,7 @@ uint64_t qbman_result_DQ_fqd_ctx(const struct qbman_result *dq);
>   *
>   * Return the frame descriptor.
>   */
> +__rte_internal
>  const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
>  
>  /* State-change notifications (FQDAN/CDAN/CSCN/...). */
> @@ -717,6 +739,7 @@ const struct qbman_fd *qbman_result_DQ_fd(const struct qbman_result *dq);
>   *
>   * Return the state in the notifiation.
>   */
> +__rte_internal
>  uint8_t qbman_result_SCN_state(const struct qbman_result *scn);
>  
>  /**
> @@ -850,6 +873,7 @@ struct qbman_eq_response {
>   * default/starting state.
>   * @d: the given enqueue descriptor.
>   */
> +__rte_internal
>  void qbman_eq_desc_clear(struct qbman_eq_desc *d);
>  
>  /* Exactly one of the following descriptor "actions" should be set. (Calling
> @@ -870,6 +894,7 @@ void qbman_eq_desc_clear(struct qbman_eq_desc *d);
>   * @response_success: 1 = enqueue with response always; 0 = enqueue with
>   * rejections returned on a FQ.
>   */
> +__rte_internal
>  void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
>  /**
>   * qbman_eq_desc_set_orp() - Set order-resotration in the enqueue descriptor
> @@ -881,6 +906,7 @@ void qbman_eq_desc_set_no_orp(struct qbman_eq_desc *d, int respond_success);
>   * @incomplete: indiates whether this is the last fragments using the same
>   * sequeue number.
>   */
> +__rte_internal
>  void qbman_eq_desc_set_orp(struct qbman_eq_desc *d, int respond_success,
>  			   uint16_t opr_id, uint16_t seqnum, int incomplete);
>  
> @@ -915,6 +941,7 @@ void qbman_eq_desc_set_orp_nesn(struct qbman_eq_desc *d, uint16_t opr_id,
>   * data structure.) 'stash' controls whether or not the write to main-memory
>   * expresses a cache-warming attribute.
>   */
> +__rte_internal
>  void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
>  				uint64_t storage_phys,
>  				int stash);
> @@ -929,6 +956,7 @@ void qbman_eq_desc_set_response(struct qbman_eq_desc *d,
>   * result "storage" before issuing an enqueue, and use any non-zero 'token'
>   * value.
>   */
> +__rte_internal
>  void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
>  
>  /**
> @@ -944,6 +972,7 @@ void qbman_eq_desc_set_token(struct qbman_eq_desc *d, uint8_t token);
>   * @d: the enqueue descriptor
>   * @fqid: the id of the frame queue to be enqueued.
>   */
> +__rte_internal
>  void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
>  
>  /**
> @@ -953,6 +982,7 @@ void qbman_eq_desc_set_fq(struct qbman_eq_desc *d, uint32_t fqid);
>   * @qd_bin: the queuing destination bin
>   * @qd_prio: the queuing destination priority.
>   */
> +__rte_internal
>  void qbman_eq_desc_set_qd(struct qbman_eq_desc *d, uint32_t qdid,
>  			  uint16_t qd_bin, uint8_t qd_prio);
>  
> @@ -978,6 +1008,7 @@ void qbman_eq_desc_set_eqdi(struct qbman_eq_desc *d, int enable);
>   * held-active (order-preserving) FQ, whether the FQ should be parked instead of
>   * being rescheduled.)
>   */
> +__rte_internal
>  void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
>  			   uint8_t dqrr_idx, int park);
>  
> @@ -987,6 +1018,7 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable,
>   *
>   * Return the fd pointer.
>   */
> +__rte_internal
>  struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
>  
>  /**
> @@ -997,6 +1029,7 @@ struct qbman_fd *qbman_result_eqresp_fd(struct qbman_result *eqresp);
>   * This value is set into the response id before the enqueue command, which,
>   * get overwritten by qbman once the enqueue command is complete.
>   */
> +__rte_internal
>  void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
>  
>  /**
> @@ -1009,6 +1042,7 @@ void qbman_result_eqresp_set_rspid(struct qbman_result *eqresp, uint8_t val);
>   * copied into the enqueue response to determine if the command has been
>   * completed, and response has been updated.
>   */
> +__rte_internal
>  uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
>  
>  /**
> @@ -1017,6 +1051,7 @@ uint8_t qbman_result_eqresp_rspid(struct qbman_result *eqresp);
>   *
>   * Return 0 when command is sucessful.
>   */
> +__rte_internal
>  uint8_t qbman_result_eqresp_rc(struct qbman_result *eqresp);
>  
>  /**
> @@ -1043,6 +1078,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d,
>   *
>   * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
>   */
> +__rte_internal
>  int qbman_swp_enqueue_multiple(struct qbman_swp *s,
>  			       const struct qbman_eq_desc *d,
>  			       const struct qbman_fd *fd,
> @@ -1060,6 +1096,7 @@ int qbman_swp_enqueue_multiple(struct qbman_swp *s,
>   *
>   * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
>   */
> +__rte_internal
>  int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
>  				  const struct qbman_eq_desc *d,
>  				  struct qbman_fd **fd,
> @@ -1076,6 +1113,7 @@ int qbman_swp_enqueue_multiple_fd(struct qbman_swp *s,
>   *
>   * Return the number of enqueued frames, -EBUSY if the EQCR is not ready.
>   */
> +__rte_internal
>  int qbman_swp_enqueue_multiple_desc(struct qbman_swp *s,
>  				    const struct qbman_eq_desc *d,
>  				    const struct qbman_fd *fd,
> @@ -1117,12 +1155,14 @@ struct qbman_release_desc {
>   * default/starting state.
>   * @d: the qbman release descriptor.
>   */
> +__rte_internal
>  void qbman_release_desc_clear(struct qbman_release_desc *d);
>  
>  /**
>   * qbman_release_desc_set_bpid() - Set the ID of the buffer pool to release to
>   * @d: the qbman release descriptor.
>   */
> +__rte_internal
>  void qbman_release_desc_set_bpid(struct qbman_release_desc *d, uint16_t bpid);
>  
>  /**
> @@ -1141,6 +1181,7 @@ void qbman_release_desc_set_rcdi(struct qbman_release_desc *d, int enable);
>   *
>   * Return 0 for success, -EBUSY if the release command ring is not ready.
>   */
> +__rte_internal
>  int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d,
>  		      const uint64_t *buffers, unsigned int num_buffers);
>  
> @@ -1166,6 +1207,7 @@ int qbman_swp_release_thresh(struct qbman_swp *s, unsigned int thresh);
>   * Return 0 for success, or negative error code if the acquire command
>   * fails.
>   */
> +__rte_internal
>  int qbman_swp_acquire(struct qbman_swp *s, uint16_t bpid, uint64_t *buffers,
>  		      unsigned int num_buffers);
>  
> diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
> index fe45575046..1b7a5a45e9 100644
> --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
> +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
> @@ -1,4 +1,14 @@
>  DPDK_20.0 {
> +	local: *;
> +};
> +
> +EXPERIMENTAL {
> +	global:
> +
> +	rte_fslmc_vfio_mem_dmamap;
> +};
> +
> +INTERNAL {
>  	global:
>  
>  	dpaa2_affine_qbman_ethrx_swp;
> @@ -11,7 +21,6 @@ DPDK_20.0 {
>  	dpaa2_free_dpbp_dev;
>  	dpaa2_free_dq_storage;
>  	dpaa2_free_eq_descriptors;
> -	dpaa2_get_qbman_swp;
>  	dpaa2_io_portal;
>  	dpaa2_svr_family;
>  	dpaa2_virt_mode;
> @@ -101,15 +110,6 @@ DPDK_20.0 {
>  	rte_fslmc_driver_unregister;
>  	rte_fslmc_get_device_count;
>  	rte_fslmc_object_register;
> -	rte_fslmc_vfio_dmamap;
>  	rte_global_active_dqs_list;
>  	rte_mcp_ptr_list;
> -
> -	local: *;
> -};
> -
> -EXPERIMENTAL {
> -	global:
> -
> -	rte_fslmc_vfio_mem_dmamap;
>  };
> diff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h
> index 96ba8dc259..5078b48ee1 100644
> --- a/drivers/bus/fslmc/rte_fslmc.h
> +++ b/drivers/bus/fslmc/rte_fslmc.h
> @@ -162,6 +162,7 @@ RTE_DECLARE_PER_LCORE(struct dpaa2_portal_dqrr, dpaa2_held_bufs);
>   *   A pointer to a rte_dpaa2_driver structure describing the driver
>   *   to be registered.
>   */
> +__rte_internal
>  void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
>  
>  /**
> @@ -171,6 +172,7 @@ void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);
>   *   A pointer to a rte_dpaa2_driver structure describing the driver
>   *   to be unregistered.
>   */
> +__rte_internal
>  void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);
>  
>  /** Helper for DPAA2 device registration from driver (eth, crypto) instance */
> @@ -189,6 +191,7 @@ RTE_PMD_EXPORT_NAME(nm, __COUNTER__)
>   *   A pointer to a rte_dpaa_object structure describing the mc object
>   *   to be registered.
>   */
> +__rte_internal
>  void rte_fslmc_object_register(struct rte_dpaa2_object *object);
>  
>  /**
> @@ -200,6 +203,7 @@ void rte_fslmc_object_register(struct rte_dpaa2_object *object);
>   *   >=0 for count; 0 indicates either no device of the said type scanned or
>   *   invalid device type.
>   */
> +__rte_internal
>  uint32_t rte_fslmc_get_device_count(enum rte_dpaa2_dev_type device_type);
>  
>  /** Helper for DPAA2 object registration */
> 

Acked-by: Ray Kinsella <mdr@ashroe.eu>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section
  2020-05-19  9:51           ` Ray Kinsella
@ 2020-05-19 10:39             ` Hemant Agrawal
  0 siblings, 0 replies; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-19 10:39 UTC (permalink / raw)
  To: Ray Kinsella, dev, david.marchand

> > --- 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: *;
> >  };
> >

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 03/13] bus/dpaa: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 03/13] bus/dpaa: " Hemant Agrawal
@ 2020-05-19 10:56           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 10:56 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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.
> 
> This patch also removes two symbols, which are not
> to be exported.
> rte_dpaa_mem_ptov  - static inline in the headerfile
> fman_ccsr_map_fd - local shared variable.
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  devtools/libabigail.abignore              |  2 ++
>  drivers/bus/dpaa/include/fsl_bman.h       |  6 +++++
>  drivers/bus/dpaa/include/fsl_fman.h       | 27 +++++++++++++++++++
>  drivers/bus/dpaa/include/fsl_qman.h       | 32 +++++++++++++++++++++++
>  drivers/bus/dpaa/include/fsl_usd.h        |  8 +++++-
>  drivers/bus/dpaa/include/netcfg.h         |  2 ++
>  drivers/bus/dpaa/rte_bus_dpaa_version.map |  8 +++---
>  drivers/bus/dpaa/rte_dpaa_bus.h           |  5 ++++
>  8 files changed, 85 insertions(+), 5 deletions(-)
> 
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
> index 877c6d5be8..ab34302d0c 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -53,3 +53,5 @@
>  	file_name_regexp = ^librte_common_dpaax\.
>  [suppress_file]
>  	file_name_regexp = ^librte_bus_fslmc\.
> +[suppress_file]
> +	file_name_regexp = ^librte_bus_dpaa\.
> diff --git a/drivers/bus/dpaa/include/fsl_bman.h b/drivers/bus/dpaa/include/fsl_bman.h
> index f9cd972153..82da2fcfe0 100644
> --- a/drivers/bus/dpaa/include/fsl_bman.h
> +++ b/drivers/bus/dpaa/include/fsl_bman.h
> @@ -264,12 +264,14 @@ int bman_shutdown_pool(u32 bpid);
>   * the structure provided by the caller can be released or reused after the
>   * function returns.
>   */
> +__rte_internal
>  struct bman_pool *bman_new_pool(const struct bman_pool_params *params);
>  
>  /**
>   * bman_free_pool - Deallocates a Buffer Pool object
>   * @pool: the pool object to release
>   */
> +__rte_internal
>  void bman_free_pool(struct bman_pool *pool);
>  
>  /**
> @@ -279,6 +281,7 @@ void bman_free_pool(struct bman_pool *pool);
>   * The returned pointer refers to state within the pool object so must not be
>   * modified and can no longer be read once the pool object is destroyed.
>   */
> +__rte_internal
>  const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
>  
>  /**
> @@ -289,6 +292,7 @@ const struct bman_pool_params *bman_get_params(const struct bman_pool *pool);
>   * @flags: bit-mask of BMAN_RELEASE_FLAG_*** options
>   *
>   */
> +__rte_internal
>  int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
>  		 u32 flags);
>  
> @@ -302,6 +306,7 @@ int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num,
>   * The return value will be the number of buffers obtained from the pool, or a
>   * negative error code if a h/w error or pool starvation was encountered.
>   */
> +__rte_internal
>  int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num,
>  		 u32 flags);
>  
> @@ -317,6 +322,7 @@ int bman_query_pools(struct bm_pool_state *state);
>   *
>   * Return the number of the free buffers
>   */
> +__rte_internal
>  u32 bman_query_free_buffers(struct bman_pool *pool);
>  
>  /**
> diff --git a/drivers/bus/dpaa/include/fsl_fman.h b/drivers/bus/dpaa/include/fsl_fman.h
> index 5705ebfdce..6c87c8db0d 100644
> --- a/drivers/bus/dpaa/include/fsl_fman.h
> +++ b/drivers/bus/dpaa/include/fsl_fman.h
> @@ -7,6 +7,8 @@
>  #ifndef __FSL_FMAN_H
>  #define __FSL_FMAN_H
>  
> +#include <rte_compat.h>
> +
>  #ifdef __cplusplus
>  extern "C" {
>  #endif
> @@ -43,18 +45,23 @@ struct fm_status_t {
>  } __rte_packed;
>  
>  /* Set MAC address for a particular interface */
> +__rte_internal
>  int fman_if_add_mac_addr(struct fman_if *p, uint8_t *eth, uint8_t addr_num);
>  
>  /* Remove a MAC address for a particular interface */
> +__rte_internal
>  void fman_if_clear_mac_addr(struct fman_if *p, uint8_t addr_num);
>  
>  /* Get the FMAN statistics */
> +__rte_internal
>  void fman_if_stats_get(struct fman_if *p, struct rte_eth_stats *stats);
>  
>  /* Reset the FMAN statistics */
> +__rte_internal
>  void fman_if_stats_reset(struct fman_if *p);
>  
>  /* Get all of the FMAN statistics */
> +__rte_internal
>  void fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n);
>  
>  /* Set ignore pause option for a specific interface */
> @@ -64,32 +71,43 @@ void fman_if_set_rx_ignore_pause_frames(struct fman_if *p, bool enable);
>  void fman_if_conf_max_frame_len(struct fman_if *p, unsigned int max_frame_len);
>  
>  /* Enable/disable Rx promiscuous mode on specified interface */
> +__rte_internal
>  void fman_if_promiscuous_enable(struct fman_if *p);
> +__rte_internal
>  void fman_if_promiscuous_disable(struct fman_if *p);
>  
>  /* Enable/disable Rx on specific interfaces */
> +__rte_internal
>  void fman_if_enable_rx(struct fman_if *p);
> +__rte_internal
>  void fman_if_disable_rx(struct fman_if *p);
>  
>  /* Enable/disable loopback on specific interfaces */
> +__rte_internal
>  void fman_if_loopback_enable(struct fman_if *p);
> +__rte_internal
>  void fman_if_loopback_disable(struct fman_if *p);
>  
>  /* Set buffer pool on specific interface */
> +__rte_internal
>  void fman_if_set_bp(struct fman_if *fm_if, unsigned int num, int bpid,
>  		    size_t bufsize);
>  
>  /* Get Flow Control threshold parameters on specific interface */
> +__rte_internal
>  int fman_if_get_fc_threshold(struct fman_if *fm_if);
>  
>  /* Enable and Set Flow Control threshold parameters on specific interface */
> +__rte_internal
>  int fman_if_set_fc_threshold(struct fman_if *fm_if,
>  			u32 high_water, u32 low_water, u32 bpid);
>  
>  /* Get Flow Control pause quanta on specific interface */
> +__rte_internal
>  int fman_if_get_fc_quanta(struct fman_if *fm_if);
>  
>  /* Set Flow Control pause quanta on specific interface */
> +__rte_internal
>  int fman_if_set_fc_quanta(struct fman_if *fm_if, u16 pause_quanta);
>  
>  /* Set default error fqid on specific interface */
> @@ -99,35 +117,44 @@ void fman_if_set_err_fqid(struct fman_if *fm_if, uint32_t err_fqid);
>  int fman_if_get_ic_params(struct fman_if *fm_if, struct fman_if_ic_params *icp);
>  
>  /* Set IC transfer params */
> +__rte_internal
>  int fman_if_set_ic_params(struct fman_if *fm_if,
>  			  const struct fman_if_ic_params *icp);
>  
>  /* Get interface fd->offset value */
> +__rte_internal
>  int fman_if_get_fdoff(struct fman_if *fm_if);
>  
>  /* Set interface fd->offset value */
> +__rte_internal
>  void fman_if_set_fdoff(struct fman_if *fm_if, uint32_t fd_offset);
>  
>  /* Get interface SG enable status value */
> +__rte_internal
>  int fman_if_get_sg_enable(struct fman_if *fm_if);
>  
>  /* Set interface SG support mode */
> +__rte_internal
>  void fman_if_set_sg(struct fman_if *fm_if, int enable);
>  
>  /* Get interface Max Frame length (MTU) */
>  uint16_t fman_if_get_maxfrm(struct fman_if *fm_if);
>  
>  /* Set interface  Max Frame length (MTU) */
> +__rte_internal
>  void fman_if_set_maxfrm(struct fman_if *fm_if, uint16_t max_frm);
>  
>  /* Set interface next invoked action for dequeue operation */
>  void fman_if_set_dnia(struct fman_if *fm_if, uint32_t nia);
>  
>  /* discard error packets on rx */
> +__rte_internal
>  void fman_if_discard_rx_errors(struct fman_if *fm_if);
>  
> +__rte_internal
>  void fman_if_set_mcast_filter_table(struct fman_if *p);
>  
> +__rte_internal
>  void fman_if_reset_mcast_filter_table(struct fman_if *p);
>  
>  int fman_if_add_hash_mac_addr(struct fman_if *p, uint8_t *eth);
> diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
> index 1b3342e7e6..4411bb0a79 100644
> --- a/drivers/bus/dpaa/include/fsl_qman.h
> +++ b/drivers/bus/dpaa/include/fsl_qman.h
> @@ -1314,6 +1314,7 @@ struct qman_cgr {
>  #define QMAN_CGR_MODE_FRAME          0x00000001
>  
>  #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
> +__rte_internal
>  void qman_set_fq_lookup_table(void **table);
>  #endif
>  
> @@ -1322,6 +1323,7 @@ void qman_set_fq_lookup_table(void **table);
>   */
>  int qman_get_portal_index(void);
>  
> +__rte_internal
>  u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
>  			void **bufs);
>  
> @@ -1333,6 +1335,7 @@ u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
>   * processed via qman_poll_***() functions). Returns zero for success, or
>   * -EINVAL if the current CPU is sharing a portal hosted on another CPU.
>   */
> +__rte_internal
>  int qman_irqsource_add(u32 bits);
>  
>  /**
> @@ -1340,6 +1343,7 @@ int qman_irqsource_add(u32 bits);
>   * takes portal (fq specific) as input rather than using the thread affined
>   * portal.
>   */
> +__rte_internal
>  int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
>  
>  /**
> @@ -1350,6 +1354,7 @@ int qman_fq_portal_irqsource_add(struct qman_portal *p, u32 bits);
>   * instead be processed via qman_poll_***() functions. Returns zero for success,
>   * or -EINVAL if the current CPU is sharing a portal hosted on another CPU.
>   */
> +__rte_internal
>  int qman_irqsource_remove(u32 bits);
>  
>  /**
> @@ -1357,6 +1362,7 @@ int qman_irqsource_remove(u32 bits);
>   * takes portal (fq specific) as input rather than using the thread affined
>   * portal.
>   */
> +__rte_internal
>  int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
>  
>  /**
> @@ -1369,6 +1375,7 @@ int qman_fq_portal_irqsource_remove(struct qman_portal *p, u32 bits);
>   */
>  u16 qman_affine_channel(int cpu);
>  
> +__rte_internal
>  unsigned int qman_portal_poll_rx(unsigned int poll_limit,
>  				 void **bufs, struct qman_portal *q);
>  
> @@ -1380,6 +1387,7 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
>   *
>   * This function will issue a volatile dequeue command to the QMAN.
>   */
> +__rte_internal
>  int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
>  
>  /**
> @@ -1390,6 +1398,7 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags);
>   * is issued. It will keep returning NULL until there is no packet available on
>   * the DQRR.
>   */
> +__rte_internal
>  struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
>  
>  /**
> @@ -1401,6 +1410,7 @@ struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq);
>   * This will consume the DQRR enrey and make it available for next volatile
>   * dequeue.
>   */
> +__rte_internal
>  void qman_dqrr_consume(struct qman_fq *fq,
>  		       struct qm_dqrr_entry *dq);
>  
> @@ -1414,6 +1424,7 @@ void qman_dqrr_consume(struct qman_fq *fq,
>   * this function will return -EINVAL, otherwise the return value is >=0 and
>   * represents the number of DQRR entries processed.
>   */
> +__rte_internal
>  int qman_poll_dqrr(unsigned int limit);
>  
>  /**
> @@ -1460,6 +1471,7 @@ void qman_start_dequeues(void);
>   * (SDQCR). The requested pools are limited to those the portal has dequeue
>   * access to.
>   */
> +__rte_internal
>  void qman_static_dequeue_add(u32 pools, struct qman_portal *qm);
>  
>  /**
> @@ -1507,6 +1519,7 @@ void qman_dca(const struct qm_dqrr_entry *dq, int park_request);
>   * function must be called from the same CPU as that which processed the DQRR
>   * entry in the first place.
>   */
> +__rte_internal
>  void qman_dca_index(u8 index, int park_request);
>  
>  /**
> @@ -1564,6 +1577,7 @@ void qman_set_dc_ern(qman_cb_dc_ern handler, int affine);
>   * a frame queue object based on that, rather than assuming/requiring that it be
>   * Out of Service.
>   */
> +__rte_internal
>  int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq);
>  
>  /**
> @@ -1582,6 +1596,7 @@ void qman_destroy_fq(struct qman_fq *fq, u32 flags);
>   * qman_fq_fqid - Queries the frame queue ID of a FQ object
>   * @fq: the frame queue object to query
>   */
> +__rte_internal
>  u32 qman_fq_fqid(struct qman_fq *fq);
>  
>  /**
> @@ -1594,6 +1609,7 @@ u32 qman_fq_fqid(struct qman_fq *fq);
>   * This captures the state, as seen by the driver, at the time the function
>   * executes.
>   */
> +__rte_internal
>  void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
>  
>  /**
> @@ -1630,6 +1646,7 @@ void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags);
>   * context_a.address fields and will leave the stashing fields provided by the
>   * user alone, otherwise it will zero out the context_a.stashing fields.
>   */
> +__rte_internal
>  int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts);
>  
>  /**
> @@ -1659,6 +1676,7 @@ int qman_schedule_fq(struct qman_fq *fq);
>   * caller should be prepared to accept the callback as the function is called,
>   * not only once it has returned.
>   */
> +__rte_internal
>  int qman_retire_fq(struct qman_fq *fq, u32 *flags);
>  
>  /**
> @@ -1668,6 +1686,7 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags);
>   * The frame queue must be retired and empty, and if any order restoration list
>   * was released as ERNs at the time of retirement, they must all be consumed.
>   */
> +__rte_internal
>  int qman_oos_fq(struct qman_fq *fq);
>  
>  /**
> @@ -1701,6 +1720,7 @@ int qman_query_fq_has_pkts(struct qman_fq *fq);
>   * @fq: the frame queue object to be queried
>   * @np: storage for the queried FQD fields
>   */
> +__rte_internal
>  int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
>  
>  /**
> @@ -1708,6 +1728,7 @@ int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np);
>   * @fq: the frame queue object to be queried
>   * @frm_cnt: number of frames in the queue
>   */
> +__rte_internal
>  int qman_query_fq_frm_cnt(struct qman_fq *fq, u32 *frm_cnt);
>  
>  /**
> @@ -1738,6 +1759,7 @@ int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq);
>   * callback, or by waiting for the QMAN_FQ_STATE_VDQCR bit to disappear from the
>   * "flags" retrieved from qman_fq_state().
>   */
> +__rte_internal
>  int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
>  
>  /**
> @@ -1773,8 +1795,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags, u32 vdqcr);
>   * of an already busy hardware resource by throttling many of the to-be-dropped
>   * enqueues "at the source".
>   */
> +__rte_internal
>  int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags);
>  
> +__rte_internal
>  int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
>  		       int frames_to_send);
>  
> @@ -1788,6 +1812,7 @@ int qman_enqueue_multi(struct qman_fq *fq, const struct qm_fd *fd, u32 *flags,
>   * This API is similar to qman_enqueue_multi(), but it takes fd which needs
>   * to be processed by different frame queues.
>   */
> +__rte_internal
>  int
>  qman_enqueue_multi_fq(struct qman_fq *fq[], const struct qm_fd *fd,
>  		      u32 *flags, int frames_to_send);
> @@ -1876,6 +1901,7 @@ int qman_shutdown_fq(u32 fqid);
>   * @fqid: the base FQID of the range to deallocate
>   * @count: the number of FQIDs in the range
>   */
> +__rte_internal
>  int qman_reserve_fqid_range(u32 fqid, unsigned int count);
>  static inline int qman_reserve_fqid(u32 fqid)
>  {
> @@ -1895,6 +1921,7 @@ static inline int qman_reserve_fqid(u32 fqid)
>   * than requested (though alignment will be as requested). If @partial is zero,
>   * the return value will either be 'count' or negative.
>   */
> +__rte_internal
>  int qman_alloc_pool_range(u32 *result, u32 count, u32 align, int partial);
>  static inline int qman_alloc_pool(u32 *result)
>  {
> @@ -1942,6 +1969,7 @@ void qman_seed_pool_range(u32 id, unsigned int count);
>   * any unspecified parameters) will be used rather than a modify hw hardware
>   * (which only modifies the specified parameters).
>   */
> +__rte_internal
>  int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
>  		    struct qm_mcc_initcgr *opts);
>  
> @@ -1964,6 +1992,7 @@ int qman_create_cgr_to_dcp(struct qman_cgr *cgr, u32 flags, u16 dcp_portal,
>   * is executed. This must be excuted on the same affine portal on which it was
>   * created.
>   */
> +__rte_internal
>  int qman_delete_cgr(struct qman_cgr *cgr);
>  
>  /**
> @@ -1980,6 +2009,7 @@ int qman_delete_cgr(struct qman_cgr *cgr);
>   * unspecified parameters) will be used rather than a modify hw hardware (which
>   * only modifies the specified parameters).
>   */
> +__rte_internal
>  int qman_modify_cgr(struct qman_cgr *cgr, u32 flags,
>  		    struct qm_mcc_initcgr *opts);
>  
> @@ -2008,6 +2038,7 @@ int qman_query_congestion(struct qm_mcr_querycongestion *congestion);
>   * than requested (though alignment will be as requested). If @partial is zero,
>   * the return value will either be 'count' or negative.
>   */
> +__rte_internal
>  int qman_alloc_cgrid_range(u32 *result, u32 count, u32 align, int partial);
>  static inline int qman_alloc_cgrid(u32 *result)
>  {
> @@ -2021,6 +2052,7 @@ static inline int qman_alloc_cgrid(u32 *result)
>   * @id: the base CGR ID of the range to deallocate
>   * @count: the number of CGR IDs in the range
>   */
> +__rte_internal
>  void qman_release_cgrid_range(u32 id, unsigned int count);
>  static inline void qman_release_cgrid(u32 id)
>  {
> diff --git a/drivers/bus/dpaa/include/fsl_usd.h b/drivers/bus/dpaa/include/fsl_usd.h
> index 263d9bb976..dcf35e4adb 100644
> --- a/drivers/bus/dpaa/include/fsl_usd.h
> +++ b/drivers/bus/dpaa/include/fsl_usd.h
> @@ -58,6 +58,7 @@ int bman_allocate_raw_portal(struct dpaa_raw_portal *portal);
>  int bman_free_raw_portal(struct dpaa_raw_portal *portal);
>  
>  /* Obtain thread-local UIO file-descriptors */
> +__rte_internal
>  int qman_thread_fd(void);
>  int bman_thread_fd(void);
>  
> @@ -66,10 +67,14 @@ int bman_thread_fd(void);
>   * processing is complete. As such, it is essential to call this before going
>   * into another blocking read/select/poll.
>   */
> +__rte_internal
>  void qman_thread_irq(void);
> +
> +__rte_internal
>  void bman_thread_irq(void);
> +__rte_internal
>  void qman_fq_portal_thread_irq(struct qman_portal *qp);
> -
> +__rte_internal
>  void qman_clear_irq(void);
>  
>  /* Global setup */
> @@ -77,6 +82,7 @@ int qman_global_init(void);
>  int bman_global_init(void);
>  
>  /* Direct portal create and destroy */
> +__rte_internal
>  struct qman_portal *fsl_qman_fq_portal_create(int *fd);
>  int fsl_qman_fq_portal_destroy(struct qman_portal *qp);
>  int fsl_qman_fq_portal_init(struct qman_portal *qp);
> diff --git a/drivers/bus/dpaa/include/netcfg.h b/drivers/bus/dpaa/include/netcfg.h
> index bf7bfae8cb..d7d1befd24 100644
> --- a/drivers/bus/dpaa/include/netcfg.h
> +++ b/drivers/bus/dpaa/include/netcfg.h
> @@ -46,11 +46,13 @@ struct netcfg_interface {
>   * cfg_file: FMC config XML file
>   * Returns the configuration information in newly allocated memory.
>   */
> +__rte_internal
>  struct netcfg_info *netcfg_acquire(void);
>  
>  /* cfg_ptr: configuration information pointer.
>   * Frees the resources allocated by the configuration layer.
>   */
> +__rte_internal
>  void netcfg_release(struct netcfg_info *cfg_ptr);
>  
>  #ifdef RTE_LIBRTE_DPAA_DEBUG_DRIVER
> diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
> index e6ca4361e0..53732289d3 100644
> --- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
> +++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
> @@ -1,4 +1,8 @@
>  DPDK_20.0 {
> +	local: *;
> +};
> +
> +INTERNAL {
>  	global:
>  
>  	bman_acquire;
> @@ -13,7 +17,6 @@ DPDK_20.0 {
>  	dpaa_logtype_pmd;
>  	dpaa_netcfg;
>  	dpaa_svr_family;
> -	fman_ccsr_map_fd;
>  	fman_dealloc_bufs_mask_hi;
>  	fman_dealloc_bufs_mask_lo;
>  	fman_if_add_mac_addr;
> @@ -87,10 +90,7 @@ DPDK_20.0 {
>  	qman_volatile_dequeue;
>  	rte_dpaa_driver_register;
>  	rte_dpaa_driver_unregister;
> -	rte_dpaa_mem_ptov;
>  	rte_dpaa_portal_fq_close;
>  	rte_dpaa_portal_fq_init;
>  	rte_dpaa_portal_init;
> -
> -	local: *;
>  };
> diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
> index 373aca9785..d4aee132ef 100644
> --- a/drivers/bus/dpaa/rte_dpaa_bus.h
> +++ b/drivers/bus/dpaa/rte_dpaa_bus.h
> @@ -158,6 +158,7 @@ rte_dpaa_mem_vtop(void *vaddr)
>   *   A pointer to a rte_dpaa_driver structure describing the driver
>   *   to be registered.
>   */
> +__rte_internal
>  void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
>  
>  /**
> @@ -167,6 +168,7 @@ void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
>   *	A pointer to a rte_dpaa_driver structure describing the driver
>   *	to be unregistered.
>   */
> +__rte_internal
>  void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
>  
>  /**
> @@ -178,10 +180,13 @@ void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
>   * @return
>   *	0 in case of success, error otherwise
>   */
> +__rte_internal
>  int rte_dpaa_portal_init(void *arg);
>  
> +__rte_internal
>  int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
>  
> +__rte_internal
>  int rte_dpaa_portal_fq_close(struct qman_fq *fq);
>  
>  /**
> 
Acked-by: Ray Kinsella <mdr@ashroe.eu>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: " Hemant Agrawal
@ 2020-05-19 11:03           ` Ray Kinsella
  2020-05-19 11:16             ` Hemant Agrawal
  0 siblings, 1 reply; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:03 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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                        | 8 ++++++++
>  drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 6 ++++--
>  drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
>  drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
>  4 files changed, 20 insertions(+), 4 deletions(-)
> 
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
> index ab34302d0c..42f9469221 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -55,3 +55,11 @@
>  	file_name_regexp = ^librte_bus_fslmc\.
>  [suppress_file]
>  	file_name_regexp = ^librte_bus_dpaa\.
> +[suppress_function]
> +	name = rte_dpaa2_mbuf_alloc_bulk
> +[suppress_variable]
> +	name_regexp = ^rte_dpaa_memsegs
> +[suppress_variable]
> +	name_regexp = ^rte_dpaa_bpid_info
> +[suppress_variable]
> +	name_regexp = ^rte_dpaa2_bpid_info

Is there a specific reason you are using name_regexp here.
There is only a single variable involved in each case - would "name" not work equally as well?

> diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> index 9eebaf7ffd..89d7cf4957 100644
> --- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> +++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> @@ -1,8 +1,10 @@
>  DPDK_20.0 {
> +	local: *;
> +};
> +
> +INTERNAL {
>  	global:
>  
>  	rte_dpaa_bpid_info;
>  	rte_dpaa_memsegs;
> -
> -	local: *;
>  };
> diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> index fa0f2280d5..53fa1552d1 100644
> --- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> +++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> @@ -61,6 +61,7 @@ struct dpaa2_bp_info {
>  
>  extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
>  
> +__rte_internal
>  int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
>  		       void **obj_table, unsigned int count);
>  
> diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> index cd4bc88273..686b024624 100644
> --- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> +++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> @@ -1,10 +1,15 @@
>  DPDK_20.0 {
>  	global:
>  
> -	rte_dpaa2_bpid_info;
> -	rte_dpaa2_mbuf_alloc_bulk;
>  	rte_dpaa2_mbuf_from_buf_addr;
>  	rte_dpaa2_mbuf_pool_bpid;
>  
>  	local: *;
>  };
> +
> +INTERNAL {
> +	global:
> +
> +	rte_dpaa2_bpid_info;
> +	rte_dpaa2_mbuf_alloc_bulk;
> +};
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 05/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 05/13] net/dpaa: " Hemant Agrawal
@ 2020-05-19 11:14           ` Ray Kinsella
  2020-05-19 11:39             ` Hemant Agrawal
  0 siblings, 1 reply; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:14 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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              | 2 ++
>  drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
>  drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
>  3 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore
> index 42f9469221..7b6358c394 100644
> --- a/devtools/libabigail.abignore
> +++ b/devtools/libabigail.abignore
> @@ -63,3 +63,5 @@
>  	name_regexp = ^rte_dpaa_bpid_info
>  [suppress_variable]
>  	name_regexp = ^rte_dpaa2_bpid_info
> +[suppress_function]
> +        name_regexp = ^dpaa

This rule ends up being very general 
Could we do something more specific like ... 

^dpaa_\.attach

it should catch

dpaa_eth_eventq_attach;
dpaa_eth_eventq_detach;
dpaa2_eth_eventq_attach;
dpaa2_eth_eventq_detach;

which is I think, what you are after.

> diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
> index af9fc2105d..7393a9df05 100644
> --- a/drivers/net/dpaa/dpaa_ethdev.h
> +++ b/drivers/net/dpaa/dpaa_ethdev.h
> @@ -160,12 +160,14 @@ struct dpaa_if_stats {
>  	uint64_t tund;		/**<Tx Undersized */
>  };
>  
> +__rte_internal
>  int
>  dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
>  		int eth_rx_queue_id,
>  		u16 ch_id,
>  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
>  
> +__rte_internal
>  int
>  dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
>  			   int eth_rx_queue_id);
> diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map
> index f403a1526d..774aa0de45 100644
> --- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
> +++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
> @@ -1,9 +1,14 @@
>  DPDK_20.0 {
>  	global:
>  
> -	dpaa_eth_eventq_attach;
> -	dpaa_eth_eventq_detach;
>  	rte_pmd_dpaa_set_tx_loopback;
>  
>  	local: *;
>  };
> +
> +INTERNAL {
> +	global:
> +
> +	dpaa_eth_eventq_attach;
> +	dpaa_eth_eventq_detach;
> +};
> 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 06/13] net/dpaa2: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 06/13] net/dpaa2: " Hemant Agrawal
@ 2020-05-19 11:15           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:15 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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>
> ---
>  drivers/net/dpaa2/dpaa2_ethdev.h            |  2 ++
>  drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 12 +++++++-----
>  2 files changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
> index 2c49a7f01f..c7fb6539ff 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.h
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.h
> @@ -164,11 +164,13 @@ int dpaa2_remove_flow_dist(struct rte_eth_dev *eth_dev,
>  
>  int dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, void *blist);
>  
> +__rte_internal
>  int dpaa2_eth_eventq_attach(const struct rte_eth_dev *dev,
>  		int eth_rx_queue_id,
>  		struct dpaa2_dpcon_dev *dpcon,
>  		const struct rte_event_eth_rx_adapter_queue_conf *queue_conf);
>  
> +__rte_internal
>  int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
>  		int eth_rx_queue_id);
>  
> diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
> index f2bb793319..b633fdc2a8 100644
> --- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
> +++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map
> @@ -1,9 +1,4 @@
>  DPDK_20.0 {
> -	global:
> -
> -	dpaa2_eth_eventq_attach;
> -	dpaa2_eth_eventq_detach;
> -
>  	local: *;
>  };
>  
> @@ -14,3 +9,10 @@ EXPERIMENTAL {
>  	rte_pmd_dpaa2_set_custom_hash;
>  	rte_pmd_dpaa2_set_timestamp;
>  };
> +
> +INTERNAL {
> +	global:
> +
> +	dpaa2_eth_eventq_attach;
> +	dpaa2_eth_eventq_detach;
> +};
> 

As comments on [PATCH v8 05/13]

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-19 11:03           ` Ray Kinsella
@ 2020-05-19 11:16             ` Hemant Agrawal
  2020-05-19 11:30               ` Ray Kinsella
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-19 11:16 UTC (permalink / raw)
  To: Ray Kinsella, dev, david.marchand

 
> 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                        | 8 ++++++++
> >  drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 6 ++++--
> >  drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
> >  drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
> >  4 files changed, 20 insertions(+), 4 deletions(-)
> >
> > diff --git a/devtools/libabigail.abignore
> > b/devtools/libabigail.abignore index ab34302d0c..42f9469221 100644
> > --- a/devtools/libabigail.abignore
> > +++ b/devtools/libabigail.abignore
> > @@ -55,3 +55,11 @@
> >  	file_name_regexp = ^librte_bus_fslmc\.
> >  [suppress_file]
> >  	file_name_regexp = ^librte_bus_dpaa\.
> > +[suppress_function]
> > +	name = rte_dpaa2_mbuf_alloc_bulk
> > +[suppress_variable]
> > +	name_regexp = ^rte_dpaa_memsegs
> > +[suppress_variable]
> > +	name_regexp = ^rte_dpaa_bpid_info
> > +[suppress_variable]
> > +	name_regexp = ^rte_dpaa2_bpid_info
> 
> Is there a specific reason you are using name_regexp here.
> There is only a single variable involved in each case - would "name" not work
> equally as well?

[Hemant]  I remember getting some errors in case of variables. But now name is also working ok.
So, yes, name will also work in this case.
If I need to do a next version of this series, I will improve it. Is that ok for you?


> 
> > diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> > b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> > index 9eebaf7ffd..89d7cf4957 100644
> > --- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> > +++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
> > @@ -1,8 +1,10 @@
> >  DPDK_20.0 {
> > +	local: *;
> > +};
> > +
> > +INTERNAL {
> >  	global:
> >
> >  	rte_dpaa_bpid_info;
> >  	rte_dpaa_memsegs;
> > -
> > -	local: *;
> >  };
> > diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> > b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> > index fa0f2280d5..53fa1552d1 100644
> > --- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> > +++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
> > @@ -61,6 +61,7 @@ struct dpaa2_bp_info {
> >
> >  extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
> >
> > +__rte_internal
> >  int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
> >  		       void **obj_table, unsigned int count);
> >
> > diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> > b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> > index cd4bc88273..686b024624 100644
> > --- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> > +++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
> > @@ -1,10 +1,15 @@
> >  DPDK_20.0 {
> >  	global:
> >
> > -	rte_dpaa2_bpid_info;
> > -	rte_dpaa2_mbuf_alloc_bulk;
> >  	rte_dpaa2_mbuf_from_buf_addr;
> >  	rte_dpaa2_mbuf_pool_bpid;
> >
> >  	local: *;
> >  };
> > +
> > +INTERNAL {
> > +	global:
> > +
> > +	rte_dpaa2_bpid_info;
> > +	rte_dpaa2_mbuf_alloc_bulk;
> > +};
> >

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 07/13] crypto: move internal symbols into INTERNAL section
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 07/13] crypto: " Hemant Agrawal
@ 2020-05-19 11:17           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:17 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



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>
> ---
>  drivers/crypto/dpaa2_sec/dpaa2_sec_event.h             | 5 +++--
>  drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 6 ++++--
>  drivers/crypto/dpaa_sec/dpaa_sec_event.h               | 8 ++++----
>  drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map   | 6 ++++--
>  4 files changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
> index c779d5d837..675cbbb81d 100644
> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_event.h
> @@ -6,12 +6,13 @@
>  #ifndef _DPAA2_SEC_EVENT_H_
>  #define _DPAA2_SEC_EVENT_H_
>  
> -int
> -dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
> +__rte_internal
> +int dpaa2_sec_eventq_attach(const struct rte_cryptodev *dev,
>  		int qp_id,
>  		struct dpaa2_dpcon_dev *dpcon,
>  		const struct rte_event *event);
>  
> +__rte_internal
>  int dpaa2_sec_eventq_detach(const struct rte_cryptodev *dev,
>  		int qp_id);
>  
> diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
> index 5952d645fd..3d863aff4d 100644
> --- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
> +++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map
> @@ -1,8 +1,10 @@
>  DPDK_20.0 {
> +	local: *;
> +};
> +
> +INTERNAL {
>  	global:
>  
>  	dpaa2_sec_eventq_attach;
>  	dpaa2_sec_eventq_detach;
> -
> -	local: *;
>  };
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec_event.h b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
> index 8d1a018096..0b09fa8f75 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec_event.h
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec_event.h
> @@ -6,14 +6,14 @@
>  #ifndef _DPAA_SEC_EVENT_H_
>  #define _DPAA_SEC_EVENT_H_
>  
> -int
> -dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
> +__rte_internal
> +int dpaa_sec_eventq_attach(const struct rte_cryptodev *dev,
>  		int qp_id,
>  		uint16_t ch_id,
>  		const struct rte_event *event);
>  
> -int
> -dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
> +__rte_internal
> +int dpaa_sec_eventq_detach(const struct rte_cryptodev *dev,
>  		int qp_id);
>  
>  #endif /* _DPAA_SEC_EVENT_H_ */
> diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
> index 8580fa13db..023e120516 100644
> --- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
> +++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map
> @@ -1,8 +1,10 @@
>  DPDK_20.0 {
> +	local: *;
> +};
> +
> +INTERNAL {
>  	global:
>  
>  	dpaa_sec_eventq_attach;
>  	dpaa_sec_eventq_detach;
> -
> -	local: *;
>  };
> 

As comments on [PATCH v8 05/13]

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 08/13] mempool/dpaa2: fix to add the include file
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
@ 2020-05-19 11:18           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:18 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand; +Cc: stable



On 15/05/2020 10:47, Hemant Agrawal wrote:
> rte_dpaa2_mempool.h header was missed to be
> added in meson.build for header installation.
> 
> Fixes: 7ed359909556 ("mempool/dpaa2: add functions for CMDIF")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  drivers/mempool/dpaa2/meson.build | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
> index df299a0456..c3f479afa1 100644
> --- a/drivers/mempool/dpaa2/meson.build
> +++ b/drivers/mempool/dpaa2/meson.build
> @@ -8,3 +8,5 @@ endif
>  
>  deps += ['bus_fslmc']
>  sources = files('dpaa2_hw_mempool.c')
> +
> +install_headers('rte_dpaa2_mempool.h')
> 
Acked-by: Ray Kinsella <mdr@ashroe.eu>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 09/13] bus/dpaa: share qman portal ids as function calls
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
@ 2020-05-19 11:20           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:20 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



On 15/05/2020 10:47, Hemant Agrawal wrote:
> qman caam and pool portal ids are only used in control
> path. This patch changes their inter library access to
> function call instead of direct shared variable.
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  drivers/bus/dpaa/base/qbman/qman_driver.c | 10 ++++++++++
>  drivers/bus/dpaa/include/fsl_qman.h       |  8 +++++++-
>  drivers/bus/dpaa/rte_bus_dpaa_version.map |  4 ++--
>  drivers/crypto/dpaa_sec/dpaa_sec.c        |  2 +-
>  4 files changed, 20 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/bus/dpaa/base/qbman/qman_driver.c b/drivers/bus/dpaa/base/qbman/qman_driver.c
> index 69244ef701..1166d68e21 100644
> --- a/drivers/bus/dpaa/base/qbman/qman_driver.c
> +++ b/drivers/bus/dpaa/base/qbman/qman_driver.c
> @@ -30,6 +30,16 @@ static __thread struct dpaa_ioctl_portal_map map = {
>  	.type = dpaa_portal_qman
>  };
>  
> +u16 dpaa_get_qm_channel_caam(void)
> +{
> +	return qm_channel_caam;
> +}
> +
> +u16 dpaa_get_qm_channel_pool(void)
> +{
> +	return qm_channel_pool1;
> +}
> +
>  static int fsl_qman_portal_init(uint32_t index, int is_shared)
>  {
>  	struct qman_portal *portal;
> diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h
> index 4411bb0a79..78b698f393 100644
> --- a/drivers/bus/dpaa/include/fsl_qman.h
> +++ b/drivers/bus/dpaa/include/fsl_qman.h
> @@ -44,6 +44,12 @@ enum qm_dc_portal {
>  	qm_dc_portal_pme = 3
>  };
>  
> +__rte_internal
> +u16 dpaa_get_qm_channel_caam(void);
> +
> +__rte_internal
> +u16 dpaa_get_qm_channel_pool(void);
> +
>  /* Portal processing (interrupt) sources */
>  #define QM_PIRQ_CCSCI	0x00200000	/* CEETM Congestion State Change */
>  #define QM_PIRQ_CSCI	0x00100000	/* Congestion State Change */
> @@ -65,7 +71,7 @@ enum qm_dc_portal {
>  /* for conversion from n of qm_channel */
>  static inline u32 QM_SDQCR_CHANNELS_POOL_CONV(u16 channel)
>  {
> -	return QM_SDQCR_CHANNELS_POOL(channel + 1 - qm_channel_pool1);
> +	return QM_SDQCR_CHANNELS_POOL(channel + 1 - dpaa_get_qm_channel_pool());
>  }
>  
>  /* For qman_volatile_dequeue(); Choose one PRECEDENCE. EXACT is optional. Use
> diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
> index 53732289d3..8bb2757e04 100644
> --- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
> +++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
> @@ -12,6 +12,8 @@ INTERNAL {
>  	bman_query_free_buffers;
>  	bman_release;
>  	bman_thread_irq;
> +	dpaa_get_qm_channel_caam;
> +	dpaa_get_qm_channel_pool;
>  	dpaa_logtype_eventdev;
>  	dpaa_logtype_mempool;
>  	dpaa_logtype_pmd;
> @@ -50,8 +52,6 @@ INTERNAL {
>  	netcfg_release;
>  	per_lcore_dpaa_io;
>  	per_lcore_held_bufs;
> -	qm_channel_caam;
> -	qm_channel_pool1;
>  	qman_alloc_cgrid_range;
>  	qman_alloc_pool_range;
>  	qman_clear_irq;
> diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
> index 25dcbd259a..4af9024a00 100644
> --- a/drivers/crypto/dpaa_sec/dpaa_sec.c
> +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
> @@ -123,7 +123,7 @@ dpaa_sec_init_rx(struct qman_fq *fq_in, rte_iova_t hwdesc,
>  
>  	qm_fqd_context_a_set64(&fq_opts.fqd, hwdesc);
>  	fq_opts.fqd.context_b = fqid_out;
> -	fq_opts.fqd.dest.channel = qm_channel_caam;
> +	fq_opts.fqd.dest.channel = dpaa_get_qm_channel_caam();
>  	fq_opts.fqd.dest.wq = 0;
>  
>  	fq_in->cb.ern  = ern_sec_fq_handler;
>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
 

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 11/13] bus/dpaa: change netcfg access as function
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
@ 2020-05-19 11:22           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:22 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



On 15/05/2020 10:47, Hemant Agrawal wrote:
> This patch changes the export of fman port config
> as function call instead of direct variable access.
> This is in control path, so it will not impact perf.
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  drivers/bus/dpaa/dpaa_bus.c               | 6 ++++++
>  drivers/bus/dpaa/rte_bus_dpaa_version.map | 1 +
>  drivers/bus/dpaa/rte_dpaa_bus.h           | 6 +++---
>  drivers/net/dpaa/dpaa_ethdev.c            | 2 +-
>  4 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
> index 41d42b0c30..d53fe6083a 100644
> --- a/drivers/bus/dpaa/dpaa_bus.c
> +++ b/drivers/bus/dpaa/dpaa_bus.c
> @@ -57,6 +57,12 @@ unsigned int dpaa_svr_family;
>  RTE_DEFINE_PER_LCORE(bool, dpaa_io);
>  RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
>  
> +struct fm_eth_port_cfg *
> +dpaa_get_eth_port_cfg(int dev_id)
> +{
> +	return &dpaa_netcfg->port_cfg[dev_id];
> +}
> +
>  static int
>  compare_dpaa_devices(struct rte_dpaa_device *dev1,
>  		     struct rte_dpaa_device *dev2)
> diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map
> index e53e8fa222..46d42f7d64 100644
> --- a/drivers/bus/dpaa/rte_bus_dpaa_version.map
> +++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map
> @@ -12,6 +12,7 @@ INTERNAL {
>  	bman_query_free_buffers;
>  	bman_release;
>  	bman_thread_irq;
> +	dpaa_get_eth_port_cfg;
>  	dpaa_get_qm_channel_caam;
>  	dpaa_get_qm_channel_pool;
>  	dpaa_svr_family;
> diff --git a/drivers/bus/dpaa/rte_dpaa_bus.h b/drivers/bus/dpaa/rte_dpaa_bus.h
> index d4aee132ef..2a186d83fb 100644
> --- a/drivers/bus/dpaa/rte_dpaa_bus.h
> +++ b/drivers/bus/dpaa/rte_dpaa_bus.h
> @@ -44,9 +44,6 @@ struct rte_dpaa_driver;
>  TAILQ_HEAD(rte_dpaa_device_list, rte_dpaa_device);
>  TAILQ_HEAD(rte_dpaa_driver_list, rte_dpaa_driver);
>  
> -/* Configuration variables exported from DPAA bus */
> -extern struct netcfg_info *dpaa_netcfg;
> -
>  enum rte_dpaa_type {
>  	FSL_DPAA_ETH = 1,
>  	FSL_DPAA_CRYPTO,
> @@ -217,6 +214,9 @@ RTE_DECLARE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs);
>  #define DPAA_PER_LCORE_DQRR_HELD       RTE_PER_LCORE(held_bufs).dqrr_held
>  #define DPAA_PER_LCORE_DQRR_MBUF(i)    RTE_PER_LCORE(held_bufs).mbuf[i]
>  
> +__rte_internal
> +struct fm_eth_port_cfg *dpaa_get_eth_port_cfg(int dev_id);
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
> index c97f3042be..13d1c6a1fc 100644
> --- a/drivers/net/dpaa/dpaa_ethdev.c
> +++ b/drivers/net/dpaa/dpaa_ethdev.c
> @@ -1332,7 +1332,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
>  	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
>  	dev_id = dpaa_device->id.dev_id;
>  	dpaa_intf = eth_dev->data->dev_private;
> -	cfg = &dpaa_netcfg->port_cfg[dev_id];
> +	cfg = dpaa_get_eth_port_cfg(dev_id);
>  	fman_intf = cfg->fman_if;
>  
>  	dpaa_intf->name = dpaa_device->name;
> 
Acked-by: Ray Kinsella <mdr@ashroe.eu>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
@ 2020-05-19 11:26           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:26 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



On 15/05/2020 10:47, Hemant Agrawal wrote:
> Currently rte_mcp_ptr_list is being shared as a variable
> across libs. This is only used in control path.
> This patch change it to a exported function based access.
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  drivers/bus/fslmc/fslmc_vfio.c              | 15 ++++++++++++---
>  drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  2 +-
>  drivers/bus/fslmc/portal/dpaa2_hw_dpci.c    |  2 +-
>  drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  2 +-
>  drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  7 ++++---
>  drivers/bus/fslmc/rte_bus_fslmc_version.map |  2 +-
>  drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c |  2 +-
>  drivers/event/dpaa2/dpaa2_hw_dpcon.c        |  2 +-
>  drivers/net/dpaa2/dpaa2_ethdev.c            |  2 +-
>  drivers/net/dpaa2/dpaa2_mux.c               |  2 +-
>  drivers/net/dpaa2/dpaa2_ptp.c               |  2 +-
>  drivers/raw/dpaa2_qdma/dpaa2_qdma.c         |  2 +-
>  12 files changed, 26 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
> index 970969d2bf..efe2c43d37 100644
> --- a/drivers/bus/fslmc/fslmc_vfio.c
> +++ b/drivers/bus/fslmc/fslmc_vfio.c
> @@ -51,6 +51,15 @@ static int fslmc_iommu_type;
>  static uint32_t *msi_intr_vaddr;
>  void *(*rte_mcp_ptr_list);
>  
> +void *
> +dpaa2_get_mcp_ptr(int portal_idx)
> +{
> +	if (rte_mcp_ptr_list)
> +		return rte_mcp_ptr_list[portal_idx];
> +	else
> +		return NULL;
> +}
> +
>  static struct rte_dpaa2_object_list dpaa2_obj_list =
>  	TAILQ_HEAD_INITIALIZER(dpaa2_obj_list);
>  
> @@ -734,7 +743,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
>  	struct fsl_mc_io dpmng  = {0};
>  	struct mc_version mc_ver_info = {0};
>  
> -	rte_mcp_ptr_list = malloc(sizeof(void *) * 1);
> +	rte_mcp_ptr_list = malloc(sizeof(void *) * (MC_PORTAL_INDEX + 1));
>  	if (!rte_mcp_ptr_list) {
>  		DPAA2_BUS_ERR("Unable to allocate MC portal memory");
>  		ret = -ENOMEM;
> @@ -762,7 +771,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
>  	 * required.
>  	 */
>  	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
> -		rte_mcp_ptr_list[0] = (void *)v_addr;
> +		rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
>  		return 0;
>  	}
>  
> @@ -782,7 +791,7 @@ fslmc_process_mcp(struct rte_dpaa2_device *dev)
>  		ret = -1;
>  		goto cleanup;
>  	}
> -	rte_mcp_ptr_list[0] = (void *)v_addr;
> +	rte_mcp_ptr_list[MC_PORTAL_INDEX] = (void *)v_addr;
>  
>  	free(dev_name);
>  	return 0;
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
> index db49d637f5..79b148f20b 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
> @@ -56,7 +56,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
>  	}
>  
>  	/* Open the dpbp object */
> -	dpbp_node->dpbp.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dpbp_node->dpbp.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	ret = dpbp_open(&dpbp_node->dpbp,
>  			CMD_PRI_LOW, dpbp_id, &dpbp_node->token);
>  	if (ret) {
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
> index 5ad0374df9..d393ce6186 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
> @@ -50,7 +50,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
>  	}
>  
>  	/* Open the dpci object */
> -	dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dpci_node->dpci.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	ret = dpci_open(&dpci_node->dpci,
>  			CMD_PRI_LOW, dpci_id, &dpci_node->token);
>  	if (ret) {
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
> index 739ce434ba..21c535f2fb 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
> @@ -416,7 +416,7 @@ dpaa2_create_dpio_device(int vdev_fd,
>  	dpio_dev->hw_id = object_id;
>  	rte_atomic16_init(&dpio_dev->ref_count);
>  	/* Using single portal  for all devices */
> -	dpio_dev->mc_portal = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dpio_dev->mc_portal = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  
>  	if (!check_lcore_cpuset) {
>  		check_lcore_cpuset = 1;
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> index 33b191f823..194b99c583 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> @@ -198,9 +198,6 @@ struct dpaa2_dpcon_dev {
>  	uint8_t channel_index;
>  };
>  
> -/*! Global MCP list */
> -extern void *(*rte_mcp_ptr_list);
> -
>  /* Refer to Table 7-3 in SEC BG */
>  struct qbman_fle {
>  	uint32_t addr_lo;
> @@ -441,4 +438,8 @@ struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void);
>  __rte_internal
>  void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci);
>  
> +/* Global MCP pointer */
> +__rte_internal
> +void *dpaa2_get_mcp_ptr(int portal_idx);
> +
>  #endif
> diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
> index 1b7a5a45e9..80da19a277 100644
> --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
> +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
> @@ -21,6 +21,7 @@ INTERNAL {
>  	dpaa2_free_dpbp_dev;
>  	dpaa2_free_dq_storage;
>  	dpaa2_free_eq_descriptors;
> +	dpaa2_get_mcp_ptr;
>  	dpaa2_io_portal;
>  	dpaa2_svr_family;
>  	dpaa2_virt_mode;
> @@ -111,5 +112,4 @@ INTERNAL {
>  	rte_fslmc_get_device_count;
>  	rte_fslmc_object_register;
>  	rte_global_active_dqs_list;
> -	rte_mcp_ptr_list;
>  };
> diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> index fe34e644cc..5d63644934 100644
> --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
> @@ -3788,7 +3788,7 @@ dpaa2_sec_dev_init(struct rte_cryptodev *cryptodev)
>  			"Error in allocating the memory for dpsec object");
>  		return -ENOMEM;
>  	}
> -	dpseci->regs = rte_mcp_ptr_list[0];
> +	dpseci->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  
>  	retcode = dpseci_open(dpseci, CMD_PRI_LOW, hw_id, &token);
>  	if (retcode != 0) {
> diff --git a/drivers/event/dpaa2/dpaa2_hw_dpcon.c b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
> index d64e588aa8..200b71640b 100644
> --- a/drivers/event/dpaa2/dpaa2_hw_dpcon.c
> +++ b/drivers/event/dpaa2/dpaa2_hw_dpcon.c
> @@ -48,7 +48,7 @@ rte_dpaa2_create_dpcon_device(int dev_fd __rte_unused,
>  	}
>  
>  	/* Open the dpcon object */
> -	dpcon_node->dpcon.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dpcon_node->dpcon.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	ret = dpcon_open(&dpcon_node->dpcon,
>  			 CMD_PRI_LOW, dpcon_id, &dpcon_node->token);
>  	if (ret) {
> diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
> index 1bab3b064c..2f031ec5c1 100644
> --- a/drivers/net/dpaa2/dpaa2_ethdev.c
> +++ b/drivers/net/dpaa2/dpaa2_ethdev.c
> @@ -2343,7 +2343,7 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
>  		DPAA2_PMD_ERR("Memory allocation failed for dpni device");
>  		return -1;
>  	}
> -	dpni_dev->regs = rte_mcp_ptr_list[0];
> +	dpni_dev->regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	eth_dev->process_private = (void *)dpni_dev;
>  
>  	/* For secondary processes, the primary has done all the work */
> diff --git a/drivers/net/dpaa2/dpaa2_mux.c b/drivers/net/dpaa2/dpaa2_mux.c
> index 9ac8806faf..f8366e839e 100644
> --- a/drivers/net/dpaa2/dpaa2_mux.c
> +++ b/drivers/net/dpaa2/dpaa2_mux.c
> @@ -224,7 +224,7 @@ dpaa2_create_dpdmux_device(int vdev_fd __rte_unused,
>  	}
>  
>  	/* Open the dpdmux object */
> -	dpdmux_dev->dpdmux.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dpdmux_dev->dpdmux.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	ret = dpdmux_open(&dpdmux_dev->dpdmux, CMD_PRI_LOW, dpdmux_id,
>  			  &dpdmux_dev->token);
>  	if (ret) {
> diff --git a/drivers/net/dpaa2/dpaa2_ptp.c b/drivers/net/dpaa2/dpaa2_ptp.c
> index 316912fe3e..f58eedb314 100644
> --- a/drivers/net/dpaa2/dpaa2_ptp.c
> +++ b/drivers/net/dpaa2/dpaa2_ptp.c
> @@ -147,7 +147,7 @@ dpaa2_create_dprtc_device(int vdev_fd __rte_unused,
>  	}
>  
>  	/* Open the dprtc object */
> -	dprtc_dev->dprtc.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dprtc_dev->dprtc.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	ret = dprtc_open(&dprtc_dev->dprtc, CMD_PRI_LOW, dprtc_id,
>  			  &dprtc_dev->token);
>  	if (ret) {
> diff --git a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
> index d5202d6522..1be1b6ddf0 100644
> --- a/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
> +++ b/drivers/raw/dpaa2_qdma/dpaa2_qdma.c
> @@ -1315,7 +1315,7 @@ dpaa2_dpdmai_dev_init(struct rte_rawdev *rawdev, int dpdmai_id)
>  
>  	/* Open DPDMAI device */
>  	dpdmai_dev->dpdmai_id = dpdmai_id;
> -	dpdmai_dev->dpdmai.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX];
> +	dpdmai_dev->dpdmai.regs = dpaa2_get_mcp_ptr(MC_PORTAL_INDEX);
>  	ret = dpdmai_open(&dpdmai_dev->dpdmai, CMD_PRI_LOW,
>  			  dpdmai_dev->dpdmai_id, &dpdmai_dev->token);
>  	if (ret) {
> 

Acked-by: Ray Kinsella <mdr@ashroe.eu>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 13/13] bus/fslmc: remove unused symbols
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
@ 2020-05-19 11:29           ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:29 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



On 15/05/2020 10:47, Hemant Agrawal wrote:
> rte_dpaa2_memsegs is not being used by any other library
> or even within bus.
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> ---
>  drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    | 6 ------
>  drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     | 3 ---
>  drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 -
>  3 files changed, 10 deletions(-)
> 
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
> index 79b148f20b..d9619848d8 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
> @@ -28,12 +28,6 @@
>  #include "portal/dpaa2_hw_pvt.h"
>  #include "portal/dpaa2_hw_dpio.h"
>  
> -/* List of all the memseg information locally maintained in dpaa2 driver. This
> - * is to optimize the PA_to_VA searches until a better mechanism (algo) is
> - * available.
> - */
> -struct dpaa2_memseg_list rte_dpaa2_memsegs
> -	= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);
>  
>  TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);
>  static struct dpbp_dev_list dpbp_dev_list
> diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> index 194b99c583..19fdd9cfaa 100644
> --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
> @@ -325,9 +325,6 @@ struct dpaa2_memseg {
>  	size_t len;
>  };
>  
> -TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);
> -extern struct dpaa2_memseg_list rte_dpaa2_memsegs;
> -
>  #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA
>  extern uint8_t dpaa2_virt_mode;
>  static void *dpaa2_mem_ptov(phys_addr_t paddr) __rte_unused;
> diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map
> index 80da19a277..69e7dc6ad9 100644
> --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map
> +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map
> @@ -106,7 +106,6 @@ INTERNAL {
>  	rte_dpaa2_free_dpci_dev;
>  	rte_dpaa2_intr_disable;
>  	rte_dpaa2_intr_enable;
> -	rte_dpaa2_memsegs;
>  	rte_fslmc_driver_register;
>  	rte_fslmc_driver_unregister;
>  	rte_fslmc_get_device_count;
> 
Acked-by: Ray Kinsella <mdr@ashroe.eu>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: move internal symbols into INTERNAL section
  2020-05-19 11:16             ` Hemant Agrawal
@ 2020-05-19 11:30               ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:30 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



On 19/05/2020 12:16, Hemant Agrawal wrote:
>  
>> 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                        | 8 ++++++++
>>>  drivers/mempool/dpaa/rte_mempool_dpaa_version.map   | 6 ++++--
>>>  drivers/mempool/dpaa2/dpaa2_hw_mempool.h            | 1 +
>>>  drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map | 9 +++++++--
>>>  4 files changed, 20 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/devtools/libabigail.abignore
>>> b/devtools/libabigail.abignore index ab34302d0c..42f9469221 100644
>>> --- a/devtools/libabigail.abignore
>>> +++ b/devtools/libabigail.abignore
>>> @@ -55,3 +55,11 @@
>>>  	file_name_regexp = ^librte_bus_fslmc\.
>>>  [suppress_file]
>>>  	file_name_regexp = ^librte_bus_dpaa\.
>>> +[suppress_function]
>>> +	name = rte_dpaa2_mbuf_alloc_bulk
>>> +[suppress_variable]
>>> +	name_regexp = ^rte_dpaa_memsegs
>>> +[suppress_variable]
>>> +	name_regexp = ^rte_dpaa_bpid_info
>>> +[suppress_variable]
>>> +	name_regexp = ^rte_dpaa2_bpid_info
>>
>> Is there a specific reason you are using name_regexp here.
>> There is only a single variable involved in each case - would "name" not work
>> equally as well?
> 
> [Hemant]  I remember getting some errors in case of variables. But now name is also working ok.
> So, yes, name will also work in this case.
> If I need to do a next version of this series, I will improve it. Is that ok for you?

yes - that is perfect, I will give one more look over then. 

> 
> 
>>
>>> diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
>>> b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
>>> index 9eebaf7ffd..89d7cf4957 100644
>>> --- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
>>> +++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map
>>> @@ -1,8 +1,10 @@
>>>  DPDK_20.0 {
>>> +	local: *;
>>> +};
>>> +
>>> +INTERNAL {
>>>  	global:
>>>
>>>  	rte_dpaa_bpid_info;
>>>  	rte_dpaa_memsegs;
>>> -
>>> -	local: *;
>>>  };
>>> diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
>>> b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
>>> index fa0f2280d5..53fa1552d1 100644
>>> --- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
>>> +++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
>>> @@ -61,6 +61,7 @@ struct dpaa2_bp_info {
>>>
>>>  extern struct dpaa2_bp_info *rte_dpaa2_bpid_info;
>>>
>>> +__rte_internal
>>>  int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
>>>  		       void **obj_table, unsigned int count);
>>>
>>> diff --git a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>>> b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>>> index cd4bc88273..686b024624 100644
>>> --- a/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>>> +++ b/drivers/mempool/dpaa2/rte_mempool_dpaa2_version.map
>>> @@ -1,10 +1,15 @@
>>>  DPDK_20.0 {
>>>  	global:
>>>
>>> -	rte_dpaa2_bpid_info;
>>> -	rte_dpaa2_mbuf_alloc_bulk;
>>>  	rte_dpaa2_mbuf_from_buf_addr;
>>>  	rte_dpaa2_mbuf_pool_bpid;
>>>
>>>  	local: *;
>>>  };
>>> +
>>> +INTERNAL {
>>> +	global:
>>> +
>>> +	rte_dpaa2_bpid_info;
>>> +	rte_dpaa2_mbuf_alloc_bulk;
>>> +};
>>>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 05/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-19 11:14           ` Ray Kinsella
@ 2020-05-19 11:39             ` Hemant Agrawal
  2020-05-19 11:41               ` Ray Kinsella
  0 siblings, 1 reply; 134+ messages in thread
From: Hemant Agrawal @ 2020-05-19 11:39 UTC (permalink / raw)
  To: Ray Kinsella, dev, david.marchand

Hi Ray,

> 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              | 2 ++
> >  drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
> >  drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
> >  3 files changed, 11 insertions(+), 2 deletions(-)
> >
> > diff --git a/devtools/libabigail.abignore
> > b/devtools/libabigail.abignore index 42f9469221..7b6358c394 100644
> > --- a/devtools/libabigail.abignore
> > +++ b/devtools/libabigail.abignore
> > @@ -63,3 +63,5 @@
> >  	name_regexp = ^rte_dpaa_bpid_info
> >  [suppress_variable]
> >  	name_regexp = ^rte_dpaa2_bpid_info
> > +[suppress_function]
> > +        name_regexp = ^dpaa
> 
> This rule ends up being very general
> Could we do something more specific like ...
> 
> ^dpaa_\.attach

[Hemant]  I am not sure, how much time I have to check and test again before David closes RC3
- while I am working on experimenting these.
These are not serious issues. dpaa is always internal for the libraries. No symbol with starting with dpaa name is exposed to libraries.
This change will anyway go away in 20.11. 


> 
> it should catch
> 
> dpaa_eth_eventq_attach;
> dpaa_eth_eventq_detach;
> dpaa2_eth_eventq_attach;
> dpaa2_eth_eventq_detach;
> 
> which is I think, what you are after.
> 
> > diff --git a/drivers/net/dpaa/dpaa_ethdev.h
> > b/drivers/net/dpaa/dpaa_ethdev.h index af9fc2105d..7393a9df05 100644
> > --- a/drivers/net/dpaa/dpaa_ethdev.h
> > +++ b/drivers/net/dpaa/dpaa_ethdev.h
> > @@ -160,12 +160,14 @@ struct dpaa_if_stats {
> >  	uint64_t tund;		/**<Tx Undersized */
> >  };
> >
> > +__rte_internal
> >  int
> >  dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
> >  		int eth_rx_queue_id,
> >  		u16 ch_id,
> >  		const struct rte_event_eth_rx_adapter_queue_conf
> *queue_conf);
> >
> > +__rte_internal
> >  int
> >  dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
> >  			   int eth_rx_queue_id);
> > diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map
> > b/drivers/net/dpaa/rte_pmd_dpaa_version.map
> > index f403a1526d..774aa0de45 100644
> > --- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
> > +++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
> > @@ -1,9 +1,14 @@
> >  DPDK_20.0 {
> >  	global:
> >
> > -	dpaa_eth_eventq_attach;
> > -	dpaa_eth_eventq_detach;
> >  	rte_pmd_dpaa_set_tx_loopback;
> >
> >  	local: *;
> >  };
> > +
> > +INTERNAL {
> > +	global:
> > +
> > +	dpaa_eth_eventq_attach;
> > +	dpaa_eth_eventq_detach;
> > +};
> >

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 05/13] net/dpaa: move internal symbols into INTERNAL section
  2020-05-19 11:39             ` Hemant Agrawal
@ 2020-05-19 11:41               ` Ray Kinsella
  0 siblings, 0 replies; 134+ messages in thread
From: Ray Kinsella @ 2020-05-19 11:41 UTC (permalink / raw)
  To: Hemant Agrawal, dev, david.marchand



On 19/05/2020 12:39, Hemant Agrawal wrote:
> Hi Ray,
> 
>> 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              | 2 ++
>>>  drivers/net/dpaa/dpaa_ethdev.h            | 2 ++
>>>  drivers/net/dpaa/rte_pmd_dpaa_version.map | 9 +++++++--
>>>  3 files changed, 11 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/devtools/libabigail.abignore
>>> b/devtools/libabigail.abignore index 42f9469221..7b6358c394 100644
>>> --- a/devtools/libabigail.abignore
>>> +++ b/devtools/libabigail.abignore
>>> @@ -63,3 +63,5 @@
>>>  	name_regexp = ^rte_dpaa_bpid_info
>>>  [suppress_variable]
>>>  	name_regexp = ^rte_dpaa2_bpid_info
>>> +[suppress_function]
>>> +        name_regexp = ^dpaa
>>
>> This rule ends up being very general
>> Could we do something more specific like ...
>>
>> ^dpaa_\.attach
> 
> [Hemant]  I am not sure, how much time I have to check and test again before David closes RC3
> - while I am working on experimenting these.
> These are not serious issues. dpaa is always internal for the libraries. No symbol with starting with dpaa name is exposed to libraries.
> This change will anyway go away in 20.11. 
>

if dpaa is always general - I can live with a general rule.

> 
>>
>> it should catch
>>
>> dpaa_eth_eventq_attach;
>> dpaa_eth_eventq_detach;
>> dpaa2_eth_eventq_attach;
>> dpaa2_eth_eventq_detach;
>>
>> which is I think, what you are after.
>>
>>> diff --git a/drivers/net/dpaa/dpaa_ethdev.h
>>> b/drivers/net/dpaa/dpaa_ethdev.h index af9fc2105d..7393a9df05 100644
>>> --- a/drivers/net/dpaa/dpaa_ethdev.h
>>> +++ b/drivers/net/dpaa/dpaa_ethdev.h
>>> @@ -160,12 +160,14 @@ struct dpaa_if_stats {
>>>  	uint64_t tund;		/**<Tx Undersized */
>>>  };
>>>
>>> +__rte_internal
>>>  int
>>>  dpaa_eth_eventq_attach(const struct rte_eth_dev *dev,
>>>  		int eth_rx_queue_id,
>>>  		u16 ch_id,
>>>  		const struct rte_event_eth_rx_adapter_queue_conf
>> *queue_conf);
>>>
>>> +__rte_internal
>>>  int
>>>  dpaa_eth_eventq_detach(const struct rte_eth_dev *dev,
>>>  			   int eth_rx_queue_id);
>>> diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map
>>> b/drivers/net/dpaa/rte_pmd_dpaa_version.map
>>> index f403a1526d..774aa0de45 100644
>>> --- a/drivers/net/dpaa/rte_pmd_dpaa_version.map
>>> +++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map
>>> @@ -1,9 +1,14 @@
>>>  DPDK_20.0 {
>>>  	global:
>>>
>>> -	dpaa_eth_eventq_attach;
>>> -	dpaa_eth_eventq_detach;
>>>  	rte_pmd_dpaa_set_tx_loopback;
>>>
>>>  	local: *;
>>>  };
>>> +
>>> +INTERNAL {
>>> +	global:
>>> +
>>> +	dpaa_eth_eventq_attach;
>>> +	dpaa_eth_eventq_detach;
>>> +};
>>>

^ permalink raw reply	[flat|nested] 134+ messages in thread

* Re: [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL
  2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
                           ` (12 preceding siblings ...)
  2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
@ 2020-05-19 13:49         ` David Marchand
  13 siblings, 0 replies; 134+ messages in thread
From: David Marchand @ 2020-05-19 13:49 UTC (permalink / raw)
  To: Hemant Agrawal, Ray Kinsella; +Cc: dev

On Fri, May 15, 2020 at 11:50 AM Hemant Agrawal <hemant.agrawal@nxp.com> wrote:
> This patchset moves the internal symbol to the INTERNAL sections
>
> This patch also change some of the shared variables to function
> calls. (Mostly control path used variables).
>
> Hemant Agrawal (13):
>   common/dpaax: move internal symbols into INTERNAL section
>   bus/fslmc: move internal symbols into INTERNAL section
>   bus/dpaa: move internal symbols into INTERNAL section
>   mempool/dpaa2: move internal symbols into INTERNAL section
>   net/dpaa: move internal symbols into INTERNAL section
>   net/dpaa2: move internal symbols into INTERNAL section
>   crypto: move internal symbols into INTERNAL section
>   mempool/dpaa2: fix to add the include file
>   bus/dpaa: share qman portal ids as function calls
>   bus/dpaa: move log into to respective dpaa drivers
>   bus/dpaa: change netcfg access as function
>   bus/fslmc: share mcp ptr as function across libs
>   bus/fslmc: remove unused symbols

Rebased series, updated rules following Ray comments, re-tested and applied.
Thanks Hemant, Ray.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 134+ messages in thread

end of thread, other threads:[~2020-05-19 13:49 UTC | newest]

Thread overview: 134+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-05 14:08 [dpdk-dev] [PATCH 1/7] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-05 14:08 ` [dpdk-dev] [PATCH 2/7] mempool/dpaa2: " Hemant Agrawal
2020-05-05 14:08 ` [dpdk-dev] [PATCH 3/7] bus/fslmc: " Hemant Agrawal
2020-05-05 14:08 ` [dpdk-dev] [PATCH 4/7] bus/dpaa: " Hemant Agrawal
2020-05-05 14:08 ` [dpdk-dev] [PATCH 5/7] crypto: " Hemant Agrawal
2020-05-05 14:08 ` [dpdk-dev] [PATCH 6/7] net/dpaa2: " Hemant Agrawal
2020-05-05 14:08 ` [dpdk-dev] [PATCH 7/7] net/dpaa: " Hemant Agrawal
2020-05-05 17:07 ` [dpdk-dev] [PATCH 1/7] common/dpaax: " David Marchand
2020-05-07  6:20   ` Hemant Agrawal
2020-05-07  6:54     ` Ray Kinsella
2020-05-12 14:00 ` [dpdk-dev] [PATCH v2 01/12] " Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 02/12] mempool/dpaa2: " Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 03/12] bus/fslmc: " Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 04/12] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 05/12] bus/fslmc: remove unused symbols Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 06/12] bus/dpaa: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 07/12] crypto: " Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 08/12] net/dpaa2: " Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 09/12] net/dpaa: " Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 10/12] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
2020-05-12 14:00   ` [dpdk-dev] [PATCH v2 11/12] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
2020-05-12 14:01   ` [dpdk-dev] [PATCH v2 12/12] bus/dpaa: change netcfg access as function Hemant Agrawal
2020-05-13 12:44   ` [dpdk-dev] [PATCH v2 01/12] common/dpaax: move internal symbols into INTERNAL section Thomas Monjalon
2020-05-13 13:27   ` [dpdk-dev] [PATCH v3 00/12] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 01/12] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-13 14:06       ` Hemant Agrawal (OSS)
2020-05-14  7:13         ` Ray Kinsella
2020-05-14  9:53           ` Hemant Agrawal (OSS)
2020-05-14 10:09             ` Ray Kinsella
2020-05-14 11:06               ` Hemant Agrawal (OSS)
2020-05-14 11:10                 ` Ray Kinsella
2020-05-14 11:19                   ` David Marchand
2020-05-14 11:23                     ` Hemant Agrawal (OSS)
2020-05-14 12:38                       ` Hemant Agrawal (OSS)
2020-05-14 13:31                         ` David Marchand
2020-05-14 14:10                           ` Hemant Agrawal (OSS)
2020-05-14 16:28                           ` David Marchand
2020-05-14 17:15                             ` Hemant Agrawal (OSS)
2020-05-15  9:26                               ` Thomas Monjalon
2020-05-15 11:19                                 ` Thomas Monjalon
2020-05-14 11:21                   ` Hemant Agrawal (OSS)
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 02/12] mempool/dpaa2: " Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 03/12] bus/fslmc: " Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 04/12] bus/dpaa: " Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 05/12] crypto: " Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 06/12] net/dpaa2: " Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 07/12] net/dpaa: " Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 08/12] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 09/12] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 10/12] bus/dpaa: change netcfg access as function Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 11/12] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
2020-05-13 13:27     ` [dpdk-dev] [PATCH v3 12/12] bus/fslmc: remove unused symbols Hemant Agrawal
2020-05-14 13:25     ` [dpdk-dev] [PATCH v4 00/13]NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 02/13] bus/fslmc: " Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 03/13] bus/dpaa: " Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 04/13] crypto: " Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 05/13] mempool/dpaa2: " Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 06/13] net/dpaa: " Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 07/13] net/dpaa2: " Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
2020-05-14 13:25       ` [dpdk-dev] [PATCH v4 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
2020-05-14 14:24       ` [dpdk-dev] [PATCH v5 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-14 14:24         ` [dpdk-dev] [PATCH] temp Hemant Agrawal
2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 02/13] bus/fslmc: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 03/13] bus/dpaa: " Hemant Agrawal
2020-05-14 14:24         ` [dpdk-dev] [PATCH v5 04/13] crypto: " Hemant Agrawal
2020-05-14 14:29       ` [dpdk-dev] [PATCH v6 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 02/13] bus/fslmc: " Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 03/13] bus/dpaa: " Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 04/13] crypto: " Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 05/13] mempool/dpaa2: " Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 06/13] net/dpaa: " Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 07/13] net/dpaa2: " Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
2020-05-14 14:29         ` [dpdk-dev] [PATCH v6 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
2020-05-15  5:08         ` [dpdk-dev] [PATCH v7 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 02/13] bus/fslmc: " Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 03/13] bus/dpaa: " Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 04/13] mempool/dpaa2: " Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 05/13] net/dpaa: " Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 06/13] net/dpaa2: " Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 07/13] crypto: " Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
2020-05-15  5:08           ` [dpdk-dev] [PATCH v7 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
2020-05-15  9:47       ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL Hemant Agrawal
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 01/13] common/dpaax: move internal symbols into INTERNAL section Hemant Agrawal
2020-05-19  6:43           ` Hemant Agrawal
2020-05-19  6:44             ` Ray Kinsella
2020-05-19  9:51           ` Ray Kinsella
2020-05-19 10:39             ` Hemant Agrawal
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 02/13] bus/fslmc: " Hemant Agrawal
2020-05-19 10:00           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 03/13] bus/dpaa: " Hemant Agrawal
2020-05-19 10:56           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 04/13] mempool/dpaa2: " Hemant Agrawal
2020-05-19 11:03           ` Ray Kinsella
2020-05-19 11:16             ` Hemant Agrawal
2020-05-19 11:30               ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 05/13] net/dpaa: " Hemant Agrawal
2020-05-19 11:14           ` Ray Kinsella
2020-05-19 11:39             ` Hemant Agrawal
2020-05-19 11:41               ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 06/13] net/dpaa2: " Hemant Agrawal
2020-05-19 11:15           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 07/13] crypto: " Hemant Agrawal
2020-05-19 11:17           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 08/13] mempool/dpaa2: fix to add the include file Hemant Agrawal
2020-05-19 11:18           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 09/13] bus/dpaa: share qman portal ids as function calls Hemant Agrawal
2020-05-19 11:20           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 10/13] bus/dpaa: move log into to respective dpaa drivers Hemant Agrawal
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 11/13] bus/dpaa: change netcfg access as function Hemant Agrawal
2020-05-19 11:22           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 12/13] bus/fslmc: share mcp ptr as function across libs Hemant Agrawal
2020-05-19 11:26           ` Ray Kinsella
2020-05-15  9:47         ` [dpdk-dev] [PATCH v8 13/13] bus/fslmc: remove unused symbols Hemant Agrawal
2020-05-19 11:29           ` Ray Kinsella
2020-05-19 13:49         ` [dpdk-dev] [PATCH v8 00/13] NXP DPAAx: move internal symbols to INTERNAL David Marchand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).