博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(void __user *)arg 中__user的作用
阅读量:7102 次
发布时间:2019-06-28

本文共 408 字,大约阅读时间需要 1 分钟。

__user宏简单告诉编译器(通过 noderef)不应该解除这个指针的引用(因为在当前地址空间中它是没有意义的)。 

 

(void __user *)arg 指的是arg值是一个用户空间的地址,不能直接进行拷贝等,要使用例如copy_from_user,copy_to_user等函数。

默认是内核空间,因为这是驱动,是在内核空间运行的。

 

直接拷贝不了,因为一个是在用户空间,一个是在内核空间

如果要拷贝的话,可使用 copy_from_user 
假如用户空间写为:
int i = 0;
ioctl(fd, XXXXX, i);
内核空间需要写为
get_user(xxx, (int __user *)arg);
假如用户空间写为:
int i = 0;
ioctl(fd, XXXXX, &i);
则内核空间需要写为:
copy_from_user(xxx, (void __user *)arg, size);

转载地址:http://pokhl.baihongyu.com/

你可能感兴趣的文章
iOS WebSocket
查看>>
Java多线程 -- wait() 和 notify() 使用入门
查看>>
React@16.3 全新的Context API进阶教程
查看>>
区块链开发教程系列【加精】
查看>>
dubbo源码解析(四十一)集群——Mock
查看>>
前端面试问题汇总
查看>>
4.java数组
查看>>
MySQL数据类型优化
查看>>
蚂蚁金服核心技术:百亿特征实时推荐算法揭秘 ...
查看>>
阿里云智能技术战略架构师陈绪:透视2019云计算酣战 ...
查看>>
深度学习要多深,才能读懂人话?|阿里小蜜前沿探索 ...
查看>>
好程序员分享如何看待CSS中BEM的命名方式?
查看>>
国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
查看>>
从零开始学习JAVA多线程(二)
查看>>
如何实现多云成本的管理
查看>>
香港特首参观杭州城市大脑,阿里云技术获赞
查看>>
切入物流分拣市场,3D机器视觉还有多长的路要走?
查看>>
Influxdb简单实用操作
查看>>
好程序员Web前端开发入门之网页制作三要素
查看>>
「镁客早报」紫光申请100亿纾困专项债券;比利时禁止Facebook追踪当地用户
查看>>