社区
Linux_Kernel
帖子详情
如何通过一个物理页的page结构得到该物理页的地址?
freedomchen
2006-02-16 02:02:13
如题
...全文
556
4
打赏
收藏
如何通过一个物理页的page结构得到该物理页的地址?
如题
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guhuo2000
2006-03-31
打赏
举报
回复
page_address(struct page *); 返回的就是page->virtual 即内核虚拟地址
如果页是属于ZONE_NORMAL 或者 ZONE_DMA 返回的就是内核逻辑地址, 和物理地址差一个常熟
默默努力的小熊
2006-03-12
打赏
举报
回复
从全局变量mem_map[]数组中搜索出该page的数据结构,那个下标就是物理页面的序号,所以在低位补上12个0之后就是物理页面的起始地址了。不知道是不是这样?
参考:<<LINUX源代码情景分析>>中第42页的一句话:内核中有个全局变量mem_map,整个数组就代表着全部物理页面。因此,页面表项的高20位对于软件和MMU硬件有着不同的意义。对于软件,这是一个物理页面的诒,将这个用作下标就可以从mem_map找到代表这个物理页面的page数据结构。对于硬件,则在低位补上12个0后就是物理页面的起始地址。
tb01412
2006-02-17
打赏
举报
回复
如果我们拥有一个逻辑地址,可通过定义在 <asm/page.h> 中的宏 _ _pa() 返回与其关联的物理地址。我们也可以使用 _ _va() 宏将物理地址映射回逻辑地址,但只能用于低端内存页。
xhs1115
2006-02-17
打赏
举报
回复
用page_address宏
IT问题解答类型网站源码
IT问题解答类型网站源码
IT面试常问必会问题及参考解答
IT问题解答类型网站源码程序
该平台提供多项功能,支持支付宝在线付款,用户可以随时随地发布问题,并且无需手动输入文字,还可以使用语音回复功能。每天都有数千名IT专业人士在此回答问题,因此用户可以随时提问问题,收集海量的IT专业问题答案。在问答网,用户可以轻松找到其他人的问答问题,并在这里寻求解答。如果您有任何想要解决的问题,都可以在此发布问题并
得到
其他同行的解答。数据库编码是UTF8Mb4(里面有2个数据库,两者数据库数据是一样的,只是不同软件导出的,如果111导入出错了就使用222)我测试的用的111。
IT培训靠谱吗?
从享受生活的角度上来说:“程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做;第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势。程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁。” 人们在时间面前是平等的
专业IT提问解答类型网站源码程序
问答网是一款为IT工程师提供的问答平台,旨在帮助用户在线获取专业知识和相关问题的答案。在问答网,用户可以轻松找到其他人的问答问题,并在这里寻求解答。如果您有任何想要解决的问题,都可以在此发布问题并
得到
其他同行的解答。该平台提供多项功能,支持支付宝在线付款,用户可以随时随地发布问题,并且无需手动输入文字,还可以使用语音回复功能。每天都有数千名IT专业人士在此回答问题,因此用户可以随时提问问题,收集海量的IT专业问题答案。而且,该平台支持语音输入,让用户更加便捷。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章