1
0

errno.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. /*++
  2. Copyright (c) 2013 Minoca Corp.
  3. This file is licensed under the terms of the GNU Lesser General Public
  4. License version 3. Alternative licensing terms are available. Contact
  5. info@minocacorp.com for details.
  6. Module Name:
  7. errno.h
  8. Abstract:
  9. This header contains definitions for standard error numbers.
  10. Author:
  11. Evan Green 11-Mar-2013
  12. --*/
  13. #ifndef _ERRNO_H
  14. #define _ERRNO_H
  15. //
  16. // ------------------------------------------------------------------- Includes
  17. //
  18. #include <libcbase.h>
  19. #include <stddef.h>
  20. //
  21. // ---------------------------------------------------------------- Definitions
  22. //
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. //
  27. // Define errno as a macro so that the test for errno being defined succeeds.
  28. //
  29. #define errno errno
  30. //
  31. // Define standard error numbers.
  32. //
  33. //
  34. // Operation not permitted
  35. //
  36. #define EPERM 1
  37. //
  38. // No such file or directory
  39. //
  40. #define ENOFILE 2
  41. #define ENOENT 2
  42. //
  43. // No such process
  44. //
  45. #define ESRCH 3
  46. //
  47. // Interrupted system call
  48. //
  49. #define EINTR 4
  50. //
  51. // I/O error
  52. //
  53. #define EIO 5
  54. //
  55. // No such device or address
  56. //
  57. #define ENXIO 6
  58. //
  59. // Argument list too long
  60. //
  61. #define E2BIG 7
  62. //
  63. // Exec format error
  64. //
  65. #define ENOEXEC 8
  66. //
  67. // Bad file descriptor
  68. //
  69. #define EBADF 9
  70. //
  71. // No child processes
  72. //
  73. #define ECHILD 10
  74. //
  75. // Try again
  76. //
  77. #define EAGAIN 11
  78. //
  79. // Out of memory
  80. //
  81. #define ENOMEM 12
  82. //
  83. // Permission denied
  84. //
  85. #define EACCES 13
  86. //
  87. // Bad address
  88. //
  89. #define EFAULT 14
  90. //
  91. // Block device required
  92. //
  93. #define ENOTBLK 15
  94. //
  95. // Device or resource busy
  96. //
  97. #define EBUSY 16
  98. //
  99. // File exists
  100. //
  101. #define EEXIST 17
  102. //
  103. // Improper cross device link
  104. //
  105. #define EXDEV 18
  106. //
  107. // No such device
  108. //
  109. #define ENODEV 19
  110. //
  111. // Not a directory
  112. //
  113. #define ENOTDIR 20
  114. //
  115. // Is a directory
  116. //
  117. #define EISDIR 21
  118. //
  119. // Invalid argument
  120. //
  121. #define EINVAL 22
  122. //
  123. // Too many open files in the system
  124. //
  125. #define ENFILE 23
  126. //
  127. // Too many open files
  128. //
  129. #define EMFILE 24
  130. //
  131. // Inappropriate I/O control operation (not a typewriter)
  132. //
  133. #define ENOTTY 25
  134. //
  135. // Text file busy
  136. //
  137. #define ETXTBSY 26
  138. //
  139. // File too large
  140. //
  141. #define EFBIG 27
  142. //
  143. // No space left on device
  144. //
  145. #define ENOSPC 28
  146. //
  147. // Illegal seek (on a pipe)
  148. //
  149. #define ESPIPE 29
  150. //
  151. // Read-only file system
  152. //
  153. #define EROFS 30
  154. //
  155. // Too many links
  156. //
  157. #define EMLINK 31
  158. //
  159. // Broken pipe
  160. //
  161. #define EPIPE 32
  162. //
  163. // Numerical argument out of domain
  164. //
  165. #define EDOM 33
  166. //
  167. // Numerical result out of range
  168. //
  169. #define ERANGE 34
  170. //
  171. // Resource deadlock would occur
  172. //
  173. #define EDEADLOCK 35
  174. #define EDEADLK 35
  175. //
  176. // File name too long
  177. //
  178. #define ENAMETOOLONG 36
  179. //
  180. // No record locks available
  181. //
  182. #define ENOLCK 37
  183. //
  184. // Function not implemented
  185. //
  186. #define ENOSYS 38
  187. //
  188. // Directory not empty
  189. //
  190. #define ENOTEMPTY 39
  191. //
  192. // Too many symbolic links encountered
  193. //
  194. #define ELOOP 40
  195. //
  196. // Operation would block
  197. //
  198. #define EWOULDBLOCK EAGAIN
  199. //
  200. // No message of desired type
  201. //
  202. #define ENOMSG 42
  203. //
  204. // Identifier removed
  205. //
  206. #define EIDRM 43
  207. //
  208. // Operation not supported.
  209. //
  210. #define ENOTSUP 44
  211. //
  212. // The previous owner died.
  213. //
  214. #define EOWNERDEAD 45
  215. //
  216. // The state is not recoverable.
  217. //
  218. #define ENOTRECOVERABLE 46
  219. //
  220. // Device not a stream
  221. //
  222. #define ENOSTR 47
  223. //
  224. // No data available
  225. //
  226. #define ENODATA 48
  227. //
  228. // Timer expired
  229. //
  230. #define ETIME 49
  231. //
  232. // Out of streams resources
  233. //
  234. #define ENOSR 50
  235. //
  236. // Link has been severed
  237. //
  238. #define ENOLINK 51
  239. //
  240. // Protocol error
  241. //
  242. #define EPROTO 52
  243. //
  244. // Multihop attempted
  245. //
  246. #define EMULTIHOP 53
  247. //
  248. // Not a data message
  249. //
  250. #define EBADMSG 54
  251. //
  252. // Value too large for defined data type
  253. //
  254. #define EOVERFLOW 55
  255. //
  256. // Illegal byte sequence
  257. //
  258. #define EILSEQ 56
  259. //
  260. // Socket operation on non-socket
  261. //
  262. #define ENOTSOCK 57
  263. //
  264. // Destination address required
  265. //
  266. #define EDESTADDRREQ 58
  267. //
  268. // Message too long
  269. //
  270. #define EMSGSIZE 59
  271. //
  272. // Protocol wrong type for socket
  273. //
  274. #define EPROTOTYPE 60
  275. //
  276. // Protocol not available
  277. //
  278. #define ENOPROTOOPT 61
  279. //
  280. // Protocol not supported
  281. //
  282. #define EPROTONOSUPPORT 62
  283. //
  284. // Operation not supported on transport endpoint
  285. //
  286. #define EOPNOTSUPP 63
  287. //
  288. // Address family not supported by protocol
  289. //
  290. #define EAFNOSUPPORT 64
  291. //
  292. // Address already in use
  293. //
  294. #define EADDRINUSE 65
  295. //
  296. // Cannot assign requested address
  297. //
  298. #define EADDRNOTAVAIL 66
  299. //
  300. // Network is down
  301. //
  302. #define ENETDOWN 67
  303. //
  304. // Network is unreachable
  305. //
  306. #define ENETUNREACH 68
  307. //
  308. // Network dropped connection on reset
  309. //
  310. #define ENETRESET 69
  311. //
  312. // Software caused connection abort
  313. //
  314. #define ECONNABORTED 70
  315. //
  316. // Connection reset
  317. //
  318. #define ECONNRESET 71
  319. //
  320. // No buffer space available
  321. //
  322. #define ENOBUFS 72
  323. //
  324. // Transport endpoint already connected
  325. //
  326. #define EISCONN 73
  327. //
  328. // Transport endpoint is not connected
  329. //
  330. #define ENOTCONN 74
  331. //
  332. // Connection timed out
  333. //
  334. #define ETIMEDOUT 75
  335. //
  336. // Connection refused
  337. //
  338. #define ECONNREFUSED 76
  339. //
  340. // No route to host
  341. //
  342. #define EHOSTUNREACH 77
  343. //
  344. // Operation already in progress
  345. //
  346. #define EALREADY 78
  347. //
  348. // Operation now in progress
  349. //
  350. #define EINPROGRESS 79
  351. //
  352. // Stale NFS handle
  353. //
  354. #define ESTALE 80
  355. //
  356. // Quota exceeded
  357. //
  358. #define EDQUOT 81
  359. //
  360. // Operation canceled
  361. //
  362. #define ECANCELED 82
  363. //
  364. // Protocol family not supported
  365. //
  366. #define EPFNOSUPPORT 83
  367. //
  368. // Cannot send after endpoint shutdown.
  369. //
  370. #define ESHUTDOWN 84
  371. //
  372. // Host is down.
  373. //
  374. #define EHOSTDOWN 85
  375. //
  376. // ------------------------------------------------------ Data Type Definitions
  377. //
  378. //
  379. // -------------------------------------------------------------------- Globals
  380. //
  381. //
  382. // Define the last error number global.
  383. //
  384. LIBC_API extern __THREAD int errno;
  385. //
  386. // -------------------------------------------------------- Function Prototypes
  387. //
  388. #ifdef __cplusplus
  389. }
  390. #endif
  391. #endif