将线性地址转换为Linux内核中的相应逻辑地址

时间:2018-07-04 20:53:22

标签: c linux linux-kernel

在函数struct page *rmqueue(..)中,我使用page_to_phys(page)提取物理地址,并使用page_address(page)提取线性地址(也称为virtual address)。我的问题是如何提取操作系统生成的逻辑地址,以便可以从逻辑--->线性--->物理地址空间中完成映射概述。

这仅仅是我需要从分段单位中减去的x86的偏移量吗?

1 个答案:

答案 0 :(得分:0)

因此,在浏览代码时,我在Linux内核4.14.4+的struct page * alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, unsigned long addr, int node, bool hugepage)中找到了一个名为mm/mempolicy.c的函数
参数unsigned long addr是逻辑地址。也可以使用问题中已经提到的功能,从可以提取物理地址和线性地址(虚拟)的功能访问该页面。

相关问题