Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
efx.h File Reference
#include "net_driver.h"
#include "filter.h"

Go to the source code of this file.

Macros

#define EFX_MEM_BAR   2
 
#define EFX_MAX_DMAQ_SIZE   4096UL
 
#define EFX_DEFAULT_DMAQ_SIZE   1024UL
 
#define EFX_MIN_DMAQ_SIZE   512UL
 
#define EFX_MAX_EVQ_SIZE   16384UL
 
#define EFX_MIN_EVQ_SIZE   512UL
 
#define EFX_TSO_MAX_SEGS   100
 
#define EFX_RXQ_MIN_ENT   128U
 
#define EFX_TXQ_MIN_ENT(efx)   (2 * efx_tx_max_skb_descs(efx))
 
#define efx_filter_rfs_enabled()   0
 

Functions

int efx_probe_tx_queue (struct efx_tx_queue *tx_queue)
 
void efx_remove_tx_queue (struct efx_tx_queue *tx_queue)
 
void efx_init_tx_queue (struct efx_tx_queue *tx_queue)
 
void efx_init_tx_queue_core_txq (struct efx_tx_queue *tx_queue)
 
void efx_fini_tx_queue (struct efx_tx_queue *tx_queue)
 
void efx_release_tx_buffers (struct efx_tx_queue *tx_queue)
 
netdev_tx_t efx_hard_start_xmit (struct sk_buff *skb, struct net_device *net_dev)
 
netdev_tx_t efx_enqueue_skb (struct efx_tx_queue *tx_queue, struct sk_buff *skb)
 
void efx_xmit_done (struct efx_tx_queue *tx_queue, unsigned int index)
 
int efx_setup_tc (struct net_device *net_dev, u8 num_tc)
 
unsigned int efx_tx_max_skb_descs (struct efx_nic *efx)
 
int efx_probe_rx_queue (struct efx_rx_queue *rx_queue)
 
void efx_remove_rx_queue (struct efx_rx_queue *rx_queue)
 
void efx_init_rx_queue (struct efx_rx_queue *rx_queue)
 
void efx_fini_rx_queue (struct efx_rx_queue *rx_queue)
 
void efx_rx_strategy (struct efx_channel *channel)
 
void efx_fast_push_rx_descriptors (struct efx_rx_queue *rx_queue)
 
void efx_rx_slow_fill (unsigned long context)
 
void __efx_rx_packet (struct efx_channel *channel, struct efx_rx_buffer *rx_buf)
 
void efx_rx_packet (struct efx_rx_queue *rx_queue, unsigned int index, unsigned int len, u16 flags)
 
void efx_schedule_slow_fill (struct efx_rx_queue *rx_queue)
 
int efx_probe_filters (struct efx_nic *efx)
 
void efx_restore_filters (struct efx_nic *efx)
 
void efx_remove_filters (struct efx_nic *efx)
 
s32 efx_filter_insert_filter (struct efx_nic *efx, struct efx_filter_spec *spec, bool replace)
 
int efx_filter_remove_id_safe (struct efx_nic *efx, enum efx_filter_priority priority, u32 filter_id)
 
int efx_filter_get_filter_safe (struct efx_nic *efx, enum efx_filter_priority priority, u32 filter_id, struct efx_filter_spec *)
 
void efx_filter_clear_rx (struct efx_nic *efx, enum efx_filter_priority priority)
 
u32 efx_filter_count_rx_used (struct efx_nic *efx, enum efx_filter_priority priority)
 
u32 efx_filter_get_rx_id_limit (struct efx_nic *efx)
 
s32 efx_filter_get_rx_ids (struct efx_nic *efx, enum efx_filter_priority priority, u32 *buf, u32 size)
 
int efx_channel_dummy_op_int (struct efx_channel *channel)
 
void efx_channel_dummy_op_void (struct efx_channel *channel)
 
void efx_process_channel_now (struct efx_channel *channel)
 
int efx_realloc_channels (struct efx_nic *efx, u32 rxq_entries, u32 txq_entries)
 
int efx_reconfigure_port (struct efx_nic *efx)
 
int __efx_reconfigure_port (struct efx_nic *efx)
 
int efx_reset (struct efx_nic *efx, enum reset_type method)
 
void efx_reset_down (struct efx_nic *efx, enum reset_type method)
 
int efx_reset_up (struct efx_nic *efx, enum reset_type method, bool ok)
 
void efx_schedule_reset (struct efx_nic *efx, enum reset_type type)
 
int efx_init_irq_moderation (struct efx_nic *efx, unsigned int tx_usecs, unsigned int rx_usecs, bool rx_adaptive, bool rx_may_override_tx)
 
