fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1832回复:2

关于virt_to_bus的问题!

楼主#
更多 发布于:2003-06-19 13:02
virt_to_bus可以由虚拟地址获得总线地址,但是LDD的书上并没有讲
这个虚拟地址是什么地址,是用户虚拟地址还是内核虚拟地址,如果是内核虚拟地址,那么他是3G-high_memory这一段还是high_memory-4G这一段。如果是high_memory-4G这一段,那么其对应的总线地址未必是连续的,而virt_to_bus只返回一个地址,未免有些不妥!或者说这个虚拟地址只能是3G-high_memory这一段!
本人对此很困惑,急盼高手指点!
有了驱动,人才有了力量。
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-19 19:04
它是把4GB线地址转换为总线地址

在内核中,该函数的定义可以追溯到:

#define PAGE_OFFSET 0xc0000000
#define PHYS_OFFSET 0x20000000
#define __virt_to_phys(a)
((a) - PAGE_OFFSET + PHYS_OFFSET)

内核也只说到这里,估计这段内存是连续的吧?我也不知道。
fwzfwz1
驱动中牛
驱动中牛
  • 注册日期2002-11-01
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-19 18:44
 现在知道是内核虚拟地址,但不知是那一段内核虚拟地址!
有了驱动,人才有了力量。
游客

返回顶部