This source file includes following definitions.
- ERR_PTR
- PTR_ERR
- IS_ERR
- IS_ERR_OR_NULL
- PTR_ERR_OR_ZERO
- ERR_CAST
1
2 #ifndef __TOOLS_LINUX_ERR_H
3 #define __TOOLS_LINUX_ERR_H
4
5 #include <linux/compiler.h>
6 #include <linux/types.h>
7
8 #include <asm/errno.h>
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #define MAX_ERRNO 4095
32
33 #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
34
35 static inline void * __must_check ERR_PTR(long error_)
36 {
37 return (void *) error_;
38 }
39
40 static inline long __must_check PTR_ERR(__force const void *ptr)
41 {
42 return (long) ptr;
43 }
44
45 static inline bool __must_check IS_ERR(__force const void *ptr)
46 {
47 return IS_ERR_VALUE((unsigned long)ptr);
48 }
49
50 static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr)
51 {
52 return unlikely(!ptr) || IS_ERR_VALUE((unsigned long)ptr);
53 }
54
55 static inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr)
56 {
57 if (IS_ERR(ptr))
58 return PTR_ERR(ptr);
59 else
60 return 0;
61 }
62
63
64
65
66
67
68
69
70 static inline void * __must_check ERR_CAST(__force const void *ptr)
71 {
72
73 return (void *) ptr;
74 }
75 #endif