1*33b1fccfSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ OR Apache-2.0 */ 2*33b1fccfSAndroid Build Coastguard Worker /* 3*33b1fccfSAndroid Build Coastguard Worker * Copyright (C) 2018 HUAWEI, Inc. 4*33b1fccfSAndroid Build Coastguard Worker * http://www.huawei.com/ 5*33b1fccfSAndroid Build Coastguard Worker * Created by Li Guifu <[email protected]> 6*33b1fccfSAndroid Build Coastguard Worker */ 7*33b1fccfSAndroid Build Coastguard Worker #ifndef __EROFS_ERR_H 8*33b1fccfSAndroid Build Coastguard Worker #define __EROFS_ERR_H 9*33b1fccfSAndroid Build Coastguard Worker 10*33b1fccfSAndroid Build Coastguard Worker #ifdef __cplusplus 11*33b1fccfSAndroid Build Coastguard Worker extern "C" 12*33b1fccfSAndroid Build Coastguard Worker { 13*33b1fccfSAndroid Build Coastguard Worker #endif 14*33b1fccfSAndroid Build Coastguard Worker 15*33b1fccfSAndroid Build Coastguard Worker #include <errno.h> 16*33b1fccfSAndroid Build Coastguard Worker 17*33b1fccfSAndroid Build Coastguard Worker #define MAX_ERRNO (4095) 18*33b1fccfSAndroid Build Coastguard Worker #define IS_ERR_VALUE(x) \ 19*33b1fccfSAndroid Build Coastguard Worker ((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) 20*33b1fccfSAndroid Build Coastguard Worker ERR_PTR(long error)21*33b1fccfSAndroid Build Coastguard Workerstatic inline void *ERR_PTR(long error) 22*33b1fccfSAndroid Build Coastguard Worker { 23*33b1fccfSAndroid Build Coastguard Worker return (void *)error; 24*33b1fccfSAndroid Build Coastguard Worker } 25*33b1fccfSAndroid Build Coastguard Worker IS_ERR(const void * ptr)26*33b1fccfSAndroid Build Coastguard Workerstatic inline int IS_ERR(const void *ptr) 27*33b1fccfSAndroid Build Coastguard Worker { 28*33b1fccfSAndroid Build Coastguard Worker return IS_ERR_VALUE((unsigned long)ptr); 29*33b1fccfSAndroid Build Coastguard Worker } 30*33b1fccfSAndroid Build Coastguard Worker PTR_ERR(const void * ptr)31*33b1fccfSAndroid Build Coastguard Workerstatic inline long PTR_ERR(const void *ptr) 32*33b1fccfSAndroid Build Coastguard Worker { 33*33b1fccfSAndroid Build Coastguard Worker return (long) ptr; 34*33b1fccfSAndroid Build Coastguard Worker } 35*33b1fccfSAndroid Build Coastguard Worker ERR_CAST(const void * ptr)36*33b1fccfSAndroid Build Coastguard Workerstatic inline void * ERR_CAST(const void *ptr) 37*33b1fccfSAndroid Build Coastguard Worker { 38*33b1fccfSAndroid Build Coastguard Worker /* cast away the const */ 39*33b1fccfSAndroid Build Coastguard Worker return (void *) ptr; 40*33b1fccfSAndroid Build Coastguard Worker } 41*33b1fccfSAndroid Build Coastguard Worker 42*33b1fccfSAndroid Build Coastguard Worker #ifdef __cplusplus 43*33b1fccfSAndroid Build Coastguard Worker } 44*33b1fccfSAndroid Build Coastguard Worker #endif 45*33b1fccfSAndroid Build Coastguard Worker 46*33b1fccfSAndroid Build Coastguard Worker #endif 47