函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:After the inode slimming patch, i_pipe/i_bdev/i_cdev share the same* location, so checking ->i_pipe is not enough to verify that this is a* pipe.

函数原型:struct pipe_inode_info *get_pipe_info(struct file *file)

返回类型:struct pipe_inode_info

参数:

类型参数名称
struct file *file
1269  返回:f_op == & pipefifo_fops ? needed for tty driver, and maybe others : NULL
调用者
名称描述
pipe_fcntl
do_spliceDetermine where to splice to/from.
vmsplice_to_userFor lack of a better implementation, implement vmsplice() to userspace* as a simple copy of the pipes pages to the user iov.
vmsplice_to_pipevmsplice splices a user address range into a pipe. It can be thought of* as splice-from-memory, where the regular splice is splice-from-file (or* to file). In both cases the output is a pipe, naturally.
do_teeThis is a tee(1) implementation that works on pipes. It doesn't copy* any data, it simply references the 'in' pages on the 'out' pipe.* The 'flags' used are the SPLICE_F_* variants, currently the only* applicable one is SPLICE_F_NONBLOCK.