diff options
author | sin-ack <sin-ack@users.noreply.github.com> | 2021-09-12 11:29:28 +0000 |
---|---|---|
committer | Ali Mohammad Pur <Ali.mpfard@gmail.com> | 2021-12-16 22:21:35 +0330 |
commit | 69ef2119253522e79a884b897b70df27317531cc (patch) | |
tree | 2f6abe899e2564eef2b1313431a8ddaceb4cace5 /Kernel/API | |
parent | 0cca6cef958f7742e4c232ef79311f6e5b039c1f (diff) | |
download | serenity-69ef2119253522e79a884b897b70df27317531cc.zip |
Kernel+LibC: Move errno definitions to Kernel/API/POSIX
This fixes at least half of our LibC includes in the kernel. The source
of truth for errno codes and their description strings now lives in
Kernel/API/POSIX/errno.h as an enumeration, which LibC includes.
Diffstat (limited to 'Kernel/API')
-rw-r--r-- | Kernel/API/POSIX/errno.h | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Kernel/API/POSIX/errno.h b/Kernel/API/POSIX/errno.h new file mode 100644 index 0000000000..65a8d74c1e --- /dev/null +++ b/Kernel/API/POSIX/errno.h @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> + * Copyright (c) 2021, sin-ack <sin-ack@protonmail.com> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#define ENUMERATE_ERRNO_CODES(E) \ + E(ESUCCESS, "Success (not an error)") \ + E(EPERM, "Operation not permitted") \ + E(ENOENT, "No such file or directory") \ + E(ESRCH, "No such process") \ + E(EINTR, "Interrupted syscall") \ + E(EIO, "I/O error") \ + E(ENXIO, "No such device or address") \ + E(E2BIG, "Argument list too long") \ + E(ENOEXEC, "Exec format error") \ + E(EBADF, "Bad fd number") \ + E(ECHILD, "No child processes") \ + E(EAGAIN, "Try again") \ + E(ENOMEM, "Out of memory") \ + E(EACCES, "Permission denied") \ + E(EFAULT, "Bad address") \ + E(ENOTBLK, "Block device required") \ + E(EBUSY, "Device or resource busy") \ + E(EEXIST, "File already exists") \ + E(EXDEV, "Cross-device link") \ + E(ENODEV, "No such device") \ + E(ENOTDIR, "Not a directory") \ + E(EISDIR, "Is a directory") \ + E(EINVAL, "Invalid argument") \ + E(ENFILE, "File table overflow") \ + E(EMFILE, "Too many open files") \ + E(ENOTTY, "Not a TTY") \ + E(ETXTBSY, "Text file busy") \ + E(EFBIG, "File too large") \ + E(ENOSPC, "No space left on device") \ + E(ESPIPE, "Illegal seek") \ + E(EROFS, "Read-only filesystem") \ + E(EMLINK, "Too many links") \ + E(EPIPE, "Broken pipe") \ + E(ERANGE, "Range error") \ + E(ENAMETOOLONG, "Name too long") \ + E(ELOOP, "Too many symlinks") \ + E(EOVERFLOW, "Overflow") \ + E(EOPNOTSUPP, "Operation not supported") \ + E(ENOSYS, "No such syscall") \ + E(ENOTIMPL, "Not implemented") \ + E(EAFNOSUPPORT, "Address family not supported") \ + E(ENOTSOCK, "Not a socket") \ + E(EADDRINUSE, "Address in use") \ + E(EWHYTHO, "Failed without setting an error code (bug!)") \ + E(ENOTEMPTY, "Directory not empty") \ + E(EDOM, "Math argument out of domain") \ + E(ECONNREFUSED, "Connection refused") \ + E(EHOSTDOWN, "Host is down") \ + E(EADDRNOTAVAIL, "Address not available") \ + E(EISCONN, "Already connected") \ + E(ECONNABORTED, "Connection aborted") \ + E(EALREADY, "Connection already in progress") \ + E(ECONNRESET, "Connection reset") \ + E(EDESTADDRREQ, "Destination address required") \ + E(EHOSTUNREACH, "Host unreachable") \ + E(EILSEQ, "Illegal byte sequence") \ + E(EMSGSIZE, "Message size") \ + E(ENETDOWN, "Network down") \ + E(ENETUNREACH, "Network unreachable") \ + E(ENETRESET, "Network reset") \ + E(ENOBUFS, "No buffer space") \ + E(ENOLCK, "No lock available") \ + E(ENOMSG, "No message") \ + E(ENOPROTOOPT, "No protocol option") \ + E(ENOTCONN, "Not connected") \ + E(ESHUTDOWN, "Transport endpoint has shutdown") \ + E(ETOOMANYREFS, "Too many references") \ + E(ESOCKTNOSUPPORT, "Socket type not supported") \ + E(EPROTONOSUPPORT, "Protocol not supported") \ + E(EDEADLK, "Resource deadlock would occur") \ + E(ETIMEDOUT, "Timed out") \ + E(EPROTOTYPE, "Wrong protocol type") \ + E(EINPROGRESS, "Operation in progress") \ + E(ENOTHREAD, "No such thread") \ + E(EPROTO, "Protocol error") \ + E(ENOTSUP, "Not supported") \ + E(EPFNOSUPPORT, "Protocol family not supported") \ + E(EDIRINTOSELF, "Cannot make directory a subdirectory of itself") \ + E(EDQUOT, "Quota exceeded") \ + E(ENOTRECOVERABLE, "State not recoverable") \ + E(EMAXERRNO, "The highest errno +1 :^)") + +enum ErrnoCode { +#define __ENUMERATE_ERRNO_CODE(c, s) c, + ENUMERATE_ERRNO_CODES(__ENUMERATE_ERRNO_CODE) +#undef __ENUMERATE_ERRNO_CODE +}; |