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 |