函数逻辑报告 | 
Source Code:kernel\relay.c | 
Create Date:2022-07-27 12:52:31 | 
| Last Modify:2020-03-17 19:20:22 | Copyright©Brick | 
| 首页 | 函数Tree | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:subbuf_splice_actor - splice up to one subbuf's worth of data
函数原型:static ssize_t subbuf_splice_actor(struct file *in, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags, int *nonpad_ret)
返回类型:ssize_t
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct file * | in | |
| loff_t * | ppos | |
| struct pipe_inode_info * | pipe | |
| size_t | len | |
| unsigned int | flags | |
| int * | nonpad_ret | 
| 1202 | subbuf_size等于 sub-buffer size | 
| 1206 | read_subbuf等于read_start除subbuf_size | 
| 1221 | 如果count of sub-buffers produced 恒等于count of sub-buffers consumed 则返回:0 | 
| 1223 | 如果r dynamic pipe sizing则返回:负ENOMEM | 
| 1229 | 如果len大于subbuf_size减read_start取模subbuf_size则len等于subbuf_size减read_start取模subbuf_size | 
| 1233 | pidx等于read_start除PAGE_SIZE取模subbuf_pages | 
| 1234 | poff等于read_start按位与PAGE_MASK的反 | 
| 1235 | nr_pages等于min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(unsignedint, subbuf_pages, pages[] & partial[] arrays size ) | 
| 1239 | cur_pos等于read_start加total_len | 
| 1244 | this_len等于min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(unsignedlong, len, PAGE_SIZE - poff) | 
| 1251 | 如果this_end大于等于nonpad_end则 | 
| 1260 | poff等于0 | 
| 1261 | pidx等于pidx加1的和取模subbuf_pages | 
| 1263 | 如果this_end大于等于nonpad_end则 | 
| 1264 | umber of populated pages in map 自加 | 
| 1265 | 退出 | 
| 1269 | ret等于0 | 
| 1270 | 如果非umber of populated pages in map 则转到:out | 
| 1277 | 如果read_start加ret恒等于nonpad_end则ret加等于padding | 
| 1280 | out : | 
| 1281 | splice_shrink_spd( & spd) | 
| 1282 | 返回:ret | 
| 名称 | 描述 | 
|---|---|
| relay_file_splice_read | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |