函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称: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

函数原型:static int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)

返回类型:int

参数:

类型参数名称
struct pipe_inode_info *pipe
struct splice_desc *sd
555  如果signal_pending(当前进程)则返回:负These should never be seen by user programs. To return one of ERESTART** codes, signal_pending() MUST be set. Note that ptrace can observe these* at syscall exit tracing, but they will never be left for the debugged user* process to see.
558 pipe_empty - Return true if the pipe is empty*@head: The pipe ring head pointer*@tail: The pipe ring tail pointer循环
559  如果非writers则返回:0
562  如果umber of bytes already spliced 则返回:0
565  如果splice flags 按位与don't block on the pipe splicing (but 则返回:负EAGAIN
568  如果signal_pending(当前进程)则返回:负These should never be seen by user programs. To return one of ERESTART** codes, signal_pending() MUST be set. Note that ptrace can observe these* at syscall exit tracing, but they will never be left for the debugged user* process to see.
571  如果d to wake up writer
573  d to wake up writer = false
576  Drop the inode semaphore and wait for a pipe event, atomically
579  返回:1
调用者
名称描述
__splice_from_pipe__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
iter_file_splice_writer_file_splice_write - splice data from a pipe to a file*@pipe: pipe info*@out: file to write to*@ppos: position in @out*@len: number of bytes to splice*@flags: splice modifier flags* Description:* Will either move or copy pages (determined by @flags