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 |