函数逻辑报告 | 
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 插件可实现:逻辑报告 代码生成和批量转换代码  |