Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\iov_iter.c Create Date:2022-07-28 06:21:11
Last Modify:2022-05-21 11:43:54 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:push_pipe

Proto:static size_t push_pipe(struct iov_iter *i, size_t size, int *iter_headp, size_t *offp)

Type:size_t

Parameter:

TypeParameterName
struct iov_iter *i
size_tsize
int *iter_headp
size_t *offp
506  pipe = pipe
507  p_tail = tail
508  p_mask = ring_size - 1
513  If Value for the false possibility is greater at compile time(size > count) Then size = count
515  If Value for the false possibility is greater at compile time(!size) Then Return 0
518  left = size
519  data_start(i, & iter_head, & off)
520  iter_headp = iter_head
521  offp = off
522  If off Then
523  left -= PAGE_SIZE - off
524  If left <= 0 Then
525  len += size
526  Return size
528  len = PAGE_SIZE
529  iter_head++
531  When Not 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. cycle
532  buf = bufs[iter_head & p_mask]
533  page = alloc_page(GFP_USER)
534  If Not page Then Break
537  ops = default_pipe_buf_ops
538  page = page
539  offset = 0
540  len = min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(ssize_t, left, PAGE_SIZE)
541  left -= len
542  iter_head++
543  head = iter_head
545  If left == 0 Then Return size
548  Return size - left
Caller
NameDescribe
copy_pipe_to_iter
csum_and_copy_to_pipe_iter
pipe_zero
__pipe_get_pages