1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>skb_copy</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Networking and Network Devices APIs"><link rel="up" href="ch01s02.html" title="Socket Buffer Functions"><link rel="prev" href="API-skb-clone.html" title="skb_clone"><link rel="next" href="API---pskb-copy-fclone.html" title="__pskb_copy_fclone"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">skb_copy</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-skb-clone.html">Prev</a>&#160;</td><th width="60%" align="center">Socket Buffer Functions</th><td width="20%" align="right">&#160;<a accesskey="n" href="API---pskb-copy-fclone.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-skb-copy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>skb_copy &#8212; 
2     create private copy of an sk_buff
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">struct sk_buff * <b class="fsfunc">skb_copy </b>(</code></td><td>const struct sk_buff * <var class="pdparam">skb</var>, </td></tr><tr><td>&#160;</td><td>gfp_t <var class="pdparam">gfp_mask</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1096083804"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p>
4     buffer to copy
5    </p></dd><dt><span class="term"><em class="parameter"><code>gfp_mask</code></em></span></dt><dd><p>
6     allocation priority
7    </p></dd></dl></div></div><div class="refsect1"><a name="idp1096086324"></a><h2>Description</h2><p>
8   Make a copy of both an <span class="structname">sk_buff</span> and its data. This is used when the
9   caller wishes to modify the data and needs a private copy of the
10   data to alter. Returns <code class="constant">NULL</code> on failure or the pointer to the buffer
11   on success. The returned buffer has a reference count of 1.
12   </p><p>
13
14   As by-product this function converts non-linear <span class="structname">sk_buff</span> to linear
15   one, so that <span class="structname">sk_buff</span> becomes completely private and caller is allowed
16   to modify all the data of returned buffer. This means that this
17   function is not recommended for use in circumstances when only
18   header is going to be modified. Use <code class="function">pskb_copy</code> instead.
19</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-skb-clone.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch01s02.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API---pskb-copy-fclone.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">skb_clone</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">__pskb_copy_fclone</span></td></tr></table></div></body></html>
20