void efx_get_irq_moderation (struct efx_nic *efx, unsigned int *tx_usecs, unsigned int *rx_usecs, bool *rx_adaptive)
 
int efx_port_dummy_op_int (struct efx_nic *efx)
 
void efx_port_dummy_op_void (struct efx_nic *efx)
 
void efx_link_status_changed (struct efx_nic *efx)
 
void efx_link_set_advertising (struct efx_nic *efx, u32)
 
void efx_link_set_wanted_fc (struct efx_nic *efx, u8)
 

Variables

struct ethtool_ops efx_ethtool_ops
 

Macro Definition Documentation

#define EFX_DEFAULT_DMAQ_SIZE   1024UL

Definition at line 50 of file efx.h.

#define efx_filter_rfs_enabled ( )    0

Definition at line 100 of file efx.h.

#define EFX_MAX_DMAQ_SIZE   4096UL

Definition at line 49 of file efx.h.

#define EFX_MAX_EVQ_SIZE   16384UL

Definition at line 53 of file efx.h.

#define EFX_MEM_BAR   2

Definition at line 18 of file efx.h.

#define EFX_MIN_DMAQ_SIZE   512UL

Definition at line 51 of file efx.h.

#define EFX_MIN_EVQ_SIZE   512UL

Definition at line 54 of file efx.h.

#define EFX_RXQ_MIN_ENT   128U

Definition at line 63 of file efx.h.

#define EFX_TSO_MAX_SEGS   100

Definition at line 57 of file efx.h.

#define EFX_TXQ_MIN_ENT (   efx)    (2 * efx_tx_max_skb_descs(efx))

Definition at line 64 of file efx.h.

Function Documentation

int __efx_reconfigure_port ( struct efx_nic efx)

Definition at line 949 of file efx.c.

void __efx_rx_packet ( struct efx_channel channel,
struct efx_rx_buffer rx_buf 
)

Definition at line 588 of file rx.c.

int efx_channel_dummy_op_int ( struct efx_channel channel)

Definition at line 862 of file efx.c.

void efx_channel_dummy_op_void ( struct efx_channel channel)

Definition at line 867 of file efx.c.

netdev_tx_t efx_enqueue_skb ( struct efx_tx_queue tx_queue,
struct sk_buff skb 
)

Definition at line 164 of file tx.c.

void efx_fast_push_rx_descriptors ( struct efx_rx_queue rx_queue)

efx_fast_push_rx_descriptors - push new RX descriptors quickly : RX descriptor queue

This will aim to fill the RX descriptor queue up to ->. If there is insufficient atomic memory to do so, a slow fill will be scheduled.

The caller must provide serialisation (none is used here). In practise, this means this function must run from the NAPI handler, or be called when NAPI is disabled.

Definition at line 348 of file rx.c.

void efx_filter_clear_rx ( struct efx_nic efx,
enum efx_filter_priority  priority 
)

efx_filter_clear_rx - remove RX filters by priority : NIC from which to remove the filters : Maximum priority to remove

Definition at line 872 of file filter.c.

u32 efx_filter_count_rx_used ( struct efx_nic efx,
enum efx_filter_priority  priority 
)

Definition at line 878 of file filter.c.

int efx_filter_get_filter_safe ( struct efx_nic efx,
enum efx_filter_priority  priority,
u32  filter_id,
struct efx_filter_spec spec_buf 
)

efx_filter_get_filter_safe - retrieve a filter by ID, carefully : NIC from which to remove the filter : Priority of filter, as passed to : ID of filter, as returned by : Buffer in which to store filter specification

This function will range-check , so it is safe to call with a value passed from userland.

Definition at line 809 of file filter.c.

u32 efx_filter_get_rx_id_limit ( struct efx_nic efx)

Definition at line 633 of file filter.c.

s32 efx_filter_get_rx_ids ( struct efx_nic efx,
enum efx_filter_priority  priority,
u32 buf,
u32  size 
)

Definition at line 905 of file filter.c.

s32 efx_filter_insert_filter ( struct efx_nic efx,
struct efx_filter_spec spec,
bool  replace 
)

efx_filter_insert_filter - add or replace a filter : NIC in which to insert the filter : Specification for the filter : Flag for whether the specified filter may replace a filter with an identical match expression and equal or lower priority

On success, return the filter ID. On failure, return a negative error code.

Definition at line 659 of file filter.c.

int efx_filter_remove_id_safe ( struct efx_nic efx,
enum efx_filter_priority  priority,
u32  filter_id 
)

efx_filter_remove_id_safe - remove a filter by ID, carefully : NIC from which to remove the filter : Priority of filter, as passed to : ID of filter, as returned by

