Function report | 
Source Code:fs\splice.c | 
Create Date:2022-07-28 20:11:26 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:splice_direct_to_actor - splices data directly between two non-pipes*@in: file to splice from*@sd: actor information on where to splice to*@actor: handles the data splicing* Description:* This is a special case helper to splice directly between two
Proto:ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, splice_direct_actor *actor)
Type:ssize_t
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct file * | in | |
| struct splice_desc * | sd | |
| splice_direct_actor * | actor | 
| 923 | If Value for the false possibility is greater at compile time(!S_ISREG(i_mode) && !S_ISBLK(i_mode)) Then Return -EINVAL | 
| 930 | pipe = splice_pipe | 
| 949 | ret = 0 | 
| 950 | bytes = 0 | 
| 951 | len = maining length | 
| 952 | flags = splice flags | 
| 958 | more = splice flags & xpect more data | 
| 960 | WARN_ON_ONCE(!pipe_empty - Return true if the pipe is empty*@head: The pipe ring head pointer*@tail: The pipe ring tail pointer) | 
| 965 | pos = le position , prev_pos = pos | 
| 968 | 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 | 
| 970 | read_len = min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(size_t, len, p_space << PAGE_SHIFT determines the page size ) | 
| 972 | If Value for the false possibility is greater at compile time(ret <= 0) Then Go to out_release | 
| 976 | maining length = read_len | 
| 983 | If read_len < len Then splice flags |= xpect more data | 
| 985 | Else if Not more Then splice flags &= ~xpect more data | 
| 993 | If Value for the false possibility is greater at compile time(ret <= 0) Then | 
| 994 | le position = prev_pos | 
| 995 | Go to out_release | 
| 1000 | le position = pos | 
| 1003 | le position = prev_pos + ret | 
| 1004 | Go to out_release | 
| 1008 | done : | 
| 1010 | file_accessed(in) | 
| 1011 | Return bytes | 
| 1013 | out_release : | 
| 1028 | Go to done | 
| Name | Describe | 
|---|---|
| do_splice_direct | do_splice_direct - splices data directly between two files*@in: file to splice from*@ppos: input file offset*@out: file to splice to*@opos: output file offset*@len: number of bytes to splice*@flags: splice modifier flags* Description: | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |