函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Note that vmsplice only really supports true splicing _from_ user memory* to a pipe, not the other way around. Splicing from user memory is a simple* operation that can be supported without any funky alignment restrictions* or nasty vm tricks

函数原型:static long do_vmsplice(struct file *f, struct iov_iter *iter, unsigned int flags)

返回类型:long

参数:

类型参数名称
struct file *f
struct iov_iter *iter
unsigned intflags
1363  如果此条件成立可能性小(为编译器优化)(flags & ~SPLICE_F_ALL)则返回:负EINVAL
1366  如果非iov_iter_count(iter)则返回:0
1369  如果iov_iter_rw(iter)恒等于WRITE则返回:vmsplice 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.
1371  否则返回:For lack of a better implementation, implement vmsplice() to userspace* as a simple copy of the pipes pages to the user iov.
调用者
名称描述
SYSCALL_DEFINE4
COMPAT_SYSCALL_DEFINE4