[dpdk-dev,05/18] i40e: rework of 'i40e_hmc_get_object_va'

Message ID 1429518150-28098-6-git-send-email-helin.zhang@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Zhang, Helin April 20, 2015, 8:22 a.m. UTC
  To simplify the usage of invoking 'i40e_hmc_get_object_va', input
parameters of it were reworked. In addition, minor code style fixes
were added as well.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
---
 lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c | 32 +++++++++++++-------------------
 lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h |  5 +++++
 2 files changed, 18 insertions(+), 19 deletions(-)
  

Patch

diff --git a/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c b/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c
index 7e65efb..fab56aa 100644
--- a/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c
+++ b/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c
@@ -863,7 +863,7 @@  static void i40e_write_dword(u8 *hmc_bits,
 	if (ce_info->width < 32)
 		mask = ((u32)1 << ce_info->width) - 1;
 	else
-		mask = 0xFFFFFFFF;
+		mask = ~(u32)0;
 
 	/* don't swizzle the bits until after the mask because the mask bits
 	 * will be in a different bit position on big endian machines
@@ -915,7 +915,7 @@  static void i40e_write_qword(u8 *hmc_bits,
 	if (ce_info->width < 64)
 		mask = ((u64)1 << ce_info->width) - 1;
 	else
-		mask = 0xFFFFFFFFFFFFFFFFUL;
+		mask = ~(u64)0;
 
 	/* don't swizzle the bits until after the mask because the mask bits
 	 * will be in a different bit position on big endian machines
@@ -1045,7 +1045,7 @@  static void i40e_read_dword(u8 *hmc_bits,
 	if (ce_info->width < 32)
 		mask = ((u32)1 << ce_info->width) - 1;
 	else
-		mask = 0xFFFFFFFF;
+		mask = ~(u32)0;
 
 	/* shift to correct alignment */
 	mask <<= shift_width;
@@ -1098,7 +1098,7 @@  static void i40e_read_qword(u8 *hmc_bits,
 	if (ce_info->width < 64)
 		mask = ((u64)1 << ce_info->width) - 1;
 	else
-		mask = 0xFFFFFFFFFFFFFFFFUL;
+		mask = ~(u64)0;
 
 	/* shift to correct alignment */
 	mask <<= shift_width;
@@ -1217,7 +1217,7 @@  static enum i40e_status_code i40e_set_hmc_context(u8 *context_bytes,
 
 /**
  * i40e_hmc_get_object_va - retrieves an object's virtual address
- * @hmc_info: pointer to i40e_hmc_info struct
+ * @hw: pointer to the hw structure
  * @object_base: pointer to u64 to get the va
  * @rsrc_type: the hmc resource type
  * @obj_idx: hmc object index
@@ -1225,13 +1225,13 @@  static enum i40e_status_code i40e_set_hmc_context(u8 *context_bytes,
  * This function retrieves the object's virtual address from the object
  * base pointer.  This function is used for LAN Queue contexts.
  **/
-STATIC
-enum i40e_status_code i40e_hmc_get_object_va(struct i40e_hmc_info *hmc_info,
+enum i40e_status_code i40e_hmc_get_object_va(struct i40e_hw *hw,
 					u8 **object_base,
 					enum i40e_hmc_lan_rsrc_type rsrc_type,
 					u32 obj_idx)
 {
 	u32 obj_offset_in_sd, obj_offset_in_pd;
+	struct i40e_hmc_info     *hmc_info = &hw->hmc;
 	struct i40e_hmc_sd_entry *sd_entry;
 	struct i40e_hmc_pd_entry *pd_entry;
 	u32 pd_idx, pd_lmt, rel_pd_idx;
@@ -1303,8 +1303,7 @@  enum i40e_status_code i40e_get_lan_tx_queue_context(struct i40e_hw *hw,
 	enum i40e_status_code err;
 	u8 *context_bytes;
 
-	err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-				     I40E_HMC_LAN_TX, queue);
+	err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_TX, queue);
 	if (err < 0)
 		return err;
 
@@ -1323,8 +1322,7 @@  enum i40e_status_code i40e_clear_lan_tx_queue_context(struct i40e_hw *hw,
 	enum i40e_status_code err;
 	u8 *context_bytes;
 
-	err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-				     I40E_HMC_LAN_TX, queue);
+	err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_TX, queue);
 	if (err < 0)
 		return err;
 
@@ -1344,8 +1342,7 @@  enum i40e_status_code i40e_set_lan_tx_queue_context(struct i40e_hw *hw,
 	enum i40e_status_code err;
 	u8 *context_bytes;
 
-	err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-				     I40E_HMC_LAN_TX, queue);
+	err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_TX, queue);
 	if (err < 0)
 		return err;
 
@@ -1366,8 +1363,7 @@  enum i40e_status_code i40e_get_lan_rx_queue_context(struct i40e_hw *hw,
 	enum i40e_status_code err;
 	u8 *context_bytes;
 
-	err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-				     I40E_HMC_LAN_RX, queue);
+	err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_RX, queue);
 	if (err < 0)
 		return err;
 
@@ -1386,8 +1382,7 @@  enum i40e_status_code i40e_clear_lan_rx_queue_context(struct i40e_hw *hw,
 	enum i40e_status_code err;
 	u8 *context_bytes;
 
-	err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-				     I40E_HMC_LAN_RX, queue);
+	err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_RX, queue);
 	if (err < 0)
 		return err;
 
@@ -1407,8 +1402,7 @@  enum i40e_status_code i40e_set_lan_rx_queue_context(struct i40e_hw *hw,
 	enum i40e_status_code err;
 	u8 *context_bytes;
 
-	err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-				     I40E_HMC_LAN_RX, queue);
+	err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_RX, queue);
 	if (err < 0)
 		return err;
 
diff --git a/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h b/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h
index b2a4310..d6669a2 100644
--- a/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h
+++ b/lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h
@@ -98,6 +98,8 @@  struct i40e_hmc_obj_txq {
 	u32 crc;
 	u16 rdylist;
 	u8  rdylist_act;
+	u8  qena_req;
+	u8  qena_stat;
 };
 
 /* for hsplit_0 field of Rx HMC context */
@@ -192,6 +194,9 @@  enum i40e_status_code i40e_clear_lan_rx_queue_context(struct i40e_hw *hw,
 enum i40e_status_code i40e_set_lan_rx_queue_context(struct i40e_hw *hw,
 						    u16 queue,
 						    struct i40e_hmc_obj_rxq *s);
+enum i40e_status_code i40e_hmc_get_object_va(struct i40e_hw *hw,
+					  u8 **object_base, enum i40e_hmc_lan_rsrc_type rsrc_type,
+					  u32 obj_idx);
 enum i40e_status_code i40e_create_lan_hmc_object(struct i40e_hw *hw,
 				struct i40e_hmc_lan_create_obj_info *info);
 enum i40e_status_code i40e_delete_lan_hmc_object(struct i40e_hw *hw,