首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

设备初始化中的device_create返回值需要判断返回值吗?解决思路

2013-01-26 
设备初始化中的device_create返回值需要判断返回值吗?我看见一些内核函数没有判断返回值,是经验不会出问题

设备初始化中的device_create返回值需要判断返回值吗?
我看见一些内核函数没有判断返回值,是经验不会出问题不需判断,还是别的原因?另外,有些异常分支中有
unlikely((x) >= (unsigned long)-MAX_ERRNO)这是什么意思?(#define MAX_ERRNO4095)是很少出现这种情况,可以优化的意思吗?谢谢。
[解决办法]

引用:
我看见一些内核函数没有判断返回值,是经验不会出问题不需判断,还是别的原因?另外,有些异常分支中有
unlikely((x) >= (unsigned long)-MAX_ERRNO)这是什么意思?(#define MAX_ERRNO 4095)是很少出现这种情况,可以优化的意思吗?谢谢。

define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
可以这样理解,x >= (unsigned long)-MAX_ERRNO的可能性要小,也就是说x为错误指针的可能性要小,这也完全符合实际情况,因为内核函数返回指针出错的概率要比正确的概率小。

(x) >= (unsigned long)-MAX_ERRNO来判断内核函数的返回值是一个有效的指针,还是一个出错代码。

热点排行