相关疑难解决方法(0)

如何确定设备内存的页面帧号?

来自LDD3/Ch.15 /"使用remap_pfn_range"和"简单实现"部分,pfn等同于vm_pgoff字段.我很困惑.怎么会这样?

请注意,vm_pgoff描述为:

文件中区域的偏移量,以页为单位.映射文件或设备时,这是该区域中映射的第一页的文件位置.

因此,如果映射的第一页对应于文件的第一页(我认为这很常见),vm_pgoff将为0.正确吗?如果是这样,这似乎不是remap_pfn_range()的pfn参数的正确值.我在这里错过了什么?什么是正确的价值?为便于参考,我正在复制以下LDD3的相关代码(第426页)

static int simple_remap_mmap(struct file *filp, struct vm_area_struct *vma)
{
if (remap_pfn_range(vma, vma->vm_start, vm->vm_pgoff,
                    vma->vm_end - vma->vm_start,
                    vma->vm_page_prot))
    return -EAGAIN;
...
}
Run Code Online (Sandbox Code Playgroud)

linux kernel device

9
推荐指数
1
解决办法
1456
查看次数

标签 统计

device ×1

kernel ×1

linux ×1