当前位置: 技术问答>linux和unix
在2.4.20-8中找不到pte_offset()
来源: 互联网 发布时间:2015-05-02
本文导语: 在2.4.20-8pgtable中找不到pte_offset(dir,addr)这个函数,但是有许多pte_offset_xxxx()之类的函数,xxxx是指kernel map 等等, 但是不知道那个函数可以用来代替pte_offset?多谢了! | 你在一个帖子里一下子...
在2.4.20-8pgtable中找不到pte_offset(dir,addr)这个函数,但是有许多pte_offset_xxxx()之类的函数,xxxx是指kernel map 等等, 但是不知道那个函数可以用来代替pte_offset?多谢了!
|
你在一个帖子里一下子问这么多问题?真是服了U
上边不是写得很清楚么?
#if defined(CONFIG_HIGHMEM) || defined(WANT_PAGE_VIRTUAL)
//如果定义了CONFIG_HIGHMEM或者WANT_PAGE_VIRTUAL宏
#define page_address(page) ((page)->virtual)
//page_address就是page->virtual,因为这个时候page结构里就有地址的信息,也就是virtual
#else /* CONFIG_HIGHMEM || WANT_PAGE_VIRTUAL */
//如果没有定义上边的两个宏
#define page_address(page)
__va( (((page) - page_zone(page)->zone_mem_map) zone_mem_map就是page在整个数组中的偏移量,也就是数组的下标,然后左移以后就是页面的长度,再加上本身这个页面所在区的起始地址,就是page的物理地址了,然后用__va转换一下就完事了
上边不是写得很清楚么?
#if defined(CONFIG_HIGHMEM) || defined(WANT_PAGE_VIRTUAL)
//如果定义了CONFIG_HIGHMEM或者WANT_PAGE_VIRTUAL宏
#define page_address(page) ((page)->virtual)
//page_address就是page->virtual,因为这个时候page结构里就有地址的信息,也就是virtual
#else /* CONFIG_HIGHMEM || WANT_PAGE_VIRTUAL */
//如果没有定义上边的两个宏
#define page_address(page)
__va( (((page) - page_zone(page)->zone_mem_map) zone_mem_map就是page在整个数组中的偏移量,也就是数组的下标,然后左移以后就是页面的长度,再加上本身这个页面所在区的起始地址,就是page的物理地址了,然后用__va转换一下就完事了