Add a SystemError module for errno values :)
This commit is contained in:
parent
fe47e0d5cb
commit
fc0779a2f9
@ -3,6 +3,7 @@ set(FREESTANDING_SOURCES
|
||||
NumberParsing.cpp
|
||||
String.cpp
|
||||
Units.cpp
|
||||
SystemError.cpp
|
||||
)
|
||||
|
||||
set(SOURCES
|
||||
|
60
luna/SystemError.cpp
Normal file
60
luna/SystemError.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
#include <SystemError.h>
|
||||
|
||||
const char* error_string(int error)
|
||||
{
|
||||
switch (error)
|
||||
{
|
||||
case 0: return "Success (not an error)";
|
||||
case EPERM: return "Operation not permitted";
|
||||
case ENOENT: return "No such file or directory";
|
||||
case ESRCH: return "No such process";
|
||||
case EINTR: return "Interrupted system call";
|
||||
case EIO: return "Input/output error";
|
||||
case ENXIO: return "No such device or address";
|
||||
case E2BIG: return "Argument list too long";
|
||||
case ENOEXEC: return "Exec format error";
|
||||
case EBADF: return "Bad file descriptor";
|
||||
case ECHILD: return "No child processes";
|
||||
case EAGAIN: return "Resource temporarily unavailable";
|
||||
case ENOMEM: return "Cannot allocate memory";
|
||||
case EACCES: return "Permission denied";
|
||||
case EFAULT: return "Bad address";
|
||||
case EBUSY: return "Device or resource busy";
|
||||
case EEXIST: return "File exists";
|
||||
case EXDEV: return "Invalid cross-device link";
|
||||
case ENODEV: return "No such device";
|
||||
case ENOTDIR: return "Not a directory";
|
||||
case EISDIR: return "Is a directory";
|
||||
case EINVAL: return "Invalid argument";
|
||||
case ENFILE: return "Too many open files in system";
|
||||
case EMFILE: return "Too many open files";
|
||||
case ENOTTY: return "Inappropriate ioctl for device";
|
||||
case EFBIG: return "File too large";
|
||||
case ENOSPC: return "No space left on device";
|
||||
case ESPIPE: return "Illegal seek";
|
||||
case EROFS: return "Read-only file system";
|
||||
case EMLINK: return "Too many links";
|
||||
case EPIPE: return "Broken pipe";
|
||||
case EDOM: return "Numerical argument out of domain";
|
||||
case ERANGE: return "Numerical result out of range";
|
||||
case EDEADLK: return "Resource deadlock avoided";
|
||||
case ENAMETOOLONG: return "File name too long";
|
||||
case ENOLCK: return "No locks available";
|
||||
case ENOSYS: return "Function not implemented";
|
||||
case ENOTEMPTY: return "Directory not empty";
|
||||
case ELOOP: return "Too many levels of symbolic links";
|
||||
case ENOMSG: return "No message of desired type";
|
||||
case EOVERFLOW: return "Value too large for defined data type";
|
||||
case EILSEQ: return "Invalid or incomplete multibyte or wide character";
|
||||
case ENOTSOCK: return "Socket operation on non-socket";
|
||||
case ENOTSUP: return "Operation not supported";
|
||||
case EADDRINUSE: return "Address already in use";
|
||||
case ENETRESET: return "Network dropped connection on reset";
|
||||
case ECONNRESET: return "Connection reset by peer";
|
||||
case EISCONN: return "Transport endpoint is already connected";
|
||||
case ETIMEDOUT: return "Connection timed out";
|
||||
case EALREADY: return "Operation already in progress";
|
||||
case EFIXME: return "Functionality not yet implemented";
|
||||
default: return "Unknown error";
|
||||
}
|
||||
}
|
58
luna/SystemError.h
Normal file
58
luna/SystemError.h
Normal file
@ -0,0 +1,58 @@
|
||||
#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 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 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 ENOTSUP 95 // Operation not supported
|
||||
#define EOPNOTSUPP 95 // Operation not supported
|
||||
#define EADDRINUSE 98 // Address already in use
|
||||
#define ENETRESET 102 // Network dropped connection on reset
|
||||
#define ECONNRESET 104 // Connection reset by peer
|
||||
#define EISCONN 106 // Transport endpoint is already connected
|
||||
#define ETIMEDOUT 110 // Connection timed out
|
||||
#define EALREADY 114 // Operation already in progress
|
||||
|
||||
// This one is Luna-specific.
|
||||
#define EFIXME 342 // Functionality not yet implemented
|
||||
|
||||
const char* error_string(int error);
|
Loading…
Reference in New Issue
Block a user