17f4dd379Sjsg /* Public domain. */ 27f4dd379Sjsg 37f4dd379Sjsg #ifndef _LINUX_ERR_H 47f4dd379Sjsg #define _LINUX_ERR_H 57f4dd379Sjsg 67f4dd379Sjsg #include <sys/errno.h> 77f4dd379Sjsg #include <linux/compiler.h> 87f4dd379Sjsg 97f4dd379Sjsg #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-ELAST) 107f4dd379Sjsg 117f4dd379Sjsg static inline void * ERR_PTR(long error)127f4dd379SjsgERR_PTR(long error) 137f4dd379Sjsg { 147f4dd379Sjsg return (void *) error; 157f4dd379Sjsg } 167f4dd379Sjsg 177f4dd379Sjsg static inline long PTR_ERR(const void * ptr)187f4dd379SjsgPTR_ERR(const void *ptr) 197f4dd379Sjsg { 207f4dd379Sjsg return (long) ptr; 217f4dd379Sjsg } 227f4dd379Sjsg 23*a24c48f0Sjsg static inline bool IS_ERR(const void * ptr)247f4dd379SjsgIS_ERR(const void *ptr) 257f4dd379Sjsg { 267f4dd379Sjsg return IS_ERR_VALUE((unsigned long)ptr); 277f4dd379Sjsg } 287f4dd379Sjsg 29*a24c48f0Sjsg static inline bool IS_ERR_OR_NULL(const void * ptr)307f4dd379SjsgIS_ERR_OR_NULL(const void *ptr) 317f4dd379Sjsg { 327f4dd379Sjsg return !ptr || IS_ERR_VALUE((unsigned long)ptr); 337f4dd379Sjsg } 347f4dd379Sjsg 357f4dd379Sjsg static inline void * ERR_CAST(const void * ptr)367f4dd379SjsgERR_CAST(const void *ptr) 377f4dd379Sjsg { 387f4dd379Sjsg return (void *)ptr; 397f4dd379Sjsg } 407f4dd379Sjsg 417f4dd379Sjsg static inline int PTR_ERR_OR_ZERO(const void * ptr)427f4dd379SjsgPTR_ERR_OR_ZERO(const void *ptr) 437f4dd379Sjsg { 447f4dd379Sjsg return IS_ERR(ptr)? PTR_ERR(ptr) : 0; 457f4dd379Sjsg } 467f4dd379Sjsg 477f4dd379Sjsg #endif 48