__skb_insert, skb_insert, skb_append - insert an sk_buff
into a list
SYNOPSIS
#include <linux/skbuff.h>
void __skb_insert(struct sk_buff *newsk, struct sk_buff
*prev, struct sk_buff *next, struct sk_buff_head
*list)
void skb_insert(struct sk_buff *old, struct sk_buff
*newsk)
void skb_append(struct sk_buff *old, struct sk_buff
*newsk)
DESCRIPTION
skb_insert and skb_append are essentially wrapper func
tions for __skb_insert (see NOTES, below.) __skb_insert
inserts newsk into list, and resets the appropriate next
and prev pointers. prev and next are used to frame newsk
in list. After setting the next and prev pointers in
newsk, __skb_insert sets the prev pointer in next and the
next pointer in prev, sets the list pointer in newsk, and
increments the qlen counter in list.
skb_insert and skb_append should be used to add sk_buffs
to a list rather than performing this task manually; in
addition to performing this task in a standardized way,
these functions also provide for interrupt diasabling and
prevent list mangling. Both of these functions use the
list pointer in old to determine to which list newsk
should be attached.
The skb_insert function adds newsk to the list before old.
The skb_append function adds newsk to the list after old.
RETURN VALUE
None.
NOTES
It is important to note the difference between not only
skb_insert, skb_append and __skb_insert, but all the
__skb_ functions and their skb_ counterparts. Essen
tially, the __skb_ functions are non-atomic, and should
only be used with interrupts disabled. As a convenience,
the skb_ functions are provided, which perform interrupt
disable / enable wrapper functionality in addition to per
forming their specific tasks.
AVAILABILITY
intro(9), skb_queue_head(9), skb_queue_tail(9)
/usr/src/linux/net/ax25/af_ax25.c
/usr/src/linux/net/core/skbuff.c
/usr/src/linux/net/ipv4/tcp_input.c
/usr/src/linux/net/netrom/nr_in.c
AUTHOR
Cyrus Durgin <cider@speakeasy.org>
Man(1) output converted with
man2html