NAME
__skb_dequeue, skb_dequeue - remove an sk_buff from the head
of a list
SYNOPSIS
#include <linux/skbuff.h>
struct sk_buff *__skb_dequeue(struct sk_buff_head *list));
struct sk_buff *skb_dequeue(struct sk_buff_head *list));
DESCRIPTION
The skb_dequeue function removes the head element of an
sk_buff_head. It decrements the list qlen pointer, and
cleanly detaches the head from the queue. This function
should be used instead of performing this task manually, as
it provides a clean, standardized way of manipulating an
sk_buff_head, and provides interrupt disabling (see NOTES
below.)
RETURN VALUE
Returns a pointer to the head element of list, or NULL if
list is empty.
NOTES
It is important to note the difference between not only
__skb_dequeue and skb_dequeue, but all the __skb_ functions
and their skb_ counterparts. Essentially, the __skb_ func-
tions are non-atomic, and should only be used with inter-
rupts disabled. As a convenience, the skb_ functions are
provided, which perform interrupt disable / enable wrapper
functionality in addition to performing their specific
tasks.
AVAILABILITY
Linux 1.0+
SEE ALSO
intro(9), skb_unlink(9), skb_insert(9),
/usr/src/linux/net/netlink.c
/usr/src/linux/net/ax25/af_ax25.c
/usr/src/linux/net/core/datagram.c
/usr/src/linux/net/ipv4/ipmr.c /usr/src/linux/net/ipv4/tcp.c
AUTHOR
Cyrus Durgin <cider@speakeasy.org>