ixgbe: remove awkward typecasts
[dpdk.git] / drivers / net / ixgbe / ixgbe_rxtx.h
index 0e6ad93..1557438 100644 (file)
@@ -121,9 +121,11 @@ struct ixgbe_rx_queue {
        uint16_t rx_next_avail; /**< idx of next staged pkt to ret to app */
        uint16_t rx_free_trigger; /**< triggers rx buffer allocation */
 #endif
+       uint16_t            rx_using_sse;
+       /**< indicates that vector RX is in use */
 #ifdef RTE_IXGBE_INC_VECTOR
-       uint16_t            rxrearm_nb; /**< the idx we start the re-arming from */
-       uint16_t            rxrearm_start;  /**< number of remaining to be re-armed */
+       uint16_t            rxrearm_nb;     /**< number of remaining to be re-armed */
+       uint16_t            rxrearm_start;  /**< the idx we start the re-arming from */
 #endif
        uint16_t            rx_free_thresh; /**< max free RX desc to hold. */
        uint16_t            queue_id; /**< RX queue index. */
@@ -191,7 +193,10 @@ struct ixgbe_tx_queue {
        /** TX ring virtual address. */
        volatile union ixgbe_adv_tx_desc *tx_ring;
        uint64_t            tx_ring_phys_addr; /**< TX ring DMA address. */
-       struct ixgbe_tx_entry *sw_ring;      /**< virtual address of SW ring. */
+       union {
+               struct ixgbe_tx_entry *sw_ring; /**< address of SW ring for scalar PMD. */
+               struct ixgbe_tx_entry_v *sw_ring_v; /**< address of SW ring for vector PMD */
+       };
        volatile uint32_t   *tdt_reg_addr; /**< Address of TDT register. */
        uint16_t            nb_tx_desc;    /**< number of TX descriptors. */
        uint16_t            tx_tail;       /**< current value of TDT reg. */
@@ -284,6 +289,7 @@ uint16_t ixgbe_recv_scattered_pkts_vec(void *rx_queue,
                struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
 int ixgbe_rx_vec_dev_conf_condition_check(struct rte_eth_dev *dev);
 int ixgbe_rxq_vec_setup(struct ixgbe_rx_queue *rxq);
+void ixgbe_rx_queue_release_mbufs_vec(struct ixgbe_rx_queue *rxq);
 
 #ifdef RTE_IXGBE_INC_VECTOR