gpt4 book ai didi

linux - 如果 mmap() 没有 fd(使用 MAP_ANONYMOUS),将调用哪个函数?

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:07 27 4
gpt4 key购买 nike

如果我从设备mmap(),例如:/dev/mem

fbfd = open("/dev/mem", O_RDWR);
dataBuffer = (char *)mmap(0,
FILESIZE,
PROT_READ | PROT_WRITE,
MAP_SHARED,
fbfd,
0);

然后我可以看到remap_pfn_range的实际函数是mmap_mem(),也就是/dev的f_op->mmap/mem 我想。

但是如果我使用 MAP_ANONYMOUS 而没有 fd 的 mmap(),将调用哪个函数来执行 remap_pfn_range

    dataBuffer = (char *)mmap(0, 
FILESIZE,
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS,
0,
0);

最佳答案

好的,我找到答案了......

没有fd,所以没有f_op->mmap

如果 mmap() 带有 MAP_ANONYMOUSMAP_SHARED,它将由 shmem_zero_setup() 处理,设置一个共享的匿名映射,并为 do_mmap_pgoff() 准备一个 vma

关于linux - 如果 mmap() 没有 fd(使用 MAP_ANONYMOUS),将调用哪个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com