Function report |
Source Code:fs\pipe.c |
Create Date:2022-07-28 20:04:28 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:pipe_read
Proto:static ssize_t pipe_read(struct kiocb *iocb, struct iov_iter *to)
Type:ssize_t
Parameter:
Type | Parameter | Name |
---|---|---|
struct kiocb * | iocb | |
struct iov_iter * | to |
286 | total_len = iov_iter_count(to) |
293 | If Value for the false possibility is greater at compile time(total_len == 0) Then Return 0 |
296 | ret = 0 |
297 | __pipe_lock(pipe) |
307 | was_full = pipe_full - Return true if the pipe is full*@head: The pipe ring head pointer*@tail: The pipe ring tail pointer*@limit: The maximum amount of slots available. |
308 | cycle |
322 | error = pipe_buf_confirm - verify contents of the pipe buffer*@pipe: the pipe that the buffer belongs to*@buf: the buffer to confirm |
323 | If error Then |
340 | If flags & ad() as a packet Then |
345 | If Not len Then |
353 | If Not total_len Then Break |
359 | If Not writers Then Break |
361 | If ret Then Break |
363 | If f_flags & O_NONBLOCK Then |
367 | __pipe_unlock(pipe) |
387 | wake_up_interruptible_sync_poll( & wait, EPOLLOUT | EPOLLWRNORM) |
400 | __pipe_lock(pipe) |
403 | __pipe_unlock(pipe) |
405 | If was_full Then |
406 | wake_up_interruptible_sync_poll( & wait, EPOLLOUT | EPOLLWRNORM) |
409 | If ret > 0 Then file_accessed(filp) |
411 | Return ret |
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 |