函数逻辑报告 |
Source Code:fs\splice.c |
Create Date:2022-07-29 10:42:14 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Determine where to splice to/from.
函数原型:static long do_splice(struct file *in, loff_t __user *off_in, struct file *out, loff_t __user *off_out, size_t len, unsigned int flags)
返回类型:long
参数:
类型 | 参数 | 名称 |
---|---|---|
struct file * | in | |
loff_t __user * | off_in | |
struct file * | out | |
loff_t __user * | off_out | |
size_t | len | |
unsigned int | flags |
1121 | ipipe等于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. |
1122 | opipe等于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. |
1128 | 如果非f_mode按位与le is open for reading 的值则返回:负EBADF |
1131 | 如果非f_mode按位与le is open for writing 的值则返回:负EBADF |
1138 | 如果f_flags按位或f_flags的值按位与O_NONBLOCK则flags或等于don't block on the pipe splicing (but |
1141 | 返回:splice_pipe_to_pipe(ipipe, opipe, len, flags) |
1144 | 如果ipipe则 |
1147 | 如果off_out则 |
1148 | 如果非f_mode按位与le can be accessed using pwrite 的值则返回:负EINVAL |
1152 | 否则 |
1156 | 如果此条件成立可能性小(为编译器优化)(!(f_mode & le is open for writing ))则返回:负EBADF |
1159 | 如果此条件成立可能性小(为编译器优化)(f_flags & O_APPEND)则返回:负EINVAL |
1163 | 如果此条件成立可能性小(为编译器优化)(ret < 0)则返回:ret |
1169 | file_start_write(out) |
1171 | file_end_write(out) |
1178 | 返回:ret |
1181 | 如果opipe则 |
1184 | 如果off_in则 |
1185 | 如果非f_mode按位与le can be accessed using pread 的值则返回:负EINVAL |
1189 | 否则 |
1197 | ret等于wait_for_space(opipe, flags) |
1198 | 如果非ret则 |
1202 | p_space等于max_usage减pipe_occupancy - Return number of slots used in the pipe*@head: The pipe ring head pointer*@tail: The pipe ring tail pointer |
1207 | pipe_unlock(opipe) |
1208 | 如果ret大于0则wakeup_pipe_readers(opipe) |
1215 | 返回:ret |
1218 | 返回:负EINVAL |
名称 | 描述 |
---|---|
SYSCALL_DEFINE6 |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |