<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML ><HEAD ><TITLE >Linux Networking</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Linux Kernel API" HREF="book1.html"><LINK REL="PREVIOUS" TITLE="get_locks_status" HREF="r4699.html"><LINK REL="NEXT" TITLE="skb_queue_empty" HREF="r4747.html"></HEAD ><BODY CLASS="CHAPTER" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Linux Kernel API</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="r4699.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="r4747.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="CHAPTER" ><H1 ><A NAME="NETCORE" ></A >Linux Networking</H1 ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="AEN4745" ></A >Socket Buffer Functions</H1 ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT ><A HREF="r4747.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_queue_empty</SPAN ></SPAN ></A > -- check if a queue is empty </DT ><DT ><A HREF="r4773.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_get</SPAN ></SPAN ></A > -- reference buffer </DT ><DT ><A HREF="r4799.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >kfree_skb</SPAN ></SPAN ></A > -- free an sk_buff </DT ><DT ><A HREF="r4825.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_cloned</SPAN ></SPAN ></A > -- is the buffer a clone </DT ><DT ><A HREF="r4852.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_shared</SPAN ></SPAN ></A > -- is the buffer shared </DT ><DT ><A HREF="r4878.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_share_check</SPAN ></SPAN ></A > -- check if buffer is shared and if so clone it </DT ><DT ><A HREF="r4912.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_unshare</SPAN ></SPAN ></A > -- make a copy of a shared buffer </DT ><DT ><A HREF="r4949.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_peek</SPAN ></SPAN ></A > -- </DT ><DT ><A HREF="r4977.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_peek_tail</SPAN ></SPAN ></A > -- </DT ><DT ><A HREF="r5005.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_queue_len</SPAN ></SPAN ></A > -- get queue length </DT ><DT ><A HREF="r5031.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__skb_queue_head</SPAN ></SPAN ></A > -- queue a buffer at the list head </DT ><DT ><A HREF="r5065.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_queue_head</SPAN ></SPAN ></A > -- queue a buffer at the list head </DT ><DT ><A HREF="r5099.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__skb_queue_tail</SPAN ></SPAN ></A > -- queue a buffer at the list tail </DT ><DT ><A HREF="r5133.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_queue_tail</SPAN ></SPAN ></A > -- queue a buffer at the list tail </DT ><DT ><A HREF="r5167.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__skb_dequeue</SPAN ></SPAN ></A > -- remove from the head of the queue </DT ><DT ><A HREF="r5194.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_dequeue</SPAN ></SPAN ></A > -- remove from the head of the queue </DT ><DT ><A HREF="r5221.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_insert</SPAN ></SPAN ></A > -- insert a buffer </DT ><DT ><A HREF="r5254.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_append</SPAN ></SPAN ></A > -- append a buffer </DT ><DT ><A HREF="r5287.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_unlink</SPAN ></SPAN ></A > -- remove a buffer from a list </DT ><DT ><A HREF="r5314.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__skb_dequeue_tail</SPAN ></SPAN ></A > -- remove from the tail of the queue </DT ><DT ><A HREF="r5341.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_dequeue_tail</SPAN ></SPAN ></A > -- remove from the head of the queue </DT ><DT ><A HREF="r5368.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_put</SPAN ></SPAN ></A > -- add data to a buffer </DT ><DT ><A HREF="r5401.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_push</SPAN ></SPAN ></A > -- add data to the start of a buffer </DT ><DT ><A HREF="r5434.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_pull</SPAN ></SPAN ></A > -- remove data from the start of a buffer </DT ><DT ><A HREF="r5467.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_headroom</SPAN ></SPAN ></A > -- bytes at buffer head </DT ><DT ><A HREF="r5493.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_tailroom</SPAN ></SPAN ></A > -- bytes at buffer end </DT ><DT ><A HREF="r5519.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_reserve</SPAN ></SPAN ></A > -- adjust headroom </DT ><DT ><A HREF="r5552.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_trim</SPAN ></SPAN ></A > -- remove end from a buffer </DT ><DT ><A HREF="r5585.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_orphan</SPAN ></SPAN ></A > -- orphan a buffer </DT ><DT ><A HREF="r5612.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_queue_purge</SPAN ></SPAN ></A > -- empty a list </DT ><DT ><A HREF="r5638.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__skb_queue_purge</SPAN ></SPAN ></A > -- empty a list </DT ><DT ><A HREF="r5664.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__dev_alloc_skb</SPAN ></SPAN ></A > -- allocate an skbuff for sending </DT ><DT ><A HREF="r5699.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >dev_alloc_skb</SPAN ></SPAN ></A > -- allocate an skbuff for sending </DT ><DT ><A HREF="r5727.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_cow</SPAN ></SPAN ></A > -- copy header of skb when it is required </DT ><DT ><A HREF="r5762.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_over_panic</SPAN ></SPAN ></A > -- private function </DT ><DT ><A HREF="r5803.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_under_panic</SPAN ></SPAN ></A > -- private function </DT ><DT ><A HREF="r5844.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >alloc_skb</SPAN ></SPAN ></A > -- allocate a network buffer </DT ><DT ><A HREF="r5881.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__kfree_skb</SPAN ></SPAN ></A > -- private function </DT ><DT ><A HREF="r5907.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_clone</SPAN ></SPAN ></A > -- duplicate an sk_buff </DT ><DT ><A HREF="r5944.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_copy</SPAN ></SPAN ></A > -- create private copy of an sk_buff </DT ><DT ><A HREF="r5980.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >pskb_copy</SPAN ></SPAN ></A > -- create copy of an sk_buff with private head. </DT ><DT ><A HREF="r6014.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >pskb_expand_head</SPAN ></SPAN ></A > -- reallocate header of <SPAN CLASS="STRUCTNAME" >sk_buff</SPAN > </DT ><DT ><A HREF="r6063.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_copy_expand</SPAN ></SPAN ></A > -- copy and expand sk_buff </DT ><DT ><A HREF="r6114.html" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >__pskb_pull_tail</SPAN ></SPAN ></A > -- advance tail of skb header </DT ></DL ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="r4699.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="r4747.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >get_locks_status</SPAN ></SPAN ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >skb_queue_empty</SPAN ></SPAN ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >