函数逻辑报告 |
Source Code:mm\memory.c |
Create Date:2022-07-27 16:11:37 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:copy_huge_page_from_user
函数原型:long copy_huge_page_from_user(struct page *dst_page, const void __user *usr_src, unsigned int pages_per_huge_page, bool allow_pagefault)
返回类型:long
参数:
类型 | 参数 | 名称 |
---|---|---|
struct page * | dst_page | |
const void __user * | usr_src | |
unsigned int | pages_per_huge_page | |
bool | allow_pagefault |
4770 | rc等于0 |
4773 | 以i小于pages_per_huge_page循环 |
4774 | 如果allow_pagefault则page_kaddr等于kmap(dst_page + i) |
4776 | 否则page_kaddr等于kmap_atomic(dst_page + i) |
4778 | rc等于copy_from_user(page_kaddr, (constvoid__user * )(src + i * PAGE_SIZE), PAGE_SIZE) |
4781 | 如果allow_pagefault则kunmap(dst_page + i) |
4783 | 否则Prevent people trying to call kunmap_atomic() as if it were kunmap()* kunmap_atomic() should get the return value of kmap_atomic, not the page.(page_kaddr) |
4790 | cond_resched() |
4792 | 返回:ret_val |
名称 | 描述 |
---|---|
hugetlb_mcopy_atomic_pte | Used by userfaultfd UFFDIO_COPY. Based on mcopy_atomic_pte with* modifications for huge pages. |
__mcopy_atomic_hugetlb | __mcopy_atomic processing for HUGETLB vmas. Note that this routine is* called with mmap_sem held, it will release mmap_sem before returning. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |