了解 C 中的页面复制

Understanding page copying in C

我听说 memcpy 是一种非常有效的数据复制算法。为了尝试从我的代码中吸取一些教训,我决定研究它在 GNU 中的实现。但是,对于大内存块,它会进行一些检查,然后 calls a PAGE_COPY_FWD macro-- 我无法在任何地方找到定义。

mem_cpy 源代码的最后 link 说:

System-specific pagecopy.h files should define these macros and then
  #include this file:

  ...

  PAGE_COPY_FWD (dstp, srcp, nbytes_left, nbytes)

两个问题:

1) 如何找到这个宏的实现? (任何地方——在我的机器上,或在别人的机器上——即使这意味着我必须阅读汇编代码。)

2) 我必须包含什么才能直接调用此宏,即无需先通过 memcpy?

我找到了 PAGE_COPY_FWD

的这个定义
#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)))

在这里找到的 https://www.sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/mach/pagecopy.h