函数逻辑报告 |
Source Code:mm\rmap.c |
Create Date:2022-07-27 16:25:58 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Special version of the above for do_swap_page, which often runs* into pages that are exclusively owned by the current process.* Everybody else should continue to use page_add_anon_rmap above.
函数原型:void do_page_add_anon_rmap(struct page *page, struct vm_area_struct *vma, unsigned long address, int flags)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct page * | page | |
| struct vm_area_struct * | vma | |
| unsigned long | address | |
| int | flags |
| 1121 | compound等于flags按位与RMAP_COMPOUND |
| 1124 | 如果compound则 |
| 1126 | VM_BUG_ON_PAGE(!PageLocked(page), page) |
| 1128 | mapcount等于compound_mapcount_ptr(page) |
| 1129 | first等于atomic_inc_and_test(mapcount) |
| 1130 | 否则 |
| 1134 | 如果first则 |
| 1135 | nr等于如果compound则hpage_nr_pages(page)否则1 |
| 1142 | 如果compound则__inc_node_page_state(page, NR_ANON_THPS) |
| 1149 | VM_BUG_ON_PAGE(!PageLocked(page), page) |
| 名称 | 描述 |
|---|---|
| page_add_anon_rmap | page_add_anon_rmap - add pte mapping to an anonymous page*@page: the page to add the mapping to*@vma: the vm area in which the mapping is added*@address: the user virtual address mapped*@compound: charge the page as compound or small page* The caller |
| do_swap_page | We enter with non-exclusive mmap_sem (to exclude vma changes,* but allow concurrent faults), and pte mapped but not yet locked.* We return with pte unmapped and unlocked.* We return with the mmap_sem locked or unlocked in the same cases |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |