Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\splice.c Create Date:2022-07-28 20:11:24
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:splice_to_pipe - fill passed data into a pipe*@pipe: pipe to fill*@spd: data to fill* Description:*@spd contains a map of pages and len/offset tuples, along with* the struct pipe_buf_operations associated with these pages. This

Proto:ssize_t splice_to_pipe(struct pipe_inode_info *pipe, struct splice_pipe_desc *spd)

Type:ssize_t

Parameter:

TypeParameterName
struct pipe_inode_info *pipe
struct splice_pipe_desc *spd
187  spd_pages = umber of populated pages in map
188  tail = tail
189  head = head
190  mask = ring_size - 1
191  ret = 0 , page_nr = 0
193  If Not spd_pages Then Return 0
196  If Value for the false possibility is greater at compile time(!readers) Then
197  send_sig(SIGPIPE, current process, 0)
198  ret = -EPIPE
199  Go to out
202  When Not pipe_full - Return true if the pipe is full*@head: The pipe ring head pointer*@tail: The pipe ring tail pointer*@limit: The maximum amount of slots available. cycle
203  buf = bufs[head & mask]
205  page = page map [page_nr]
206  offset = offset
207  len = len
208  private = private
209  ops = ps associated with output pipe
210  flags = 0
212  head++
213  head = head
214  page_nr++
215  ret += len
217  If Not --umber of populated pages in map Then Break
221  If Not ret Then ret = -EAGAIN
224  out :
225  When page_nr < spd_pages cycle
226  spd_release(spd, page_nr++)
228  Return ret
Caller
NameDescribe
tracing_splice_read_pipe
tracing_buffers_splice_read
subbuf_splice_actorsubbuf_splice_actor - splice up to one subbuf's worth of data