gpt4 book ai didi

c - ioremap_page_range 和 vmap_page_range 的区别

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:05 25 4
gpt4 key购买 nike

这可能是一个非常基本的问题,但我试图了解 ioremap_page_range() 和 vmap_page_range() 之间的区别。两者似乎都将物理地址映射到虚拟地址(在新分配的 VM 区域中)。

两个函数各有 4 个参数,其中 3 个参数相同。 ioremap_page_range 采用 phys_addr_t,vmap_page_range 采用页面(帧)指针数组。

我的问题是这些函数是否可以互换使用(假设我处理了第 4 个不同的参数)或者这些函数的实现有什么不同?

任何指向解释这些功能的文本或链接的特定指针都将非常有帮助。

最佳答案

实现完全相同,理论上您可以使用两者来创建内存映射。然而,ioremap 用于映射 IO 资源,这不是 linux 内核中的物理页面,vmap_page_range 应该用于映射存在于页面池中的物理内存(RAM 区域)。顺便说一句,映射属性值在使用时通常是不同的。 (例如,缓存或未缓存...)

关于c - ioremap_page_range 和 vmap_page_range 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22212904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com