<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><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.75.2" /><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="re68.html" title="skb_clone" /><link rel="next" href="re70.html" title="pskb_copy" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>skb_copy</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re68.html">Prev</a> </td><th width="60%" align="center">Socket Buffer Functions</th><td width="20%" align="right"> <a accesskey="n" href="re70.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="skb_copy"><a id="API-skb-copy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>skb_copy — create private copy of an sk_buff </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><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> </td><td>gfp_t <var class="pdparam">gfp_mask</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Arguments"><a id="id2728226"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>skb</code></em></span></dt><dd><p> buffer to copy </p></dd><dt><span class="term"><em class="parameter"><code>gfp_mask</code></em></span></dt><dd><p> allocation priority </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2728268"></a><h2>Description</h2><p> Make a copy of both an <span class="structname">sk_buff</span> and its data. This is used when the caller wishes to modify the data and needs a private copy of the data to alter. Returns <code class="constant">NULL</code> on failure or the pointer to the buffer on success. The returned buffer has a reference count of 1. </p><p> As by-product this function converts non-linear <span class="structname">sk_buff</span> to linear one, so that <span class="structname">sk_buff</span> becomes completely private and caller is allowed to modify all the data of returned buffer. This means that this function is not recommended for use in circumstances when only header is going to be modified. Use <code class="function">pskb_copy</code> instead. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re68.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="re70.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>skb_clone</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>pskb_copy</span></td></tr></table></div></body></html>