我在哪里可以找到mmap(systeml调用)的源代码?

时间:2015-11-09 02:59:43

标签: linux mmap

我发现glibc在mmap.S中有mmap,代码如下:

...
movl 20(%esp), %ebx
cfi_rel_offset (ebx, 8)
movl 24(%esp), %ecx
movl 28(%esp), %edx
movl 32(%esp), %esi
cfi_rel_offset (esi, 4)
movl 36(%esp), %edi
cfi_rel_offset (edi, 0)
movl 40(%esp), %ebp
cfi_rel_offset (ebp, 12)
testl $0xfff, %ebp
movl $-EINVAL, %eax
jne L(skip)
shrl $12, %ebp               /* mmap2 takes the offset in pages.  */

movl $SYS_ify(mmap2), %eax  /* System call number in %eax.  */

ENTER_KERNEL                /* Do the system call trap.  */

...

似乎mmap2的真实部分在内核中。那么我在哪里可以找到它的源代码?

1 个答案:

答案 0 :(得分:1)

你可以从这里开始挖掘:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/mm/mmap.c

SYSCALL_搜索定义。