xref: /aosp_15_r20/external/bpftool/include/linux/err.h (revision 858ea5e570667251cdc31d3fe7b846b591105938)
1*858ea5e5SAndroid Build Coastguard Worker /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2*858ea5e5SAndroid Build Coastguard Worker 
3*858ea5e5SAndroid Build Coastguard Worker #ifndef __LINUX_ERR_H
4*858ea5e5SAndroid Build Coastguard Worker #define __LINUX_ERR_H
5*858ea5e5SAndroid Build Coastguard Worker 
6*858ea5e5SAndroid Build Coastguard Worker #include <linux/types.h>
7*858ea5e5SAndroid Build Coastguard Worker #include <asm/errno.h>
8*858ea5e5SAndroid Build Coastguard Worker 
9*858ea5e5SAndroid Build Coastguard Worker #define MAX_ERRNO       4095
10*858ea5e5SAndroid Build Coastguard Worker 
11*858ea5e5SAndroid Build Coastguard Worker #define IS_ERR_VALUE(x) ((x) >= (unsigned long)-MAX_ERRNO)
12*858ea5e5SAndroid Build Coastguard Worker 
ERR_PTR(long error_)13*858ea5e5SAndroid Build Coastguard Worker static inline void * ERR_PTR(long error_)
14*858ea5e5SAndroid Build Coastguard Worker {
15*858ea5e5SAndroid Build Coastguard Worker 	return (void *) error_;
16*858ea5e5SAndroid Build Coastguard Worker }
17*858ea5e5SAndroid Build Coastguard Worker 
PTR_ERR(const void * ptr)18*858ea5e5SAndroid Build Coastguard Worker static inline long PTR_ERR(const void *ptr)
19*858ea5e5SAndroid Build Coastguard Worker {
20*858ea5e5SAndroid Build Coastguard Worker 	return (long) ptr;
21*858ea5e5SAndroid Build Coastguard Worker }
22*858ea5e5SAndroid Build Coastguard Worker 
IS_ERR(const void * ptr)23*858ea5e5SAndroid Build Coastguard Worker static inline bool IS_ERR(const void *ptr)
24*858ea5e5SAndroid Build Coastguard Worker {
25*858ea5e5SAndroid Build Coastguard Worker 	return IS_ERR_VALUE((unsigned long)ptr);
26*858ea5e5SAndroid Build Coastguard Worker }
27*858ea5e5SAndroid Build Coastguard Worker 
IS_ERR_OR_NULL(const void * ptr)28*858ea5e5SAndroid Build Coastguard Worker static inline bool IS_ERR_OR_NULL(const void *ptr)
29*858ea5e5SAndroid Build Coastguard Worker {
30*858ea5e5SAndroid Build Coastguard Worker 	return (!ptr) || IS_ERR_VALUE((unsigned long)ptr);
31*858ea5e5SAndroid Build Coastguard Worker }
32*858ea5e5SAndroid Build Coastguard Worker 
33*858ea5e5SAndroid Build Coastguard Worker #endif
34