阅读:1831回复:2
关于virt_to_bus的问题!
virt_to_bus可以由虚拟地址获得总线地址,但是LDD的书上并没有讲
这个虚拟地址是什么地址,是用户虚拟地址还是内核虚拟地址,如果是内核虚拟地址,那么他是3G-high_memory这一段还是high_memory-4G这一段。如果是high_memory-4G这一段,那么其对应的总线地址未必是连续的,而virt_to_bus只返回一个地址,未免有些不妥!或者说这个虚拟地址只能是3G-high_memory这一段! 本人对此很困惑,急盼高手指点! |
|
|
沙发#
发布于:2003-06-19 18:44
现在知道是内核虚拟地址,但不知是那一段内核虚拟地址!
|
|
|
板凳#
发布于:2003-06-19 19:04
它是把4GB线地址转换为总线地址
在内核中,该函数的定义可以追溯到: #define PAGE_OFFSET 0xc0000000 #define PHYS_OFFSET 0x20000000 #define __virt_to_phys(a) ((a) - PAGE_OFFSET + PHYS_OFFSET) 内核也只说到这里,估计这段内存是连续的吧?我也不知道。 |
|