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 1. 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> </td><th width="60%" align="center">Chapter 1. Linux Networking</th><td width="20%" align="right"> <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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 144 Determine if the skb->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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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> </td><td width="20%" align="center"><a accesskey="u" href="netcore.html">Up</a></td><td width="40%" align="right"> <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> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">struct skb_shared_hwtstamps</span></td></tr></table></div></body></html> 322