函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\iov_iter.c Create Date:2022-07-27 07:18:11
Last Modify:2022-05-21 11:43:54 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:push_pipe

函数原型:static size_t push_pipe(struct iov_iter *i, size_t size, int *iter_headp, size_t *offp)

返回类型:size_t

参数:

类型参数名称
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  如果此条件成立可能性小(为编译器优化)(size > count)则size等于count
515  如果此条件成立可能性小(为编译器优化)(!size)则返回:0
518  left等于size
519  data_start(i, & iter_head, & off)
520  iter_headp等于iter_head
521  offp等于off
522  如果off
523  left减等于PAGE_SIZEoff
524  如果left小于等于0则
525  len加等于size
526  返回:size
528  len等于PAGE_SIZE
529  iter_head自加
531  当非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.循环
532  buf等于bufs[iter_head & p_mask]
533  page等于alloc_page(GFP_USER)
534  如果非page退出
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  如果left恒等于0则返回:size
548  返回:sizeleft
调用者
名称描述
copy_pipe_to_iter
csum_and_copy_to_pipe_iter
pipe_zero
__pipe_get_pages