linux ARM mmap
时间: 2023-10-30 07:59:26 浏览: 135
ARM初识.mmap
在Linux ARM系统中,mmap函数用于创建一个新的内存映射区域。引用中提到了MAP_LOCKED标志,它可以与mmap一起使用,以以类似于mlock()的方式标记要锁定的映射区域。MAP_LOCKED将尝试填充整个区域并将其锁定,但如果失败则不会导致mmap调用失败。但需要注意的是,这种语义不如mlock()强。所以,在映射初始化后无法接受主要故障时,应该使用mmap()加mlock()。但需要注意的是,MAP_LOCKED标志在较旧的内核中可能会被忽略。
此外,还有一个MAP_HUGETLB标志可以在Linux 2.6.32及以上版本中使用,它用于分配使用“大页面”的映射。具体信息可以参考Linux内核源文件Documentation/vm/hugetlbpage.txt以及相关说明。
对于ARM架构,可以在arch/arm/kernel/entry-common.S中找到sys_mmap2的定义,但是没有实现sys_mmap。不同之处在于sys_mmap2的off参数单位是页而不是字节。
阅读全文