From 5ea73197addc3032f95c79f33fcfbc0fa10659d9 Mon Sep 17 00:00:00 2001 From: apio Date: Fri, 11 Aug 2023 17:59:41 +0200 Subject: [PATCH] libluna: Add a bunch more errno definitions --- libluna/include/luna/SystemError.h | 128 +++++++++++++++-------------- libluna/src/SystemError.cpp | 16 ++++ 2 files changed, 84 insertions(+), 60 deletions(-) diff --git a/libluna/include/luna/SystemError.h b/libluna/include/luna/SystemError.h index 1571a839..536708e5 100644 --- a/libluna/include/luna/SystemError.h +++ b/libluna/include/luna/SystemError.h @@ -1,62 +1,70 @@ #pragma once -#define EPERM 1 // Operation not permitted -#define ENOENT 2 // No such file or directory -#define ESRCH 3 // No such process -#define EINTR 4 // Interrupted system call -#define EIO 5 // Input/output error -#define ENXIO 6 // No such device or address -#define E2BIG 7 // Argument list too long -#define ENOEXEC 8 // Exec format error -#define EBADF 9 // Bad file descriptor -#define ECHILD 10 // No child processes -#define EAGAIN 11 // Resource temporarily unavailable -#define EWOULDBLOCK 11 // Resource temporarily unavailable -#define ENOMEM 12 // Cannot allocate memory -#define EACCES 13 // Permission denied -#define EFAULT 14 // Bad address -#define ENOTBLK 15 // Block device required -#define EBUSY 16 // Device or resource busy -#define EEXIST 17 // File exists -#define EXDEV 18 // Invalid cross-device link -#define ENODEV 19 // No such device -#define ENOTDIR 20 // Not a directory -#define EISDIR 21 // Is a directory -#define EINVAL 22 // Invalid argument -#define ENFILE 23 // Too many open files in system -#define EMFILE 24 // Too many open files -#define ENOTTY 25 // Inappropriate ioctl for device -#define ETXTBSY 26 // Text file busy -#define EFBIG 27 // File too large -#define ENOSPC 28 // No space left on device -#define ESPIPE 29 // Illegal seek -#define EROFS 30 // Read-only file system -#define EMLINK 31 // Too many links -#define EPIPE 32 // Broken pipe -#define EDOM 33 // Numerical argument out of domain -#define ERANGE 34 // Numerical result out of range -#define EDEADLK 35 // Resource deadlock avoided -#define ENAMETOOLONG 36 // File name too long -#define ENOLCK 37 // No locks available -#define ENOSYS 38 // Function not implemented -#define ENOTEMPTY 39 // Directory not empty -#define ELOOP 40 // Too many levels of symbolic links -#define ENOMSG 42 // No message of desired type -#define EOVERFLOW 75 // Value too large for defined data type -#define EILSEQ 84 // Invalid or incomplete multibyte or wide character -#define ENOTSOCK 88 // Socket operation on non-socket -#define EDESTADDRREQ 89 // Destination address required -#define EPROTOTYPE 91 // Protocol wrong type for socket -#define ENOTSUP 95 // Operation not supported -#define EOPNOTSUPP 95 // Operation not supported -#define EAFNOSUPPORT 97 // Address family not supported by protocol -#define EADDRINUSE 98 // Address already in use -#define EADDRNOTAVAIL 99 // Cannot assign requested address -#define ENETRESET 102 // Network dropped connection on reset -#define ECONNRESET 104 // Connection reset by peer -#define EISCONN 106 // Transport endpoint is already connected -#define ENOTCONN 107 // Transport endpoint is not connected -#define ETIMEDOUT 110 // Connection timed out -#define ECONNREFUSED 111 // Connection refused -#define EALREADY 114 // Operation already in progress -#define EINPROGRESS 115 // Operation now in progress +#define EPERM 1 // Operation not permitted +#define ENOENT 2 // No such file or directory +#define ESRCH 3 // No such process +#define EINTR 4 // Interrupted system call +#define EIO 5 // Input/output error +#define ENXIO 6 // No such device or address +#define E2BIG 7 // Argument list too long +#define ENOEXEC 8 // Exec format error +#define EBADF 9 // Bad file descriptor +#define ECHILD 10 // No child processes +#define EAGAIN 11 // Resource temporarily unavailable +#define EWOULDBLOCK 11 // Resource temporarily unavailable +#define ENOMEM 12 // Cannot allocate memory +#define EACCES 13 // Permission denied +#define EFAULT 14 // Bad address +#define ENOTBLK 15 // Block device required +#define EBUSY 16 // Device or resource busy +#define EEXIST 17 // File exists +#define EXDEV 18 // Invalid cross-device link +#define ENODEV 19 // No such device +#define ENOTDIR 20 // Not a directory +#define EISDIR 21 // Is a directory +#define EINVAL 22 // Invalid argument +#define ENFILE 23 // Too many open files in system +#define EMFILE 24 // Too many open files +#define ENOTTY 25 // Inappropriate ioctl for device +#define ETXTBSY 26 // Text file busy +#define EFBIG 27 // File too large +#define ENOSPC 28 // No space left on device +#define ESPIPE 29 // Illegal seek +#define EROFS 30 // Read-only file system +#define EMLINK 31 // Too many links +#define EPIPE 32 // Broken pipe +#define EDOM 33 // Numerical argument out of domain +#define ERANGE 34 // Numerical result out of range +#define EDEADLK 35 // Resource deadlock avoided +#define ENAMETOOLONG 36 // File name too long +#define ENOLCK 37 // No locks available +#define ENOSYS 38 // Function not implemented +#define ENOTEMPTY 39 // Directory not empty +#define ELOOP 40 // Too many levels of symbolic links +#define ENOMSG 42 // No message of desired type +#define EOVERFLOW 75 // Value too large for defined data type +#define EILSEQ 84 // Invalid or incomplete multibyte or wide character +#define ENOTSOCK 88 // Socket operation on non-socket +#define EDESTADDRREQ 89 // Destination address required +#define EMSGSIZE 90 // Message too long +#define EPROTOTYPE 91 // Protocol wrong type for socket +#define ENOPROTOOPT 92 // Protocol not available +#define EPROTONOSUPPORT 93 // Protocol not supported +#define ENOTSUP 95 // Operation not supported +#define EOPNOTSUPP 95 // Operation not supported +#define EAFNOSUPPORT 97 // Address family not supported by protocol +#define EADDRINUSE 98 // Address already in use +#define EADDRNOTAVAIL 99 // Cannot assign requested address +#define ENETDOWN 100 // Network is down +#define ENETUNREACH 101 // Network is unreachable +#define ENETRESET 102 // Network dropped connection on reset +#define ECONNABORTED 103 // Software caused connection abort +#define ECONNRESET 104 // Connection reset by peer +#define ENOBUFS 105 // No buffer space available +#define EISCONN 106 // Transport endpoint is already connected +#define ENOTCONN 107 // Transport endpoint is not connected +#define ETIMEDOUT 110 // Connection timed out +#define ECONNREFUSED 111 // Connection refused +#define EHOSTUNREACH 113 // No route to host +#define EALREADY 114 // Operation already in progress +#define EINPROGRESS 115 // Operation now in progress diff --git a/libluna/src/SystemError.cpp b/libluna/src/SystemError.cpp index 3e669f54..29051c1d 100644 --- a/libluna/src/SystemError.cpp +++ b/libluna/src/SystemError.cpp @@ -63,6 +63,14 @@ const char* error_string(int error) case EADDRNOTAVAIL: return "Cannot assign requested address"; case ECONNREFUSED: return "Connection refused"; case EINPROGRESS: return "Operation now in progress"; + case ECONNABORTED: return "Software caused connection abort"; + case EHOSTUNREACH: return "No route to host"; + case EMSGSIZE: return "Message too long"; + case ENETDOWN: return "Network is down"; + case ENETUNREACH: return "Network is unreachable"; + case ENOBUFS: return "No buffer space available"; + case ENOPROTOOPT: return "Protocol not available"; + case EPROTONOSUPPORT: return "Protocol not supported"; default: return "Unknown error"; } } @@ -132,6 +140,14 @@ const char* error_name(int error) ERROR(EADDRNOTAVAIL); ERROR(ECONNREFUSED); ERROR(EINPROGRESS); + ERROR(ECONNABORTED); + ERROR(EHOSTUNREACH); + ERROR(EMSGSIZE); + ERROR(ENETDOWN); + ERROR(ENETUNREACH); + ERROR(ENOBUFS); + ERROR(ENOPROTOOPT); + ERROR(EPROTONOSUPPORT); default: return nullptr; }