summaryrefslogtreecommitdiff
path: root/LibC/errno_numbers.h
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-02-26 22:40:35 +0100
committerAndreas Kling <awesomekling@gmail.com>2019-02-26 22:40:35 +0100
commit424368034b21dbd363e1e8662069bb4dd2de6f4b (patch)
treec929ab21b38853e09106774cd913ed4dffd1f585 /LibC/errno_numbers.h
parent83e78648e4aa989ce41f6781dafa542d518fe338 (diff)
downloadserenity-424368034b21dbd363e1e8662069bb4dd2de6f4b.zip
LibC: Make errno codes be #defines instead of enum values.
It turns out that a lot of 3rd party software does things like: #ifdef EINTR ... #endif This won't work if EINTR is an enum. So much for that nice idea.
Diffstat (limited to 'LibC/errno_numbers.h')
-rw-r--r--LibC/errno_numbers.h152
1 files changed, 71 insertions, 81 deletions
diff --git a/LibC/errno_numbers.h b/LibC/errno_numbers.h
index 03cd9ce433..710982f205 100644
--- a/LibC/errno_numbers.h
+++ b/LibC/errno_numbers.h
@@ -1,83 +1,73 @@
#pragma once
-#define __ENUMERATE_ALL_ERRORS \
- __ERROR(ESUCCESS, "Success (not an error)") \
- __ERROR(EPERM, "Operation not permitted") \
- __ERROR(ENOENT, "No such file or directory") \
- __ERROR(ESRCH, "No such process") \
- __ERROR(EINTR, "Interrupted syscall") \
- __ERROR(EIO, "I/O error") \
- __ERROR(ENXIO, "No such device or address") \
- __ERROR(E2BIG, "Argument list too long") \
- __ERROR(ENOEXEC, "Exec format error") \
- __ERROR(EBADF, "Bad fd number") \
- __ERROR(ECHILD, "No child processes") \
- __ERROR(EAGAIN, "Try again") \
- __ERROR(ENOMEM, "Out of memory") \
- __ERROR(EACCES, "Permission denied") \
- __ERROR(EFAULT, "Bad address") \
- __ERROR(ENOTBLK, "Block device required") \
- __ERROR(EBUSY, "Device or resource busy") \
- __ERROR(EEXIST, "File already exists") \
- __ERROR(EXDEV, "Cross-device link") \
- __ERROR(ENODEV, "No such device") \
- __ERROR(ENOTDIR, "Not a directory") \
- __ERROR(EISDIR, "Is a directory") \
- __ERROR(EINVAL, "Invalid argument") \
- __ERROR(ENFILE, "File table overflow") \
- __ERROR(EMFILE, "Too many open files") \
- __ERROR(ENOTTY, "Not a TTY") \
- __ERROR(ETXTBSY, "Text file busy") \
- __ERROR(EFBIG, "File too large") \
- __ERROR(ENOSPC, "No space left on device") \
- __ERROR(ESPIPE, "Illegal seek") \
- __ERROR(EROFS, "Read-only filesystem") \
- __ERROR(EMLINK, "Too many links") \
- __ERROR(EPIPE, "Broken pipe") \
- __ERROR(ERANGE, "Range error") \
- __ERROR(ENAMETOOLONG, "Name too long") \
- __ERROR(ELOOP, "Too many symlinks") \
- __ERROR(EOVERFLOW, "Overflow") \
- __ERROR(EOPNOTSUPP, "Operation not supported") \
- __ERROR(ENOSYS, "No such syscall") \
- __ERROR(ENOTIMPL, "Not implemented") \
- __ERROR(EAFNOSUPPORT, "Address family not supported") \
- __ERROR(ENOTSOCK, "Not a socket") \
- __ERROR(EADDRINUSE, "Address in use") \
- __ERROR(EWHYTHO, "Failed without setting an error code (Bug!)") \
- __ERROR(ENOTEMPTY, "Directory not empty") \
- __ERROR(EDOM, "Math argument out of domain") \
- __ERROR(ECONNREFUSED, "Connection refused") \
- __ERROR(EADDRNOTAVAIL, "Address not available") \
- __ERROR(EISCONN, "Already connected") \
- __ERROR(ECONNABORTED, "Connection aborted") \
- __ERROR(EALREADY, "Connection already in progress") \
- __ERROR(ECONNRESET, "Connection reset") \
- __ERROR(EDESTADDRREQ, "Desination address required") \
- __ERROR(EHOSTUNREACH, "Host unreachable") \
- __ERROR(EILSEQ, "Illegal byte sequence") \
- __ERROR(EMSGSIZE, "Message size") \
- __ERROR(ENETDOWN, "Network down") \
- __ERROR(ENETUNREACH, "Network unreachable") \
- __ERROR(ENETRESET, "Network reset") \
- __ERROR(ENOBUFS, "No buffer space") \
- __ERROR(ENOLCK, "No lock available") \
- __ERROR(ENOMSG, "No message") \
- __ERROR(ENOPROTOOPT, "No protocol option") \
- __ERROR(ENOTCONN, "Not connected") \
- __ERROR(EWOULDBLOCK, "Operation would block") \
- __ERROR(EPROTONOSUPPORT,"Protocol not supported") \
- __ERROR(EDEADLK, "Resource deadlock would occur") \
- __ERROR(ETIMEDOUT, "Timed out") \
- __ERROR(EPROTOTYPE, "Wrong protocol type") \
- __ERROR(EINPROGRESS, "Operation in progress") \
- __ERROR(EMAXERRNO, "The highest errno +1 :^)")
-
-
-enum __errno_value {
-#undef __ENUMERATE_ERROR
-#define __ERROR(a, b) a,
- __ENUMERATE_ALL_ERRORS
-#undef __ENUMERATE_ERROR
- __errno_count
-};
+#define ESUCCESS 0
+#define EPERM 1
+#define ENOENT 2
+#define ESRCH 3
+#define EINTR 4
+#define EIO 5
+#define ENXIO 6
+#define E2BIG 7
+#define ENOEXEC 8
+#define EBADF 9
+#define ECHILD 10
+#define EAGAIN 11
+#define ENOMEM 12
+#define EACCES 13
+#define EFAULT 14
+#define ENOTBLK 15
+#define EBUSY 16
+#define EEXIST 17
+#define EXDEV 18
+#define ENODEV 19
+#define ENOTDIR 20
+#define EISDIR 21
+#define EINVAL 22
+#define ENFILE 23
+#define EMFILE 24
+#define ENOTTY 25
+#define ETXTBSY 26
+#define EFBIG 27
+#define ENOSPC 28
+#define ESPIPE 29
+#define EROFS 30
+#define EMLINK 31
+#define EPIPE 32
+#define ERANGE 33
+#define ENAMETOOLONG 34
+#define ELOOP 35
+#define EOVERFLOW 36
+#define EOPNOTSUPP 37
+#define ENOSYS 38
+#define ENOTIMPL 39
+#define EAFNOSUPPORT 40
+#define ENOTSOCK 41
+#define EADDRINUSE 42
+#define EWHYTHO 43
+#define ENOTEMPTY 44
+#define EDOM 45
+#define ECONNREFUSED 46
+#define EADDRNOTAVAIL 47
+#define EISCONN 48
+#define ECONNABORTED 49
+#define EALREADY 50
+#define ECONNRESET 51
+#define EDESTADDRREQ 52
+#define EHOSTUNREACH 53
+#define EILSEQ 54
+#define EMSGSIZE 55
+#define ENETDOWN 56
+#define ENETUNREACH 57
+#define ENETRESET 58
+#define ENOBUFS 59
+#define ENOLCK 60
+#define ENOMSG 61
+#define ENOPROTOOPT 62
+#define ENOTCONN 63
+#define EWOULDBLOCK 64
+#define EPROTONOSUPPORT 65
+#define EDEADLK 66
+#define ETIMEDOUT 67
+#define EPROTOTYPE 68
+#define EINPROGRESS 69
+#define EMAXERRNO 70