|
@@ -23,8 +23,15 @@
|
|
|
#define EFX_MEM_BAR 2
|
|
|
|
|
|
/* TX */
|
|
|
-extern netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue,
|
|
|
- struct sk_buff *skb);
|
|
|
+extern int efx_probe_tx_queue(struct efx_tx_queue *tx_queue);
|
|
|
+extern void efx_remove_tx_queue(struct efx_tx_queue *tx_queue);
|
|
|
+extern void efx_init_tx_queue(struct efx_tx_queue *tx_queue);
|
|
|
+extern void efx_fini_tx_queue(struct efx_tx_queue *tx_queue);
|
|
|
+extern void efx_release_tx_buffers(struct efx_tx_queue *tx_queue);
|
|
|
+extern netdev_tx_t
|
|
|
+efx_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev);
|
|
|
+extern netdev_tx_t
|
|
|
+efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb);
|
|
|
extern void efx_xmit_done(struct efx_tx_queue *tx_queue, unsigned int index);
|
|
|
extern void efx_stop_queue(struct efx_nic *efx);
|
|
|
extern void efx_wake_queue(struct efx_nic *efx);
|
|
@@ -32,6 +39,15 @@ extern void efx_wake_queue(struct efx_nic *efx);
|
|
|
#define EFX_TXQ_MASK (EFX_TXQ_SIZE - 1)
|
|
|
|
|
|
/* RX */
|
|
|
+extern int efx_probe_rx_queue(struct efx_rx_queue *rx_queue);
|
|
|
+extern void efx_remove_rx_queue(struct efx_rx_queue *rx_queue);
|
|
|
+extern void efx_init_rx_queue(struct efx_rx_queue *rx_queue);
|
|
|
+extern void efx_fini_rx_queue(struct efx_rx_queue *rx_queue);
|
|
|
+extern void efx_rx_strategy(struct efx_channel *channel);
|
|
|
+extern void efx_fast_push_rx_descriptors(struct efx_rx_queue *rx_queue);
|
|
|
+extern void efx_rx_work(struct work_struct *data);
|
|
|
+extern void __efx_rx_packet(struct efx_channel *channel,
|
|
|
+ struct efx_rx_buffer *rx_buf, bool checksummed);
|
|
|
extern void efx_rx_packet(struct efx_rx_queue *rx_queue, unsigned int index,
|
|
|
unsigned int len, bool checksummed, bool discard);
|
|
|
extern void efx_schedule_slow_fill(struct efx_rx_queue *rx_queue, int delay);
|
|
@@ -50,6 +66,13 @@ extern void efx_stats_enable(struct efx_nic *efx);
|
|
|
extern void efx_reconfigure_port(struct efx_nic *efx);
|
|
|
extern void __efx_reconfigure_port(struct efx_nic *efx);
|
|
|
|
|
|
+/* Ethtool support */
|
|
|
+extern int efx_ethtool_get_settings(struct net_device *net_dev,
|
|
|
+ struct ethtool_cmd *ecmd);
|
|
|
+extern int efx_ethtool_set_settings(struct net_device *net_dev,
|
|
|
+ struct ethtool_cmd *ecmd);
|
|
|
+extern const struct ethtool_ops efx_ethtool_ops;
|
|
|
+
|
|
|
/* Reset handling */
|
|
|
extern void efx_reset_down(struct efx_nic *efx, enum reset_type method,
|
|
|
struct ethtool_cmd *ecmd);
|