当前位置:  技术问答>linux和unix

急寻分段和段页式存储管理方式的地址换算过程的演示代码

    来源: 互联网  发布时间:2015-12-04

    本文导语:  如题,有哪位前辈帮帮忙,谢谢! | Linux下虚地址到物理页面的转换. 具体可以参考内核的实现 #ifdef CONFIG_X86 unsigned long vpfn = vaddr/PAGE_SIZE; pgd = pgd_offset(mm, vaddr); pte = (pte_t *)pmd_offset(...

如题,有哪位前辈帮帮忙,谢谢!

|
Linux下虚地址到物理页面的转换.
具体可以参考内核的实现

#ifdef CONFIG_X86
unsigned long vpfn = vaddr/PAGE_SIZE;

pgd = pgd_offset(mm, vaddr);
pte = (pte_t *)pmd_offset(pgd, vaddr);

page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)];
get_page(page);
#endif

#ifdef CONFIG_IA64

   unsigned long vpfn = vaddr/PAGE_SIZE;

   unsigned long taddr = ((REGION_NUMBER(vaddr)  (HPAGE_SHIFT_DEFAULT-PAGE_SHIFT)));
   pgd = pgd_offset(mm, taddr);

  if (pgd_present(*pgd)) {
  pmd = pmd_offset(pgd, taddr);
  if (pmd_present(*pmd))
  pte = pte_offset_map(pmd, taddr);
  }
  page = &pte_page(*pte)[vpfn % ((__IA64_UL_CONST(1) 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 这句话什么意思:“分页存储管理是一个单一的线性地址空间,分段存储管理的作业地址空间是二维的。”?
  • Oracle数据库中利用ASSM改善分段存储
  • 嵌入式系统中是不是不需要分段、分页机制?请高手讲解一下分段分页机制,谢谢:)
  • 分段、分页谁先出现,分别在哪个OS中?
  • 如何分段复制文件
  • 解决Linux串口分段读取?
  • mmap如何分段内存映射
  • 文件名分段循环的shell问题,高手速来 iis7站长之家
  • dhcpd.conf中range dynamic-bootp后面如何进行分段地址书写?
  • sql2005字符段分段更新的代码
  • AIX crontab 嵌套SHELL脚本,执行报 分段错误(core dump)
  • 字符串分段处理
  • 文件名分段循环的shell问题,高手速来
  • jquery实现的一个文章自定义分段显示功能


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3