函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\splice.c Create Date:2022-07-29 10:42:10
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__splice_from_pipe - splice data from a pipe to given actor*@pipe: pipe to splice from*@sd: information to @actor*@actor: handler that splices the data* Description:* This function does little more than loop over the pipe and call*@actor to do the actual

函数原型:ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, struct splice_desc *sd, splice_actor *actor)

返回类型:ssize_t

参数:

类型参数名称
struct pipe_inode_info *pipe
struct splice_desc *sd
splice_actor *actor
631  splice_from_pipe_begin - start splicing from pipe*@sd: information about the splice operation* Description:* This function should be called before a loop containing* splice_from_pipe_next() and splice_from_pipe_feed() to
632  循环
633  cond_resched()
634  ret等于splice_from_pipe_next - wait for some data to splice from*@pipe: pipe to splice from*@sd: information about the splice operation* Description:* This function will wait for some data and return a positive* value (one) if pipe buffers are available
635  如果ret大于0则ret等于splice_from_pipe_feed - feed available data from a pipe to a file*@pipe: pipe to splice from*@sd: information to @actor*@actor: handler that splices the data* Description:* This function loops over the pipe and calls @actor to do the* actual moving of a
637 ret大于0循环
638  splice_from_pipe_end - finish splicing from pipe*@pipe: pipe to splice from*@sd: information about the splice operation* Description:* This function will wake up pipe writers if necessary
640  返回:如果umber of bytes already spliced umber of bytes already spliced 否则ret
调用者
名称描述
splice_from_pipesplice_from_pipe - splice data from a pipe to a file*@pipe: pipe to splice from*@out: file to splice to*@ppos: position in @out*@len: how many bytes to splice*@flags: splice modifier flags*@actor: handler that splices the data* Description:
vmsplice_to_userFor lack of a better implementation, implement vmsplice() to userspace* as a simple copy of the pipes pages to the user iov.