C - glibc:找不到 memcpy 依赖项



研究glibc库以了解memcpy函数是如何实现的,我发现了这段代码:

#include <mach.h>
/* Threshold at which vm_copy is more efficient than well-optimized copying
by words.  */
#define PAGE_COPY_THRESHOLD     (16384)
#define PAGE_SIZE       __vm_page_size
#define PAGE_COPY_FWD(dstp, srcp, nbytes_left, nbytes)                
((nbytes_left) = ((nbytes) -                            
(__vm_copy (__mach_task_self (),                  
(vm_address_t) srcp, trunc_page (nbytes),     
(vm_address_t) dstp) == KERN_SUCCESS          
? trunc_page (nbytes)                    
: 0)))

但是我没有找到什么是__vm_copy

谁能帮我弄清楚什么是__vm_copy和它在哪里实现?

我克隆了glibc repo并使用grep utiitegrep -rnw . -e vm_copy,但没有找到任何东西。

编辑:这是上面代码的链接

谁能帮我弄清楚什么是__vm_copy

这是一个在Mach内核内部实现的函数。

在哪里实现?

在这里实现http://fxr.watson.org/fxr/source/vm/vm_user.c?v=MK84#L400 .

最新更新