vm_area_struct - 查找MAP_ANONYMOUS映射

时间:2015-05-15 09:48:38

标签: linux-kernel mmu

如何检测vm_are_struct所代表的区域被映射为ANONYMOUS? 我假设vm_flags字段包含VM_XXX个标志但不包含MAP_XX个标志。除此之外,vm_page_prot字段包含一些意想不到的内容。

1 个答案:

答案 0 :(得分:1)

通过检查anon_vma指针(应设置为非NULL)和vm_file(如果映射与文件相关,则应为NULL):

if(vma->anon_vma != NULL && vma->vm_file == NULL) {
     // MAP_ANON
}

anon_vma似乎是懒惰分配(在mmap()被调用后不立即初始化。)