1、copy from user函数
copy from user函数是从用户空间的数据拷贝到内核空间,成功返回0,失败返回没有被拷贝的字节数。如下面函数
s32 drv_rf_ioctl_w_parma(unsigned long arg)
{
PARAM param;
if(copy_from_user((uint8_t *)¶m, (void __user *)arg, sizeof(PARAM)))
{
return -EFAULT;
}
return 0;
}
一般从用户空间传下来的的是一个结构体,该结构体与内核中结构体是一样的,通过copy_from_user函数,把数据拷贝到内核中,一一对应,通过结构体中的一些数据,可以进行相关的操作。
同样copy to user把内核中数据拷贝到用户空间中,供用户层使用。