当前位置: 技术问答>linux和unix
谁知IS_ERR()的涵义?
来源: 互联网 发布时间:2017-01-05
本文导语: 现有如下代码: #define MAX_ERRNO 4095 #define IS_ERR_VALUE(x) unlikely(x)>=(unsigned long)-MAX_ERRNO static inline long IS_ERR(const void *ptr) { return IS_ERR_VALUE(unsigned long)ptr); } 书上说,内核最后一个PAGE是4K的,所以定义MAX_ERRNO=409...
现有如下代码:
#define MAX_ERRNO 4095
#define IS_ERR_VALUE(x) unlikely(x)>=(unsigned long)-MAX_ERRNO
static inline long IS_ERR(const void *ptr)
{
return IS_ERR_VALUE(unsigned long)ptr);
}
书上说,内核最后一个PAGE是4K的,所以定义MAX_ERRNO=4095,那
unsigned long是多少?什么涵义?
#define MAX_ERRNO 4095
#define IS_ERR_VALUE(x) unlikely(x)>=(unsigned long)-MAX_ERRNO
static inline long IS_ERR(const void *ptr)
{
return IS_ERR_VALUE(unsigned long)ptr);
}
书上说,内核最后一个PAGE是4K的,所以定义MAX_ERRNO=4095,那
unsigned long是多少?什么涵义?
|
负的4095转成unsigned long类型相当于2的32次方-4095(如果unsigned long是32位)
就是说你的指针地址不能大于 2的32次方-4095,相当于不能指向32位地址空间的地址最高的最后一个page.
就是说你的指针地址不能大于 2的32次方-4095,相当于不能指向32位地址空间的地址最高的最后一个page.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。