函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bio.c Create Date:2022-07-27 18:30:21
Last Modify:2020-03-17 23:13:58 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:page_is_mergeable

函数原型:static inline bool page_is_mergeable(const struct bio_vec *bv, struct page *page, unsigned int len, unsigned int off, bool *same_page)

返回类型:bool

参数:

类型参数名称
const struct bio_vec *bv
struct page *page
unsigned intlen
unsigned intoff
bool *same_page
686  vec_end_addr等于Change "struct page" to physical address.(bv_page)加bv_offsetbv_len减1
688  page_addr等于Change "struct page" to physical address.(page)
690  如果vec_end_addr加1不等于page_addroff则返回:false
692  如果xen_domain()且非xen_biovec_phys_mergeable(bv, page)则返回:false
695  same_page等于vec_end_addr按位与PAGE_MASK的值恒等于page_addr
696  如果非same_pagepfn_to_page(PFN_DOWN(vec_end_addr))加1不等于page则返回:false
698  返回:true
调用者
名称描述
__bio_try_merge_page__bio_try_merge_page - try appending data to an existing bvec.*@bio: destination bio*@page: start page to add*@len: length of the data to add*@off: offset of the data relative to @page*@same_page: return if the segment has been merged inside the same page