kernels/linux-2.4.0/include/linux/skbuff.h
/**
 *	__skb_dequeue - remove from the head of the queue
 *	@list: list to dequeue from
 *
 *	Remove the head of the list. This function does not take any locks
 *	so must be used with appropriate locks held only. The head item is
 *	returned or %NULL if the list is empty.
 */
remove from the head of the queue
@list: list to dequeue from

Remove the head of the list. This function does not take any locks
so must be used with appropriate locks held only. The head item is
returned or %NULL if the list is empty.
remove from the head of the queue @list : list to dequeue from Remove the head of the list . This function does not take any locks so must be used with appropriate locks held only . The head item is returned or %NULL if the list is empty .
static inline struct sk_buff *__skb_dequeue(struct sk_buff_head *list)
{
	struct sk_buff *next, *prev, *result;
	prev = (struct sk_buff *) list;
	next = prev->next;
	result = NULL;
	if (next != prev) {
		result = next;
		next = next->next;
		list->qlen--;
		next->prev = prev;
		prev->next = next;
		result->next = NULL;
		result->prev = NULL;
		result->list = NULL;
	}
	return result;
}
static inline struct sk_buff * __skb_dequeue ( struct sk_buff_head * list ) { struct sk_buff * next , * prev , * result ; prev = ( struct sk_buff * ) list ; next = prev -> next ; result = NULL ; if ( next != prev ) { result = next ; next = next -> next ; list -> qlen -- ; next -> prev = prev ; prev -> next = next ; result -> next = NULL ; result -> prev = NULL ; result -> list = NULL ; } return result ; }
__skb_dequeue - remove from the head of the queue
      @list: list to dequeue from
__skb_dequeue - remove from the head of the queue @list : list to dequeue from