This function will range-check , so it is safe to call with a value passed from userland.

Definition at line 758 of file filter.c.

void efx_fini_rx_queue ( struct efx_rx_queue rx_queue)

Definition at line 721 of file rx.c.

void efx_fini_tx_queue ( struct efx_tx_queue tx_queue)

Definition at line 564 of file tx.c.

void efx_get_irq_moderation ( struct efx_nic efx,
unsigned int tx_usecs,
unsigned int rx_usecs,
bool rx_adaptive 
)

Definition at line 1713 of file efx.c.

netdev_tx_t efx_hard_start_xmit ( struct sk_buff skb,
struct net_device net_dev 
)

Definition at line 333 of file tx.c.

int efx_init_irq_moderation ( struct efx_nic efx,
unsigned int  tx_usecs,
unsigned int  rx_usecs,
bool  rx_adaptive,
bool  rx_may_override_tx 
)

Definition at line 1675 of file efx.c.

void efx_init_rx_queue ( struct efx_rx_queue rx_queue)

Definition at line 688 of file rx.c.

void efx_init_tx_queue ( struct efx_tx_queue tx_queue)

Definition at line 528 of file tx.c.

void efx_init_tx_queue_core_txq ( struct efx_tx_queue tx_queue)

Definition at line 359 of file tx.c.

void efx_link_set_advertising ( struct efx_nic efx,
u32   
)

Definition at line 912 of file efx.c.

void efx_link_set_wanted_fc ( struct efx_nic efx,
u8   
)

Definition at line 925 of file efx.c.

void efx_link_status_changed ( struct efx_nic efx)

Definition at line 881 of file efx.c.

int efx_port_dummy_op_int ( struct efx_nic efx)

Definition at line 2413 of file efx.c.

void efx_port_dummy_op_void ( struct efx_nic efx)

Definition at line 2417 of file efx.c.

int efx_probe_filters ( struct efx_nic efx)

Definition at line 972 of file filter.c.

int efx_probe_rx_queue ( struct efx_rx_queue rx_queue)

Definition at line 658 of file rx.c.

int efx_probe_tx_queue ( struct efx_tx_queue tx_queue)

Definition at line 481 of file tx.c.

void efx_process_channel_now ( struct efx_channel channel)

Definition at line 339 of file efx.c.

int efx_realloc_channels ( struct efx_nic efx,
u32  rxq_entries,
u32  txq_entries 
)

Definition at line 749 of file efx.c.

int efx_reconfigure_port ( struct efx_nic efx)

Definition at line 977 of file efx.c.

void efx_release_tx_buffers ( struct efx_tx_queue tx_queue)

Definition at line 546 of file tx.c.

void efx_remove_filters ( struct efx_nic efx)

Definition at line 1048 of file filter.c.

void efx_remove_rx_queue ( struct efx_rx_queue rx_queue)

Definition at line 744 of file rx.c.

void efx_remove_tx_queue ( struct efx_tx_queue tx_queue)

Definition at line 580 of file tx.c.

int efx_reset ( struct efx_nic efx,
enum reset_type  method 
)

Definition at line 2274 of file efx.c.

void efx_reset_down ( struct efx_nic efx,
enum reset_type  method 
)

Definition at line 2207 of file efx.c.

int efx_reset_up ( struct efx_nic efx,
enum reset_type  method,
bool  ok 
)

Definition at line 2225 of file efx.c.

void efx_restore_filters ( struct efx_nic efx)

Definition at line 940 of file filter.c.

void efx_rx_packet ( struct efx_rx_queue rx_queue,
unsigned int  index,
unsigned int  len,
u16  flags 
)

Definition at line 503 of file rx.c.

void efx_rx_slow_fill ( unsigned long  context)

Definition at line 399 of file rx.c.

void efx_rx_strategy ( struct efx_channel channel)

Definition at line 630 of file rx.c.

void efx_schedule_reset ( struct efx_nic efx,
enum reset_type  type 
)

Definition at line 2346 of file efx.c.

void efx_schedule_slow_fill ( struct efx_rx_queue rx_queue)

Definition at line 849 of file efx.c.

int efx_setup_tc ( struct net_device net_dev,
u8  num_tc 
)

Definition at line 371 of file tx.c.

unsigned int efx_tx_max_skb_descs ( struct efx_nic efx)

Definition at line 79 of file tx.c.

void efx_xmit_done ( struct efx_tx_queue tx_queue,
unsigned int  index 
)

Definition at line 428 of file tx.c.

Variable Documentation

struct ethtool_ops efx_ethtool_ops

Definition at line 1145 of file ethtool.c.