5
5
#include <errno.h>
6
6
#include "str_error.h"
7
7
8
+ #ifndef ENOTSUPP
9
+ #define ENOTSUPP 524
10
+ #endif
11
+
8
12
/* make sure libbpf doesn't use kernel-only integer typedefs */
9
13
#pragma GCC poison u8 u16 u32 u64 s8 s16 s32 s64
10
14
@@ -31,3 +35,70 @@ char *libbpf_strerror_r(int err, char *dst, int len)
31
35
}
32
36
return dst ;
33
37
}
38
+
39
+ const char * errstr (int err )
40
+ {
41
+ static __thread char buf [12 ];
42
+
43
+ if (err > 0 )
44
+ err = - err ;
45
+
46
+ switch (err ) {
47
+ case - E2BIG : return "-E2BIG" ;
48
+ case - EACCES : return "-EACCES" ;
49
+ case - EADDRINUSE : return "-EADDRINUSE" ;
50
+ case - EADDRNOTAVAIL : return "-EADDRNOTAVAIL" ;
51
+ case - EAGAIN : return "-EAGAIN" ;
52
+ case - EALREADY : return "-EALREADY" ;
53
+ case - EBADF : return "-EBADF" ;
54
+ case - EBADFD : return "-EBADFD" ;
55
+ case - EBUSY : return "-EBUSY" ;
56
+ case - ECANCELED : return "-ECANCELED" ;
57
+ case - ECHILD : return "-ECHILD" ;
58
+ case - EDEADLK : return "-EDEADLK" ;
59
+ case - EDOM : return "-EDOM" ;
60
+ case - EEXIST : return "-EEXIST" ;
61
+ case - EFAULT : return "-EFAULT" ;
62
+ case - EFBIG : return "-EFBIG" ;
63
+ case - EILSEQ : return "-EILSEQ" ;
64
+ case - EINPROGRESS : return "-EINPROGRESS" ;
65
+ case - EINTR : return "-EINTR" ;
66
+ case - EINVAL : return "-EINVAL" ;
67
+ case - EIO : return "-EIO" ;
68
+ case - EISDIR : return "-EISDIR" ;
69
+ case - ELOOP : return "-ELOOP" ;
70
+ case - EMFILE : return "-EMFILE" ;
71
+ case - EMLINK : return "-EMLINK" ;
72
+ case - EMSGSIZE : return "-EMSGSIZE" ;
73
+ case - ENAMETOOLONG : return "-ENAMETOOLONG" ;
74
+ case - ENFILE : return "-ENFILE" ;
75
+ case - ENODATA : return "-ENODATA" ;
76
+ case - ENODEV : return "-ENODEV" ;
77
+ case - ENOENT : return "-ENOENT" ;
78
+ case - ENOEXEC : return "-ENOEXEC" ;
79
+ case - ENOLINK : return "-ENOLINK" ;
80
+ case - ENOMEM : return "-ENOMEM" ;
81
+ case - ENOSPC : return "-ENOSPC" ;
82
+ case - ENOTBLK : return "-ENOTBLK" ;
83
+ case - ENOTDIR : return "-ENOTDIR" ;
84
+ case - ENOTSUPP : return "-ENOTSUPP" ;
85
+ case - ENOTTY : return "-ENOTTY" ;
86
+ case - ENXIO : return "-ENXIO" ;
87
+ case - EOPNOTSUPP : return "-EOPNOTSUPP" ;
88
+ case - EOVERFLOW : return "-EOVERFLOW" ;
89
+ case - EPERM : return "-EPERM" ;
90
+ case - EPIPE : return "-EPIPE" ;
91
+ case - EPROTO : return "-EPROTO" ;
92
+ case - EPROTONOSUPPORT : return "-EPROTONOSUPPORT" ;
93
+ case - ERANGE : return "-ERANGE" ;
94
+ case - EROFS : return "-EROFS" ;
95
+ case - ESPIPE : return "-ESPIPE" ;
96
+ case - ESRCH : return "-ESRCH" ;
97
+ case - ETXTBSY : return "-ETXTBSY" ;
98
+ case - EUCLEAN : return "-EUCLEAN" ;
99
+ case - EXDEV : return "-EXDEV" ;
100
+ default :
101
+ snprintf (buf , sizeof (buf ), "%d" , err );
102
+ return buf ;
103
+ }
104
+ }
0 commit comments