分类: LINUX
2008-08-07 23:32:12
copy_to_user的实现:retval = get_user_pages(current, current->mm,
copy_to_user
__copy_to_user
__copy_to_user_inatomic
__put_user_size
__put_user_asm/__copy_to_user_ll
__copy_to_user_ll
get_user_pages并没有直接使用用户态地址,它是先根据用户空间的地址得到对应的page(内存物理地址),又把这个page kmap_atomic了一下了
然后再进行memcpy
请看
Arch/i386/lib/usercopy.c
__copy_to_user_ll()