copy_from_user和copy_to_user
https://blog.csdn.net/liuhangtiant/article/details/85227125
copy_from_user和copy_to_user这两个函数分别是将用户空间的数据拷贝到内核空间以及将内核空间中的数据拷贝到用户空间。这两个函数一般用于系统调用中,前者将用户空间参数拷贝到内核,后者将系统用的结果返回到用户空间。
用户空间和内核空间
Linux将地址空间分为用户空间和内核空间,内核文档Documentation/arm64/memory.txt中定义了内核地址空间和用户地址空间的范围,比如4K Page +4 level页表时,地址空间分布如下:
AArch64 Linux memory layout with 4KB pages + 4 levels:
Start End Size Use
0000000000000000 0000ffffffffffff 256TB user
ffff000000000000 ffffffffffffffff 256TB kernel
用户空间占用低地址,内核空间占用高地址。
注意第一个是to
static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)

浙公网安备 33010602011771号