net/sfc/base: import RSS support
[dpdk.git] / drivers / net / sfc / base / ef10_impl.h
index 6afe0bc..0e5561e 100644 (file)
@@ -105,6 +105,13 @@ ef10_ev_qmoderate(
        __in            efx_evq_t *eep,
        __in            unsigned int us);
 
+#if EFSYS_OPT_QSTATS
+                       void
+ef10_ev_qstats_update(
+       __in                            efx_evq_t *eep,
+       __inout_ecount(EV_NQSTATS)      efsys_stat_t *stat);
+#endif /* EFSYS_OPT_QSTATS */
+
                void
 ef10_ev_rxlabel_init(
        __in            efx_evq_t *eep,
@@ -252,6 +259,23 @@ extern                     void
 ef10_mac_filter_default_rxq_clear(
        __in            efx_nic_t *enp);
 
+#if EFSYS_OPT_MAC_STATS
+
+extern __checkReturn                   efx_rc_t
+ef10_mac_stats_get_mask(
+       __in                            efx_nic_t *enp,
+       __inout_bcount(mask_size)       uint32_t *maskp,
+       __in                            size_t mask_size);
+
+extern __checkReturn                   efx_rc_t
+ef10_mac_stats_update(
+       __in                            efx_nic_t *enp,
+       __in                            efsys_mem_t *esmp,
+       __inout_ecount(EFX_MAC_NSTATS)  efsys_stat_t *stat,
+       __inout_opt                     uint32_t *generationp);
+
+#endif /* EFSYS_OPT_MAC_STATS */
+
 
 /* MCDI */
 
@@ -345,6 +369,45 @@ ef10_phy_oui_get(
        __in            efx_nic_t *enp,
        __out           uint32_t *ouip);
 
+#if EFSYS_OPT_PHY_STATS
+
+extern __checkReturn                   efx_rc_t
+ef10_phy_stats_update(
+       __in                            efx_nic_t *enp,
+       __in                            efsys_mem_t *esmp,
+       __inout_ecount(EFX_PHY_NSTATS)  uint32_t *stat);
+
+#endif /* EFSYS_OPT_PHY_STATS */
+
+#if EFSYS_OPT_BIST
+
+extern __checkReturn           efx_rc_t
+ef10_bist_enable_offline(
+       __in                    efx_nic_t *enp);
+
+extern __checkReturn           efx_rc_t
+ef10_bist_start(
+       __in                    efx_nic_t *enp,
+       __in                    efx_bist_type_t type);
+
+extern __checkReturn           efx_rc_t
+ef10_bist_poll(
+       __in                    efx_nic_t *enp,
+       __in                    efx_bist_type_t type,
+       __out                   efx_bist_result_t *resultp,
+       __out_opt __drv_when(count > 0, __notnull)
+       uint32_t        *value_maskp,
+       __out_ecount_opt(count) __drv_when(count > 0, __notnull)
+       unsigned long   *valuesp,
+       __in                    size_t count);
+
+extern                         void
+ef10_bist_stop(
+       __in                    efx_nic_t *enp,
+       __in                    efx_bist_type_t type);
+
+#endif /* EFSYS_OPT_BIST */
+
 /* TX */
 
 extern __checkReturn   efx_rc_t
@@ -461,6 +524,15 @@ ef10_tx_qdesc_vlantci_create(
        __out   efx_desc_t *edp);
 
 
+#if EFSYS_OPT_QSTATS
+
+extern                 void
+ef10_tx_qstats_update(
+       __in                            efx_txq_t *etp,
+       __inout_ecount(TX_NQSTATS)      efsys_stat_t *stat);
+
+#endif /* EFSYS_OPT_QSTATS */
+
 typedef uint32_t       efx_piobuf_handle_t;
 
 #define        EFX_PIOBUF_HANDLE_INVALID       ((efx_piobuf_handle_t) -1)
@@ -501,6 +573,42 @@ extern     __checkReturn   efx_rc_t
 ef10_rx_init(
        __in            efx_nic_t *enp);
 
+#if EFSYS_OPT_RX_SCATTER
+extern __checkReturn   efx_rc_t
+ef10_rx_scatter_enable(
+       __in            efx_nic_t *enp,
+       __in            unsigned int buf_size);
+#endif /* EFSYS_OPT_RX_SCATTER */
+
+
+#if EFSYS_OPT_RX_SCALE
+
+extern __checkReturn   efx_rc_t
+ef10_rx_scale_mode_set(
+       __in            efx_nic_t *enp,
+       __in            efx_rx_hash_alg_t alg,
+       __in            efx_rx_hash_type_t type,
+       __in            boolean_t insert);
+
+extern __checkReturn   efx_rc_t
+ef10_rx_scale_key_set(
+       __in            efx_nic_t *enp,
+       __in_ecount(n)  uint8_t *key,
+       __in            size_t n);
+
+extern __checkReturn   efx_rc_t
+ef10_rx_scale_tbl_set(
+       __in            efx_nic_t *enp,
+       __in_ecount(n)  unsigned int *table,
+       __in            size_t n);
+
+extern __checkReturn   uint32_t
+ef10_rx_prefix_hash(
+       __in            efx_nic_t *enp,
+       __in            efx_rx_hash_alg_t func,
+       __in            uint8_t *buffer);
+
+#endif /* EFSYS_OPT_RX_SCALE */
 
 extern __checkReturn   efx_rc_t
 ef10_rx_prefix_pktlen(