Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
rx.c File Reference
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/if_arp.h>
#include <linux/netdevice.h>
#include <linux/workqueue.h>
#include <linux/export.h>
#include <linux/moduleparam.h>
#include "i2400m.h"
#include "debug-levels.h"

Go to the source code of this file.

Data Structures

struct  i2400m_report_hook_args
 
struct  i2400m_roq_data
 
struct  i2400m_roq
 
struct  i2400m_roq_log
 
struct  i2400m_roq_log::i2400m_roq_log_entry
 

Macros

#define D_SUBMODULE   rx
 

Enumerations

enum  { I2400M_ROQ_LOG_LENGTH = 32 }
 

Functions

 module_param_named (rx_reorder_disabled, i2400m_rx_reorder_disabled, int, 0644)
 
 MODULE_PARM_DESC (rx_reorder_disabled,"If true, RX reordering will be disabled.")
 
void i2400m_report_hook_work (struct work_struct *ws)
 
int i2400m_rx (struct i2400m *i2400m, struct sk_buff *skb)
 
 EXPORT_SYMBOL_GPL (i2400m_rx)
 
void i2400m_unknown_barker (struct i2400m *i2400m, const void *buf, size_t size)
 
 EXPORT_SYMBOL (i2400m_unknown_barker)
 
int i2400m_rx_setup (struct i2400m *i2400m)
 
void i2400m_rx_release (struct i2400m *i2400m)
 

Macro Definition Documentation

#define D_SUBMODULE   rx

Definition at line 157 of file rx.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
I2400M_ROQ_LOG_LENGTH 

Definition at line 538 of file rx.c.

Function Documentation

EXPORT_SYMBOL ( i2400m_unknown_barker  )
EXPORT_SYMBOL_GPL ( i2400m_rx  )
void i2400m_report_hook_work ( struct work_struct ws)

Definition at line 183 of file rx.c.

int i2400m_rx ( struct i2400m i2400m,
struct sk_buff skb 
)

i2400m_rx - Receive a buffer of data from the device

: device descriptor : skbuff where the data has been received

Parse in a buffer of data that contains an RX message sent from the device. See the file header for the format. Run all checks on the buffer header, then run over each payload's descriptors, verify their consistency and act on each payload's contents. If everything is successful, update the device's statistics.

Note: You need to set the skb to contain only the length of the received buffer; for that, use skb_trim(skb, RECEIVED_SIZE).

Returns:

0 if ok, < 0 errno on error

If ok, this function owns now the skb and the caller DOESN'T have to run kfree_skb() on it. However, on error, the caller still owns the skb and it is responsible for releasing it.

Definition at line 1244 of file rx.c.

void i2400m_rx_release ( struct i2400m i2400m)

Definition at line 1392 of file rx.c.

int i2400m_rx_setup ( struct i2400m i2400m)

Definition at line 1346 of file rx.c.

void i2400m_unknown_barker ( struct i2400m i2400m,
const void buf,
size_t  size 
)

Definition at line 1311 of file rx.c.

module_param_named ( rx_reorder_disabled  ,
i2400m_rx_reorder_disabled  ,
int  ,
0644   
)
MODULE_PARM_DESC ( rx_reorder_disabled  ,
"If  true,
RX reordering will be disabled."   
)