1 /*
2  * Copyright (C) 2002     Manuel Novoa III
3  * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
4  *
5  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
6  */
7 
8 #include <features.h>
9 #include <errno.h>
10 
11 extern const char _string_syserrmsgs[] attribute_hidden;
12 
13 #ifdef __UCLIBC_HAS_SYS_ERRLIST__
14 
15 const char *const sys_errlist[] = {
16 	[0] =				_string_syserrmsgs + 0,
17 	[EPERM] =			_string_syserrmsgs + 8,
18 	[ENOENT] =			_string_syserrmsgs + 32,
19 	[ESRCH] =			_string_syserrmsgs + 58,
20 	[EINTR] =			_string_syserrmsgs + 74,
21 	[EIO] =				_string_syserrmsgs + 98,
22 	[ENXIO] =			_string_syserrmsgs + 117,
23 	[E2BIG] =			_string_syserrmsgs + 143,
24 	[ENOEXEC] =			_string_syserrmsgs + 166,
25 	[EBADF] =			_string_syserrmsgs + 184,
26 	[ECHILD] =			_string_syserrmsgs + 204,
27 	[EAGAIN] =			_string_syserrmsgs + 223,
28 	[ENOMEM] =			_string_syserrmsgs + 256,
29 	[EACCES] =			_string_syserrmsgs + 279,
30 	[EFAULT] =			_string_syserrmsgs + 297,
31 	[ENOTBLK] =			_string_syserrmsgs + 309,
32 	[EBUSY] =			_string_syserrmsgs + 331,
33 	[EEXIST] =			_string_syserrmsgs + 355,
34 	[EXDEV] =			_string_syserrmsgs + 367,
35 	[ENODEV] =			_string_syserrmsgs + 393,
36 	[ENOTDIR] =			_string_syserrmsgs + 408,
37 	[EISDIR] =			_string_syserrmsgs + 424,
38 	[EINVAL] =			_string_syserrmsgs + 439,
39 	[ENFILE] =			_string_syserrmsgs + 456,
40 	[EMFILE] =			_string_syserrmsgs + 486,
41 	[ENOTTY] =			_string_syserrmsgs + 506,
42 	[ETXTBSY] =			_string_syserrmsgs + 537,
43 	[EFBIG] =			_string_syserrmsgs + 552,
44 	[ENOSPC] =			_string_syserrmsgs + 567,
45 	[ESPIPE] =			_string_syserrmsgs + 591,
46 	[EROFS] =			_string_syserrmsgs + 604,
47 	[EMLINK] =			_string_syserrmsgs + 626,
48 	[EPIPE] =			_string_syserrmsgs + 641,
49 	[EDOM] =			_string_syserrmsgs + 653,
50 	[ERANGE] =			_string_syserrmsgs + 686,
51 	[EDEADLK] =			_string_syserrmsgs + 716,
52 	[ENAMETOOLONG] =		_string_syserrmsgs + 742,
53 	[ENOLCK] =			_string_syserrmsgs + 761,
54 	[ENOSYS] =			_string_syserrmsgs + 780,
55 	[ENOTEMPTY] =			_string_syserrmsgs + 805,
56 	[ELOOP] =			_string_syserrmsgs + 825,
57 	/*  	_string_syserrmsgs + 859, */
58 	[ENOMSG] =			_string_syserrmsgs + 860,
59 	[EIDRM] =			_string_syserrmsgs + 887,
60 	[ECHRNG] =			_string_syserrmsgs + 906,
61 	[EL2NSYNC] =			_string_syserrmsgs + 934,
62 	[EL3HLT] =			_string_syserrmsgs + 959,
63 	[EL3RST] =			_string_syserrmsgs + 974,
64 	[ELNRNG] =			_string_syserrmsgs + 988,
65 	[EUNATCH] =			_string_syserrmsgs + 1013,
66 	[ENOCSI] =			_string_syserrmsgs + 1042,
67 	[EL2HLT] =			_string_syserrmsgs + 1069,
68 	[EBADE] =			_string_syserrmsgs + 1084,
69 	[EBADR] =			_string_syserrmsgs + 1101,
70 	[EXFULL] =			_string_syserrmsgs + 1128,
71 	[ENOANO] =			_string_syserrmsgs + 1142,
72 	[EBADRQC] =			_string_syserrmsgs + 1151,
73 	[EBADSLT] =			_string_syserrmsgs + 1172,
74 	/*  	_string_syserrmsgs + 1185, */
75 	[EBFONT] =			_string_syserrmsgs + 1186,
76 	[ENOSTR] =			_string_syserrmsgs + 1207,
77 	[ENODATA] =			_string_syserrmsgs + 1227,
78 	[ETIME] =			_string_syserrmsgs + 1245,
79 	[ENOSR] =			_string_syserrmsgs + 1259,
80 	[ENONET] =			_string_syserrmsgs + 1284,
81 	[ENOPKG] =			_string_syserrmsgs + 1314,
82 	[EREMOTE] =			_string_syserrmsgs + 1336,
83 	[ENOLINK] =			_string_syserrmsgs + 1353,
84 	[EADV] =			_string_syserrmsgs + 1375,
85 	[ESRMNT] =			_string_syserrmsgs + 1391,
86 	[ECOMM] =			_string_syserrmsgs + 1405,
87 	[EPROTO] =			_string_syserrmsgs + 1433,
88 	[EMULTIHOP] =			_string_syserrmsgs + 1448,
89 	[EDOTDOT] =			_string_syserrmsgs + 1467,
90 	[EBADMSG] =			_string_syserrmsgs + 1486,
91 	[EOVERFLOW] =			_string_syserrmsgs + 1498,
92 	[ENOTUNIQ] =			_string_syserrmsgs + 1536,
93 	[EBADFD] =			_string_syserrmsgs + 1563,
94 	[EREMCHG] =			_string_syserrmsgs + 1592,
95 	[ELIBACC] =			_string_syserrmsgs + 1615,
96 	[ELIBBAD] =			_string_syserrmsgs + 1654,
97 	[ELIBSCN] =			_string_syserrmsgs + 1691,
98 	[ELIBMAX] =			_string_syserrmsgs + 1723,
99 	[ELIBEXEC] =			_string_syserrmsgs + 1771,
100 	[EILSEQ] =			_string_syserrmsgs + 1809,
101 	[ERESTART] =			_string_syserrmsgs + 1859,
102 	[ESTRPIPE] =			_string_syserrmsgs + 1903,
103 	[EUSERS] =			_string_syserrmsgs + 1922,
104 	[ENOTSOCK] =			_string_syserrmsgs + 1937,
105 	[EDESTADDRREQ] =		_string_syserrmsgs + 1968,
106 	[EMSGSIZE] =			_string_syserrmsgs + 1997,
107 	[EPROTOTYPE] =			_string_syserrmsgs + 2014,
108 	[ENOPROTOOPT] =			_string_syserrmsgs + 2045,
109 	[EPROTONOSUPPORT] =		_string_syserrmsgs + 2068,
110 	[ESOCKTNOSUPPORT] =		_string_syserrmsgs + 2091,
111 	[EOPNOTSUPP] =			_string_syserrmsgs + 2117,
112 	[EPFNOSUPPORT] =		_string_syserrmsgs + 2141,
113 	[EAFNOSUPPORT] =		_string_syserrmsgs + 2171,
114 	[EADDRINUSE] =			_string_syserrmsgs + 2212,
115 	[EADDRNOTAVAIL] =		_string_syserrmsgs + 2235,
116 	[ENETDOWN] =			_string_syserrmsgs + 2267,
117 	[ENETUNREACH] =			_string_syserrmsgs + 2283,
118 	[ENETRESET] =			_string_syserrmsgs + 2306,
119 	[ECONNABORTED] =		_string_syserrmsgs + 2342,
120 	[ECONNRESET] =			_string_syserrmsgs + 2375,
121 	[ENOBUFS] =			_string_syserrmsgs + 2400,
122 	[EISCONN] =			_string_syserrmsgs + 2426,
123 	[ENOTCONN] =			_string_syserrmsgs + 2466,
124 	[ESHUTDOWN] =			_string_syserrmsgs + 2502,
125 	[ETOOMANYREFS] =		_string_syserrmsgs + 2548,
126 	[ETIMEDOUT] =			_string_syserrmsgs + 2583,
127 	[ECONNREFUSED] =		_string_syserrmsgs + 2604,
128 	[EHOSTDOWN] =			_string_syserrmsgs + 2623,
129 	[EHOSTUNREACH] =		_string_syserrmsgs + 2636,
130 	[EALREADY] =			_string_syserrmsgs + 2653,
131 	[EINPROGRESS] =			_string_syserrmsgs + 2683,
132 	[ESTALE] =			_string_syserrmsgs + 2709,
133 	[EUCLEAN] =			_string_syserrmsgs + 2731,
134 	[ENOTNAM] =			_string_syserrmsgs + 2756,
135 	[ENAVAIL] =			_string_syserrmsgs + 2784,
136 	[EISNAM] =			_string_syserrmsgs + 2814,
137 	[EREMOTEIO] =			_string_syserrmsgs + 2835,
138 	[EDQUOT] =			_string_syserrmsgs + 2852,
139 	[ENOMEDIUM] =			_string_syserrmsgs + 2872,
140 	[EMEDIUMTYPE] =			_string_syserrmsgs + 2888,
141 
142 #if EDEADLOCK != EDEADLK
143 	[EDEADLOCK] =			_string_syserrmsgs + 2906,
144 #endif
145 
146 #if EWOULDBLOCK != EAGAIN
147 #error EWOULDBLOCK does not equal EAGAIN
148 #endif
149 
150 	/* For now, ignore the other arch-specific errors.  glibc only maps EPROCLIM. */
151 
152 	/* some other mips errors */
153 #ifdef ECANCELED
154 #endif
155 #ifdef EINIT
156 #endif
157 #ifdef EREMDEV
158 #endif
159 
160 	/* some other sparc errors */
161 #ifdef EPROCLIM
162 #endif
163 #ifdef ERREMOTE
164 #endif
165 };
166 
167 int sys_nerr = sizeof(sys_errlist)/sizeof(sys_errlist[0]);
168 
169 #endif
170