Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
af_packet.c File Reference
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/capability.h>
#include <linux/fcntl.h>
#include <linux/socket.h>
#include <linux/in.h>
#include <linux/inet.h>
#include <linux/netdevice.h>
#include <linux/if_packet.h>
#include <linux/wireless.h>
#include <linux/kernel.h>
#include <linux/kmod.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <net/net_namespace.h>
#include <net/ip.h>
#include <net/protocol.h>
#include <linux/skbuff.h>
#include <net/sock.h>
#include <linux/errno.h>
#include <linux/timer.h>
#include <asm/uaccess.h>
#include <asm/ioctls.h>
#include <asm/page.h>
#include <asm/cacheflush.h>
#include <asm/io.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/poll.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/if_vlan.h>
#include <linux/virtio_net.h>
#include <linux/errqueue.h>
#include <linux/net_tstamp.h>
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  packet_mreq_max
 
struct  packet_skb_cb
 

Macros

#define V3_ALIGNMENT   (8)
 
#define BLK_HDR_LEN   (ALIGN(sizeof(struct tpacket_block_desc), V3_ALIGNMENT))
 
#define BLK_PLUS_PRIV(sz_of_priv)   (BLK_HDR_LEN + ALIGN((sz_of_priv), V3_ALIGNMENT))
 
#define PGV_FROM_VMALLOC   1
 
#define BLOCK_STATUS(x)   ((x)->hdr.bh1.block_status)
 
#define BLOCK_NUM_PKTS(x)   ((x)->hdr.bh1.num_pkts)
 
#define BLOCK_O2FP(x)   ((x)->hdr.bh1.offset_to_first_pkt)
 
#define BLOCK_LEN(x)   ((x)->hdr.bh1.blk_len)
 
#define BLOCK_SNUM(x)   ((x)->hdr.bh1.seq_num)
 
#define BLOCK_O2PRIV(x)   ((x)->offset_to_priv)
 
#define BLOCK_PRIV(x)   ((void *)((char *)(x) + BLOCK_O2PRIV(x)))
 
#define PACKET_SKB_CB(__skb)   ((struct packet_skb_cb *)((__skb)->cb))
 
#define GET_PBDQC_FROM_RB(x)   ((struct tpacket_kbdq_core *)(&(x)->prb_bdqc))
 
#define GET_PBLOCK_DESC(x, bid)   ((struct tpacket_block_desc *)((x)->pkbdq[(bid)].buffer))
 
#define GET_CURR_PBLOCK_DESC_FROM_CORE(x)   ((struct tpacket_block_desc *)((x)->pkbdq[(x)->kactive_blk_num].buffer))
 
#define GET_NEXT_PRB_BLK_NUM(x)
 
#define TOTAL_PKT_LEN_INCL_ALIGN(length)   (ALIGN((length), V3_ALIGNMENT))
 

Functions

 DEFINE_MUTEX (fanout_mutex)
 
 EXPORT_SYMBOL_GPL (fanout_mutex)
 
 module_init (packet_init)
 
 module_exit (packet_exit)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS_NETPROTO (PF_PACKET)
 

Macro Definition Documentation

#define BLK_HDR_LEN   (ALIGN(sizeof(struct tpacket_block_desc), V3_ALIGNMENT))

Definition at line 167 of file af_packet.c.

#define BLK_PLUS_PRIV (   sz_of_priv)    (BLK_HDR_LEN + ALIGN((sz_of_priv), V3_ALIGNMENT))

Definition at line 169 of file af_packet.c.

#define BLOCK_LEN (   x)    ((x)->hdr.bh1.blk_len)

Definition at line 177 of file af_packet.c.

#define BLOCK_NUM_PKTS (   x)    ((x)->hdr.bh1.num_pkts)

Definition at line 175 of file af_packet.c.

#define BLOCK_O2FP (   x)    ((x)->hdr.bh1.offset_to_first_pkt)

Definition at line 176 of file af_packet.c.

#define BLOCK_O2PRIV (   x)    ((x)->offset_to_priv)

Definition at line 179 of file af_packet.c.

#define BLOCK_PRIV (   x)    ((void *)((char *)(x) + BLOCK_O2PRIV(x)))

Definition at line 180 of file af_packet.c.

#define BLOCK_SNUM (   x)    ((x)->hdr.bh1.seq_num)

Definition at line 178 of file af_packet.c.

#define BLOCK_STATUS (   x)    ((x)->hdr.bh1.block_status)

Definition at line 174 of file af_packet.c.

#define GET_CURR_PBLOCK_DESC_FROM_CORE (   x)    ((struct tpacket_block_desc *)((x)->pkbdq[(x)->kactive_blk_num].buffer))

Definition at line 223 of file af_packet.c.

#define GET_NEXT_PRB_BLK_NUM (   x)
Value:
(((x)->kactive_blk_num < ((x)->knum_blocks-1)) ? \
((x)->kactive_blk_num+1) : 0)

Definition at line 225 of file af_packet.c.

#define GET_PBDQC_FROM_RB (   x)    ((struct tpacket_kbdq_core *)(&(x)->prb_bdqc))

Definition at line 220 of file af_packet.c.

#define GET_PBLOCK_DESC (   x,
  bid 
)    ((struct tpacket_block_desc *)((x)->pkbdq[(bid)].buffer))

Definition at line 221 of file af_packet.c.

#define PACKET_SKB_CB (   __skb)    ((struct packet_skb_cb *)((__skb)->cb))

Definition at line 218 of file af_packet.c.

#define PGV_FROM_VMALLOC   1

Definition at line 172 of file af_packet.c.

#define TOTAL_PKT_LEN_INCL_ALIGN (   length)    (ALIGN((length), V3_ALIGNMENT))

Definition at line 758 of file af_packet.c.

#define V3_ALIGNMENT   (8)

Definition at line 165 of file af_packet.c.

Function Documentation

DEFINE_MUTEX ( fanout_mutex  )
EXPORT_SYMBOL_GPL ( fanout_mutex  )
MODULE_ALIAS_NETPROTO ( PF_PACKET  )
module_exit ( packet_exit  )
module_init ( packet_init  )
MODULE_LICENSE ( "GPL"  )