1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Socket Buffer Functions</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="netcore.html" title="Chapter&#160;1.&#160;Linux Networking"><link rel="prev" href="API-struct-socket.html" title="struct socket"><link rel="next" href="API-struct-skb-shared-hwtstamps.html" title="struct skb_shared_hwtstamps"></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">Socket Buffer Functions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-socket.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;1.&#160;Linux Networking</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-struct-skb-shared-hwtstamps.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp1092825556"></a>Socket Buffer Functions</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-struct-skb-shared-hwtstamps.html"><span class="phrase">struct skb_shared_hwtstamps</span></a></span><span class="refpurpose"> &#8212; 
2  hardware time stamps
3 </span></dt><dt><span class="refentrytitle"><a href="API-struct-skb-mstamp.html"><span class="phrase">struct skb_mstamp</span></a></span><span class="refpurpose"> &#8212; 
4     multi resolution time stamps
5 </span></dt><dt><span class="refentrytitle"><a href="API-skb-mstamp-get.html"><span class="phrase">skb_mstamp_get</span></a></span><span class="refpurpose"> &#8212; 
6     get current timestamp
7 </span></dt><dt><span class="refentrytitle"><a href="API-skb-mstamp-us-delta.html"><span class="phrase">skb_mstamp_us_delta</span></a></span><span class="refpurpose"> &#8212; 
8     compute the difference in usec between two skb_mstamp
9 </span></dt><dt><span class="refentrytitle"><a href="API-struct-sk-buff.html"><span class="phrase">struct sk_buff</span></a></span><span class="refpurpose"> &#8212; 
10     socket buffer
11 </span></dt><dt><span class="refentrytitle"><a href="API-skb-dst.html"><span class="phrase">skb_dst</span></a></span><span class="refpurpose"> &#8212; 
12     returns skb dst_entry
13 </span></dt><dt><span class="refentrytitle"><a href="API-skb-dst-set.html"><span class="phrase">skb_dst_set</span></a></span><span class="refpurpose"> &#8212; 
14     sets skb dst
15 </span></dt><dt><span class="refentrytitle"><a href="API-skb-dst-set-noref.html"><span class="phrase">skb_dst_set_noref</span></a></span><span class="refpurpose"> &#8212; 
16     sets skb dst, hopefully, without taking reference
17 </span></dt><dt><span class="refentrytitle"><a href="API-skb-dst-is-noref.html"><span class="phrase">skb_dst_is_noref</span></a></span><span class="refpurpose"> &#8212; 
18     Test if skb dst isn't refcounted
19 </span></dt><dt><span class="refentrytitle"><a href="API-skb-fclone-busy.html"><span class="phrase">skb_fclone_busy</span></a></span><span class="refpurpose"> &#8212; 
20     check if fclone is busy
21 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-empty.html"><span class="phrase">skb_queue_empty</span></a></span><span class="refpurpose"> &#8212; 
22     check if a queue is empty
23 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-is-last.html"><span class="phrase">skb_queue_is_last</span></a></span><span class="refpurpose"> &#8212; 
24     check if skb is the last entry in the queue
25 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-is-first.html"><span class="phrase">skb_queue_is_first</span></a></span><span class="refpurpose"> &#8212; 
26     check if skb is the first entry in the queue
27 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-next.html"><span class="phrase">skb_queue_next</span></a></span><span class="refpurpose"> &#8212; 
28     return the next packet in the queue
29 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-prev.html"><span class="phrase">skb_queue_prev</span></a></span><span class="refpurpose"> &#8212; 
30     return the prev packet in the queue
31 </span></dt><dt><span class="refentrytitle"><a href="API-skb-get.html"><span class="phrase">skb_get</span></a></span><span class="refpurpose"> &#8212; 
32     reference buffer
33 </span></dt><dt><span class="refentrytitle"><a href="API-skb-cloned.html"><span class="phrase">skb_cloned</span></a></span><span class="refpurpose"> &#8212; 
34     is the buffer a clone
35 </span></dt><dt><span class="refentrytitle"><a href="API-skb-header-cloned.html"><span class="phrase">skb_header_cloned</span></a></span><span class="refpurpose"> &#8212; 
36     is the header a clone
37 </span></dt><dt><span class="refentrytitle"><a href="API-skb-header-release.html"><span class="phrase">skb_header_release</span></a></span><span class="refpurpose"> &#8212; 
38     release reference to header
39 </span></dt><dt><span class="refentrytitle"><a href="API---skb-header-release.html"><span class="phrase">__skb_header_release</span></a></span><span class="refpurpose"> &#8212; 
40     release reference to header
41 </span></dt><dt><span class="refentrytitle"><a href="API-skb-shared.html"><span class="phrase">skb_shared</span></a></span><span class="refpurpose"> &#8212; 
42     is the buffer shared
43 </span></dt><dt><span class="refentrytitle"><a href="API-skb-share-check.html"><span class="phrase">skb_share_check</span></a></span><span class="refpurpose"> &#8212; 
44     check if buffer is shared and if so clone it
45 </span></dt><dt><span class="refentrytitle"><a href="API-skb-unshare.html"><span class="phrase">skb_unshare</span></a></span><span class="refpurpose"> &#8212; 
46     make a copy of a shared buffer
47 </span></dt><dt><span class="refentrytitle"><a href="API-skb-peek.html"><span class="phrase">skb_peek</span></a></span><span class="refpurpose"> &#8212; 
48     peek at the head of an <span class="structname">sk_buff_head</span>
49 </span></dt><dt><span class="refentrytitle"><a href="API-skb-peek-next.html"><span class="phrase">skb_peek_next</span></a></span><span class="refpurpose"> &#8212; 
50     peek skb following the given one from a queue
51 </span></dt><dt><span class="refentrytitle"><a href="API-skb-peek-tail.html"><span class="phrase">skb_peek_tail</span></a></span><span class="refpurpose"> &#8212; 
52     peek at the tail of an <span class="structname">sk_buff_head</span>
53 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-len.html"><span class="phrase">skb_queue_len</span></a></span><span class="refpurpose"> &#8212; 
54     get queue length
55 </span></dt><dt><span class="refentrytitle"><a href="API---skb-queue-head-init.html"><span class="phrase">__skb_queue_head_init</span></a></span><span class="refpurpose"> &#8212; 
56     initialize non-spinlock portions of sk_buff_head
57 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-splice.html"><span class="phrase">skb_queue_splice</span></a></span><span class="refpurpose"> &#8212; 
58     join two skb lists, this is designed for stacks
59 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-splice-init.html"><span class="phrase">skb_queue_splice_init</span></a></span><span class="refpurpose"> &#8212; 
60     join two skb lists and reinitialise the emptied list
61 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-splice-tail.html"><span class="phrase">skb_queue_splice_tail</span></a></span><span class="refpurpose"> &#8212; 
62     join two skb lists, each list being a queue
63 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-splice-tail-init.html"><span class="phrase">skb_queue_splice_tail_init</span></a></span><span class="refpurpose"> &#8212; 
64     join two skb lists and reinitialise the emptied list
65 </span></dt><dt><span class="refentrytitle"><a href="API---skb-queue-after.html"><span class="phrase">__skb_queue_after</span></a></span><span class="refpurpose"> &#8212; 
66     queue a buffer at the list head
67 </span></dt><dt><span class="refentrytitle"><a href="API---skb-fill-page-desc.html"><span class="phrase">__skb_fill_page_desc</span></a></span><span class="refpurpose"> &#8212; 
68     initialise a paged fragment in an skb
69 </span></dt><dt><span class="refentrytitle"><a href="API-skb-fill-page-desc.html"><span class="phrase">skb_fill_page_desc</span></a></span><span class="refpurpose"> &#8212; 
70     initialise a paged fragment in an skb
71 </span></dt><dt><span class="refentrytitle"><a href="API-skb-headroom.html"><span class="phrase">skb_headroom</span></a></span><span class="refpurpose"> &#8212; 
72     bytes at buffer head
73 </span></dt><dt><span class="refentrytitle"><a href="API-skb-tailroom.html"><span class="phrase">skb_tailroom</span></a></span><span class="refpurpose"> &#8212; 
74     bytes at buffer end
75 </span></dt><dt><span class="refentrytitle"><a href="API-skb-availroom.html"><span class="phrase">skb_availroom</span></a></span><span class="refpurpose"> &#8212; 
76     bytes at buffer end
77 </span></dt><dt><span class="refentrytitle"><a href="API-skb-reserve.html"><span class="phrase">skb_reserve</span></a></span><span class="refpurpose"> &#8212; 
78     adjust headroom
79 </span></dt><dt><span class="refentrytitle"><a href="API-pskb-trim-unique.html"><span class="phrase">pskb_trim_unique</span></a></span><span class="refpurpose"> &#8212; 
80     remove end from a paged unique (not cloned) buffer
81 </span></dt><dt><span class="refentrytitle"><a href="API-skb-orphan.html"><span class="phrase">skb_orphan</span></a></span><span class="refpurpose"> &#8212; 
82     orphan a buffer
83 </span></dt><dt><span class="refentrytitle"><a href="API-skb-orphan-frags.html"><span class="phrase">skb_orphan_frags</span></a></span><span class="refpurpose"> &#8212; 
84     orphan the frags contained in a buffer
85 </span></dt><dt><span class="refentrytitle"><a href="API-netdev-alloc-skb.html"><span class="phrase">netdev_alloc_skb</span></a></span><span class="refpurpose"> &#8212; 
86     allocate an skbuff for rx on a specific device
87 </span></dt><dt><span class="refentrytitle"><a href="API---dev-alloc-pages.html"><span class="phrase">__dev_alloc_pages</span></a></span><span class="refpurpose"> &#8212; 
88     allocate page for network Rx
89 </span></dt><dt><span class="refentrytitle"><a href="API---dev-alloc-page.html"><span class="phrase">__dev_alloc_page</span></a></span><span class="refpurpose"> &#8212; 
90     allocate a page for network Rx
91 </span></dt><dt><span class="refentrytitle"><a href="API-skb-propagate-pfmemalloc.html"><span class="phrase">skb_propagate_pfmemalloc</span></a></span><span class="refpurpose"> &#8212; 
92     Propagate pfmemalloc if skb is allocated after RX page
93 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-page.html"><span class="phrase">skb_frag_page</span></a></span><span class="refpurpose"> &#8212; 
94     retrieve the page referred to by a paged fragment
95 </span></dt><dt><span class="refentrytitle"><a href="API---skb-frag-ref.html"><span class="phrase">__skb_frag_ref</span></a></span><span class="refpurpose"> &#8212; 
96     take an addition reference on a paged fragment.
97 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-ref.html"><span class="phrase">skb_frag_ref</span></a></span><span class="refpurpose"> &#8212; 
98     take an addition reference on a paged fragment of an skb.
99 </span></dt><dt><span class="refentrytitle"><a href="API---skb-frag-unref.html"><span class="phrase">__skb_frag_unref</span></a></span><span class="refpurpose"> &#8212; 
100     release a reference on a paged fragment.
101 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-unref.html"><span class="phrase">skb_frag_unref</span></a></span><span class="refpurpose"> &#8212; 
102     release a reference on a paged fragment of an skb.
103 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-address.html"><span class="phrase">skb_frag_address</span></a></span><span class="refpurpose"> &#8212; 
104     gets the address of the data contained in a paged fragment
105 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-address-safe.html"><span class="phrase">skb_frag_address_safe</span></a></span><span class="refpurpose"> &#8212; 
106     gets the address of the data contained in a paged fragment
107 </span></dt><dt><span class="refentrytitle"><a href="API---skb-frag-set-page.html"><span class="phrase">__skb_frag_set_page</span></a></span><span class="refpurpose"> &#8212; 
108     sets the page contained in a paged fragment
109 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-set-page.html"><span class="phrase">skb_frag_set_page</span></a></span><span class="refpurpose"> &#8212; 
110     sets the page contained in a paged fragment of an skb
111 </span></dt><dt><span class="refentrytitle"><a href="API-skb-frag-dma-map.html"><span class="phrase">skb_frag_dma_map</span></a></span><span class="refpurpose"> &#8212; 
112     maps a paged fragment via the DMA API
113 </span></dt><dt><span class="refentrytitle"><a href="API-skb-clone-writable.html"><span class="phrase">skb_clone_writable</span></a></span><span class="refpurpose"> &#8212; 
114     is the header of a clone writable
115 </span></dt><dt><span class="refentrytitle"><a href="API-skb-cow.html"><span class="phrase">skb_cow</span></a></span><span class="refpurpose"> &#8212; 
116     copy header of skb when it is required
117 </span></dt><dt><span class="refentrytitle"><a href="API-skb-cow-head.html"><span class="phrase">skb_cow_head</span></a></span><span class="refpurpose"> &#8212; 
118     skb_cow but only making the head writable
119 </span></dt><dt><span class="refentrytitle"><a href="API-skb-padto.html"><span class="phrase">skb_padto</span></a></span><span class="refpurpose"> &#8212; 
120     pad an skbuff up to a minimal size
121 </span></dt><dt><span class="refentrytitle"><a href="API-skb-put-padto.html"><span class="phrase">skb_put_padto</span></a></span><span class="refpurpose"> &#8212; 
122     increase size and pad an skbuff up to a minimal size
123 </span></dt><dt><span class="refentrytitle"><a href="API-skb-linearize.html"><span class="phrase">skb_linearize</span></a></span><span class="refpurpose"> &#8212; 
124     convert paged skb to linear one
125 </span></dt><dt><span class="refentrytitle"><a href="API-skb-has-shared-frag.html"><span class="phrase">skb_has_shared_frag</span></a></span><span class="refpurpose"> &#8212; 
126     can any frag be overwritten
127 </span></dt><dt><span class="refentrytitle"><a href="API-skb-linearize-cow.html"><span class="phrase">skb_linearize_cow</span></a></span><span class="refpurpose"> &#8212; 
128     make sure skb is linear and writable
129 </span></dt><dt><span class="refentrytitle"><a href="API-skb-postpull-rcsum.html"><span class="phrase">skb_postpull_rcsum</span></a></span><span class="refpurpose"> &#8212; 
130     update checksum for received skb after pull
131 </span></dt><dt><span class="refentrytitle"><a href="API-pskb-trim-rcsum.html"><span class="phrase">pskb_trim_rcsum</span></a></span><span class="refpurpose"> &#8212; 
132     trim received skb and update checksum
133 </span></dt><dt><span class="refentrytitle"><a href="API-skb-needs-linearize.html"><span class="phrase">skb_needs_linearize</span></a></span><span class="refpurpose"> &#8212; 
134     check if we need to linearize a given skb depending on the given device features.
135 </span></dt><dt><span class="refentrytitle"><a href="API-skb-get-timestamp.html"><span class="phrase">skb_get_timestamp</span></a></span><span class="refpurpose"> &#8212; 
136     get timestamp from a skb
137 </span></dt><dt><span class="refentrytitle"><a href="API-skb-tx-timestamp.html"><span class="phrase">skb_tx_timestamp</span></a></span><span class="refpurpose"> &#8212; 
138     Driver hook for transmit timestamping
139 </span></dt><dt><span class="refentrytitle"><a href="API-skb-checksum-complete.html"><span class="phrase">skb_checksum_complete</span></a></span><span class="refpurpose"> &#8212; 
140     Calculate checksum of an entire packet
141 </span></dt><dt><span class="refentrytitle"><a href="API-skb-checksum-none-assert.html"><span class="phrase">skb_checksum_none_assert</span></a></span><span class="refpurpose"> &#8212; 
142     make sure skb ip_summed is CHECKSUM_NONE
143 </span></dt><dt><span class="refentrytitle"><a href="API-skb-head-is-locked.html"><span class="phrase">skb_head_is_locked</span></a></span><span class="refpurpose"> &#8212; 
144     Determine if the skb-&gt;head is locked down
145 </span></dt><dt><span class="refentrytitle"><a href="API-skb-gso-network-seglen.html"><span class="phrase">skb_gso_network_seglen</span></a></span><span class="refpurpose"> &#8212; 
146     Return length of individual segments of a gso packet
147 </span></dt><dt><span class="refentrytitle"><a href="API-struct-sock-common.html"><span class="phrase">struct sock_common</span></a></span><span class="refpurpose"> &#8212; 
148  minimal network layer representation of sockets
149 </span></dt><dt><span class="refentrytitle"><a href="API-struct-sock.html"><span class="phrase">struct sock</span></a></span><span class="refpurpose"> &#8212; 
150     network layer representation of sockets
151 </span></dt><dt><span class="refentrytitle"><a href="API-sk-nulls-for-each-entry-offset.html"><span class="phrase">sk_nulls_for_each_entry_offset</span></a></span><span class="refpurpose"> &#8212; 
152     iterate over a list at a given struct offset
153 </span></dt><dt><span class="refentrytitle"><a href="API-unlock-sock-fast.html"><span class="phrase">unlock_sock_fast</span></a></span><span class="refpurpose"> &#8212; 
154     complement of lock_sock_fast
155 </span></dt><dt><span class="refentrytitle"><a href="API-sk-wmem-alloc-get.html"><span class="phrase">sk_wmem_alloc_get</span></a></span><span class="refpurpose"> &#8212; 
156     returns write allocations
157 </span></dt><dt><span class="refentrytitle"><a href="API-sk-rmem-alloc-get.html"><span class="phrase">sk_rmem_alloc_get</span></a></span><span class="refpurpose"> &#8212; 
158     returns read allocations
159 </span></dt><dt><span class="refentrytitle"><a href="API-sk-has-allocations.html"><span class="phrase">sk_has_allocations</span></a></span><span class="refpurpose"> &#8212; 
160     check if allocations are outstanding
161 </span></dt><dt><span class="refentrytitle"><a href="API-wq-has-sleeper.html"><span class="phrase">wq_has_sleeper</span></a></span><span class="refpurpose"> &#8212; 
162     check if there are any waiting processes
163 </span></dt><dt><span class="refentrytitle"><a href="API-sock-poll-wait.html"><span class="phrase">sock_poll_wait</span></a></span><span class="refpurpose"> &#8212; 
164     place memory barrier behind the poll_wait call.
165 </span></dt><dt><span class="refentrytitle"><a href="API-sk-page-frag.html"><span class="phrase">sk_page_frag</span></a></span><span class="refpurpose"> &#8212; 
166     return an appropriate page_frag
167 </span></dt><dt><span class="refentrytitle"><a href="API-sock-tx-timestamp.html"><span class="phrase">sock_tx_timestamp</span></a></span><span class="refpurpose"> &#8212; 
168     checks whether the outgoing packet is to be time stamped
169 </span></dt><dt><span class="refentrytitle"><a href="API-sk-eat-skb.html"><span class="phrase">sk_eat_skb</span></a></span><span class="refpurpose"> &#8212; 
170     Release a skb if it is no longer needed
171 </span></dt><dt><span class="refentrytitle"><a href="API-sockfd-lookup.html"><span class="phrase">sockfd_lookup</span></a></span><span class="refpurpose"> &#8212; 
172  Go from a file number to its socket slot
173 </span></dt><dt><span class="refentrytitle"><a href="API-sock-release.html"><span class="phrase">sock_release</span></a></span><span class="refpurpose"> &#8212; 
174     close a socket
175 </span></dt><dt><span class="refentrytitle"><a href="API-kernel-recvmsg.html"><span class="phrase">kernel_recvmsg</span></a></span><span class="refpurpose"> &#8212; 
176     Receive a message from a socket (kernel space)
177 </span></dt><dt><span class="refentrytitle"><a href="API-sock-register.html"><span class="phrase">sock_register</span></a></span><span class="refpurpose"> &#8212; 
178     add a socket protocol handler
179 </span></dt><dt><span class="refentrytitle"><a href="API-sock-unregister.html"><span class="phrase">sock_unregister</span></a></span><span class="refpurpose"> &#8212; 
180     remove a protocol handler
181 </span></dt><dt><span class="refentrytitle"><a href="API---alloc-skb.html"><span class="phrase">__alloc_skb</span></a></span><span class="refpurpose"> &#8212; 
182  allocate a network buffer
183 </span></dt><dt><span class="refentrytitle"><a href="API-netdev-alloc-frag.html"><span class="phrase">netdev_alloc_frag</span></a></span><span class="refpurpose"> &#8212; 
184     allocate a page fragment
185 </span></dt><dt><span class="refentrytitle"><a href="API---netdev-alloc-skb.html"><span class="phrase">__netdev_alloc_skb</span></a></span><span class="refpurpose"> &#8212; 
186     allocate an skbuff for rx on a specific device
187 </span></dt><dt><span class="refentrytitle"><a href="API---napi-alloc-skb.html"><span class="phrase">__napi_alloc_skb</span></a></span><span class="refpurpose"> &#8212; 
188     allocate skbuff for rx in a specific NAPI instance
189 </span></dt><dt><span class="refentrytitle"><a href="API---kfree-skb.html"><span class="phrase">__kfree_skb</span></a></span><span class="refpurpose"> &#8212; 
190     private function
191 </span></dt><dt><span class="refentrytitle"><a href="API-kfree-skb.html"><span class="phrase">kfree_skb</span></a></span><span class="refpurpose"> &#8212; 
192     free an sk_buff
193 </span></dt><dt><span class="refentrytitle"><a href="API-skb-tx-error.html"><span class="phrase">skb_tx_error</span></a></span><span class="refpurpose"> &#8212; 
194     report an sk_buff xmit error
195 </span></dt><dt><span class="refentrytitle"><a href="API-consume-skb.html"><span class="phrase">consume_skb</span></a></span><span class="refpurpose"> &#8212; 
196     free an skbuff
197 </span></dt><dt><span class="refentrytitle"><a href="API-skb-morph.html"><span class="phrase">skb_morph</span></a></span><span class="refpurpose"> &#8212; 
198     morph one skb into another
199 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy-ubufs.html"><span class="phrase">skb_copy_ubufs</span></a></span><span class="refpurpose"> &#8212; 
200     copy userspace skb frags buffers to kernel
201 </span></dt><dt><span class="refentrytitle"><a href="API-skb-clone.html"><span class="phrase">skb_clone</span></a></span><span class="refpurpose"> &#8212; 
202     duplicate an sk_buff
203 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy.html"><span class="phrase">skb_copy</span></a></span><span class="refpurpose"> &#8212; 
204     create private copy of an sk_buff
205 </span></dt><dt><span class="refentrytitle"><a href="API---pskb-copy-fclone.html"><span class="phrase">__pskb_copy_fclone</span></a></span><span class="refpurpose"> &#8212; 
206     create copy of an sk_buff with private head.
207 </span></dt><dt><span class="refentrytitle"><a href="API-pskb-expand-head.html"><span class="phrase">pskb_expand_head</span></a></span><span class="refpurpose"> &#8212; 
208     reallocate header of <span class="structname">sk_buff</span>
209 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy-expand.html"><span class="phrase">skb_copy_expand</span></a></span><span class="refpurpose"> &#8212; 
210     copy and expand sk_buff
211 </span></dt><dt><span class="refentrytitle"><a href="API-skb-pad.html"><span class="phrase">skb_pad</span></a></span><span class="refpurpose"> &#8212; 
212     zero pad the tail of an skb
213 </span></dt><dt><span class="refentrytitle"><a href="API-pskb-put.html"><span class="phrase">pskb_put</span></a></span><span class="refpurpose"> &#8212; 
214     add data to the tail of a potentially fragmented buffer
215 </span></dt><dt><span class="refentrytitle"><a href="API-skb-put.html"><span class="phrase">skb_put</span></a></span><span class="refpurpose"> &#8212; 
216     add data to a buffer
217 </span></dt><dt><span class="refentrytitle"><a href="API-skb-push.html"><span class="phrase">skb_push</span></a></span><span class="refpurpose"> &#8212; 
218     add data to the start of a buffer
219 </span></dt><dt><span class="refentrytitle"><a href="API-skb-pull.html"><span class="phrase">skb_pull</span></a></span><span class="refpurpose"> &#8212; 
220     remove data from the start of a buffer
221 </span></dt><dt><span class="refentrytitle"><a href="API-skb-trim.html"><span class="phrase">skb_trim</span></a></span><span class="refpurpose"> &#8212; 
222     remove end from a buffer
223 </span></dt><dt><span class="refentrytitle"><a href="API---pskb-pull-tail.html"><span class="phrase">__pskb_pull_tail</span></a></span><span class="refpurpose"> &#8212; 
224     advance tail of skb header
225 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy-bits.html"><span class="phrase">skb_copy_bits</span></a></span><span class="refpurpose"> &#8212; 
226     copy bits from skb to kernel buffer
227 </span></dt><dt><span class="refentrytitle"><a href="API-skb-store-bits.html"><span class="phrase">skb_store_bits</span></a></span><span class="refpurpose"> &#8212; 
228     store bits from kernel buffer to skb
229 </span></dt><dt><span class="refentrytitle"><a href="API-skb-zerocopy.html"><span class="phrase">skb_zerocopy</span></a></span><span class="refpurpose"> &#8212; 
230     Zero copy skb to skb
231 </span></dt><dt><span class="refentrytitle"><a href="API-skb-dequeue.html"><span class="phrase">skb_dequeue</span></a></span><span class="refpurpose"> &#8212; 
232     remove from the head of the queue
233 </span></dt><dt><span class="refentrytitle"><a href="API-skb-dequeue-tail.html"><span class="phrase">skb_dequeue_tail</span></a></span><span class="refpurpose"> &#8212; 
234     remove from the tail of the queue
235 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-purge.html"><span class="phrase">skb_queue_purge</span></a></span><span class="refpurpose"> &#8212; 
236     empty a list
237 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-head.html"><span class="phrase">skb_queue_head</span></a></span><span class="refpurpose"> &#8212; 
238     queue a buffer at the list head
239 </span></dt><dt><span class="refentrytitle"><a href="API-skb-queue-tail.html"><span class="phrase">skb_queue_tail</span></a></span><span class="refpurpose"> &#8212; 
240     queue a buffer at the list tail
241 </span></dt><dt><span class="refentrytitle"><a href="API-skb-unlink.html"><span class="phrase">skb_unlink</span></a></span><span class="refpurpose"> &#8212; 
242     remove a buffer from a list
243 </span></dt><dt><span class="refentrytitle"><a href="API-skb-append.html"><span class="phrase">skb_append</span></a></span><span class="refpurpose"> &#8212; 
244     append a buffer
245 </span></dt><dt><span class="refentrytitle"><a href="API-skb-insert.html"><span class="phrase">skb_insert</span></a></span><span class="refpurpose"> &#8212; 
246     insert a buffer
247 </span></dt><dt><span class="refentrytitle"><a href="API-skb-split.html"><span class="phrase">skb_split</span></a></span><span class="refpurpose"> &#8212; 
248     Split fragmented skb to two parts at length len.
249 </span></dt><dt><span class="refentrytitle"><a href="API-skb-prepare-seq-read.html"><span class="phrase">skb_prepare_seq_read</span></a></span><span class="refpurpose"> &#8212; 
250     Prepare a sequential read of skb data
251 </span></dt><dt><span class="refentrytitle"><a href="API-skb-seq-read.html"><span class="phrase">skb_seq_read</span></a></span><span class="refpurpose"> &#8212; 
252     Sequentially read skb data
253 </span></dt><dt><span class="refentrytitle"><a href="API-skb-abort-seq-read.html"><span class="phrase">skb_abort_seq_read</span></a></span><span class="refpurpose"> &#8212; 
254     Abort a sequential read of skb data
255 </span></dt><dt><span class="refentrytitle"><a href="API-skb-find-text.html"><span class="phrase">skb_find_text</span></a></span><span class="refpurpose"> &#8212; 
256     Find a text pattern in skb data
257 </span></dt><dt><span class="refentrytitle"><a href="API-skb-append-datato-frags.html"><span class="phrase">skb_append_datato_frags</span></a></span><span class="refpurpose"> &#8212; 
258     append the user data to a skb
259 </span></dt><dt><span class="refentrytitle"><a href="API-skb-pull-rcsum.html"><span class="phrase">skb_pull_rcsum</span></a></span><span class="refpurpose"> &#8212; 
260     pull skb and update receive checksum
261 </span></dt><dt><span class="refentrytitle"><a href="API-skb-segment.html"><span class="phrase">skb_segment</span></a></span><span class="refpurpose"> &#8212; 
262     Perform protocol segmentation on skb.
263 </span></dt><dt><span class="refentrytitle"><a href="API-skb-cow-data.html"><span class="phrase">skb_cow_data</span></a></span><span class="refpurpose"> &#8212; 
264     Check that a socket buffer's data buffers are writable
265 </span></dt><dt><span class="refentrytitle"><a href="API-skb-clone-sk.html"><span class="phrase">skb_clone_sk</span></a></span><span class="refpurpose"> &#8212; 
266     create clone of skb, and take reference to socket
267 </span></dt><dt><span class="refentrytitle"><a href="API-skb-partial-csum-set.html"><span class="phrase">skb_partial_csum_set</span></a></span><span class="refpurpose"> &#8212; 
268     set up and verify partial csum values for packet
269 </span></dt><dt><span class="refentrytitle"><a href="API-skb-checksum-setup.html"><span class="phrase">skb_checksum_setup</span></a></span><span class="refpurpose"> &#8212; 
270     set up partial checksum offset
271 </span></dt><dt><span class="refentrytitle"><a href="API-skb-try-coalesce.html"><span class="phrase">skb_try_coalesce</span></a></span><span class="refpurpose"> &#8212; 
272     try to merge skb to prior one
273 </span></dt><dt><span class="refentrytitle"><a href="API-skb-scrub-packet.html"><span class="phrase">skb_scrub_packet</span></a></span><span class="refpurpose"> &#8212; 
274     scrub an skb
275 </span></dt><dt><span class="refentrytitle"><a href="API-skb-gso-transport-seglen.html"><span class="phrase">skb_gso_transport_seglen</span></a></span><span class="refpurpose"> &#8212; 
276     Return length of individual segments of a gso packet
277 </span></dt><dt><span class="refentrytitle"><a href="API-alloc-skb-with-frags.html"><span class="phrase">alloc_skb_with_frags</span></a></span><span class="refpurpose"> &#8212; 
278     allocate skb with page frags
279 </span></dt><dt><span class="refentrytitle"><a href="API-sk-ns-capable.html"><span class="phrase">sk_ns_capable</span></a></span><span class="refpurpose"> &#8212; 
280  General socket capability test
281 </span></dt><dt><span class="refentrytitle"><a href="API-sk-capable.html"><span class="phrase">sk_capable</span></a></span><span class="refpurpose"> &#8212; 
282     Socket global capability test
283 </span></dt><dt><span class="refentrytitle"><a href="API-sk-net-capable.html"><span class="phrase">sk_net_capable</span></a></span><span class="refpurpose"> &#8212; 
284     Network namespace socket capability test
285 </span></dt><dt><span class="refentrytitle"><a href="API-sk-set-memalloc.html"><span class="phrase">sk_set_memalloc</span></a></span><span class="refpurpose"> &#8212; 
286     sets <code class="constant">SOCK_MEMALLOC</code>
287 </span></dt><dt><span class="refentrytitle"><a href="API-sk-alloc.html"><span class="phrase">sk_alloc</span></a></span><span class="refpurpose"> &#8212; 
288     All socket objects are allocated here
289 </span></dt><dt><span class="refentrytitle"><a href="API-sk-clone-lock.html"><span class="phrase">sk_clone_lock</span></a></span><span class="refpurpose"> &#8212; 
290     clone a socket, and lock its clone
291 </span></dt><dt><span class="refentrytitle"><a href="API-skb-page-frag-refill.html"><span class="phrase">skb_page_frag_refill</span></a></span><span class="refpurpose"> &#8212; 
292     check that a page_frag contains enough room
293 </span></dt><dt><span class="refentrytitle"><a href="API-sk-wait-data.html"><span class="phrase">sk_wait_data</span></a></span><span class="refpurpose"> &#8212; 
294     wait for data to arrive at sk_receive_queue
295 </span></dt><dt><span class="refentrytitle"><a href="API---sk-mem-schedule.html"><span class="phrase">__sk_mem_schedule</span></a></span><span class="refpurpose"> &#8212; 
296     increase sk_forward_alloc and memory_allocated
297 </span></dt><dt><span class="refentrytitle"><a href="API---sk-mem-reclaim.html"><span class="phrase">__sk_mem_reclaim</span></a></span><span class="refpurpose"> &#8212; 
298     reclaim memory_allocated
299 </span></dt><dt><span class="refentrytitle"><a href="API-lock-sock-fast.html"><span class="phrase">lock_sock_fast</span></a></span><span class="refpurpose"> &#8212; 
300     fast version of lock_sock
301 </span></dt><dt><span class="refentrytitle"><a href="API---skb-recv-datagram.html"><span class="phrase">__skb_recv_datagram</span></a></span><span class="refpurpose"> &#8212; 
302  Receive a datagram skbuff
303 </span></dt><dt><span class="refentrytitle"><a href="API-skb-kill-datagram.html"><span class="phrase">skb_kill_datagram</span></a></span><span class="refpurpose"> &#8212; 
304     Free a datagram skbuff forcibly
305 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy-datagram-iter.html"><span class="phrase">skb_copy_datagram_iter</span></a></span><span class="refpurpose"> &#8212; 
306     Copy a datagram to an iovec iterator.
307 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy-datagram-from-iter.html"><span class="phrase">skb_copy_datagram_from_iter</span></a></span><span class="refpurpose"> &#8212; 
308     Copy a datagram from an iov_iter.
309 </span></dt><dt><span class="refentrytitle"><a href="API-zerocopy-sg-from-iter.html"><span class="phrase">zerocopy_sg_from_iter</span></a></span><span class="refpurpose"> &#8212; 
310     Build a zerocopy datagram from an iov_iter
311 </span></dt><dt><span class="refentrytitle"><a href="API-skb-copy-and-csum-datagram-msg.html"><span class="phrase">skb_copy_and_csum_datagram_msg</span></a></span><span class="refpurpose"> &#8212; 
312     Copy and checksum skb to user iovec.
313 </span></dt><dt><span class="refentrytitle"><a href="API-datagram-poll.html"><span class="phrase">datagram_poll</span></a></span><span class="refpurpose"> &#8212; 
314     generic datagram poll
315 </span></dt><dt><span class="refentrytitle"><a href="API-sk-stream-write-space.html"><span class="phrase">sk_stream_write_space</span></a></span><span class="refpurpose"> &#8212; 
316  stream socket write_space callback.
317 </span></dt><dt><span class="refentrytitle"><a href="API-sk-stream-wait-connect.html"><span class="phrase">sk_stream_wait_connect</span></a></span><span class="refpurpose"> &#8212; 
318     Wait for a socket to get into the connected state
319 </span></dt><dt><span class="refentrytitle"><a href="API-sk-stream-wait-memory.html"><span class="phrase">sk_stream_wait_memory</span></a></span><span class="refpurpose"> &#8212; 
320     Wait for more memory for a socket
321 </span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-socket.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="netcore.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-struct-skb-shared-hwtstamps.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct socket</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">struct skb_shared_hwtstamps</span></td></tr></table></div></body></html>
322