1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef ERR_H 3*4882a593Smuzhiyun #define ERR_H 4*4882a593Smuzhiyun #define MAX_ERRNO 4095 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO) 7*4882a593Smuzhiyun ERR_PTR(long error)8*4882a593Smuzhiyunstatic inline void * __must_check ERR_PTR(long error) 9*4882a593Smuzhiyun { 10*4882a593Smuzhiyun return (void *) error; 11*4882a593Smuzhiyun } 12*4882a593Smuzhiyun PTR_ERR(const void * ptr)13*4882a593Smuzhiyunstatic inline long __must_check PTR_ERR(const void *ptr) 14*4882a593Smuzhiyun { 15*4882a593Smuzhiyun return (long) ptr; 16*4882a593Smuzhiyun } 17*4882a593Smuzhiyun IS_ERR(const void * ptr)18*4882a593Smuzhiyunstatic inline long __must_check IS_ERR(const void *ptr) 19*4882a593Smuzhiyun { 20*4882a593Smuzhiyun return IS_ERR_VALUE((unsigned long)ptr); 21*4882a593Smuzhiyun } 22*4882a593Smuzhiyun IS_ERR_OR_NULL(const void * ptr)23*4882a593Smuzhiyunstatic inline long __must_check IS_ERR_OR_NULL(const void *ptr) 24*4882a593Smuzhiyun { 25*4882a593Smuzhiyun return !ptr || IS_ERR_VALUE((unsigned long)ptr); 26*4882a593Smuzhiyun } 27*4882a593Smuzhiyun #endif /* ERR_H */ 28