您的位置 首页 被动

ARM Linux (S3C6410架构/2.6.35内核)的内存映射(四)

set_pte_ext()的作用是根据Linux给出的Linux版本页表项来填充Arm硬件版本的页表项。对于s3c6410,set_pte_ext()函数由汇编宏armv6_set_pte_…

set_pte_ext()的作用是依据Linux给出的Linux版别页表项来填充Arm硬件版别的页表项。

关于s3c6410,set_pte_ext()函数由汇编宏armv6_set_pte_ext来完成,界说在proc-macros.S文件中。

进入函数时,参数分别为:

r0: pte的地址,这儿的pte是二级页表Linux版别中对应的页表项。

r1: Linux版二级页表项的内容。

r2: 0。

[c].macro armv6_set_pte_ext pfxstr r1, [r0], #-2048 @ linux versionbic r3, r1, #0x000003fcbic r3, r3, #PTE_TYPE_MASKorr r3, r3, r2orr r3, r3, #PTE_EXT_AP0 | 2adr ip, \pfx\()_mt_tableand r2, r1, #L_PTE_MT_MASKldr r2, [ip, r2]tst r1, #L_PTE_WRITEtstne r1, #L_PTE_DIRTYorreq r3, r3, #PTE_EXT_APXtst r1, #L_PTE_USERorrne r3, r3, #PTE_EXT_AP1tstne r3, #PTE_EXT_APXbicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0tst r1, #L_PTE_EXECorreq r3, r3, #PTE_EXT_XNorr r3, r3, r2tst r1, #L_PTE_YOUNGtstne r1, #L_PTE_PRESENTmoveq r3, #0str r3, [r0]mcr p15, 0, r0, c7, c10, 1 @ flush_pte.endm[/c] 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/277066.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部