日期:2014-05-16  浏览次数:20671 次

__put_user()和put_user()区别
如题,还有比如
__get_user()和 get_user()
__add_wait_queue() 和add_wait_queue()
还能看到一些其他的这类函数,只是前面多了个双下划线,请问这有什么差别呢??

------解决方案--------------------
不加__的get_user多了个检查地址空间的有效性。

add_wait_queue 可能是调用了__add_wait_queue()
------解决方案--------------------
xxxx 会去调用 __xxxx
一般有几种情况要分开写
1、
xxxx 是统一的接口,而__xxxx 是具体cpu架构下的实现,很可能有多个__xxxx,当然最终只有一个__xxxx被编译

2、xxxx 检验一下参数或加保护后调__xxxx ,这类似一种编码习惯,能减少bug

3、xxxx的参数或返回值有有更改,为了低版本的代码不用修改,实现一个__xxxx做过渡。

没有定发,也没有什么难度,看代码就知道了