access_ok()函数
//函数原型
int access_ok(int type, const void __user *addr, unsigned long size);
(1)返回值:布尔值,1表示成功,0表示失败;
(2)type:检查用户空间地址的权限;VERIFY_READ或者VERIFY_WRITE;
<1>VERIFY_READ:驱动是否可以读取用户空间的指定地址;
<2>VERIFY_WRITE:驱动是否可以读取用户空间的指定地址;
<3>VERIFY_WRITE:驱动在指定用户空间地址既要读取也要写入,也是填这个;
(3)addr:用户空间地址;
(4)size:要操作的字节数;例如驱动要从指定用户空间地址读取一个int型整数,则size就是sizeof(int);
使用示例
在put_user()和get_user()函数中就有用到,详情参见博客: 《put_user()函数和get_usr()函数介绍》;