diff options
Diffstat (limited to 'libc/string')
-rw-r--r-- | libc/string/Makefile | 2 | ||||
-rw-r--r-- | libc/string/strsignal.c | 11 | ||||
-rw-r--r-- | libc/string/sys_errlist.c | 140 |
3 files changed, 147 insertions, 6 deletions
diff --git a/libc/string/Makefile b/libc/string/Makefile index 39d9f0b5d..107b787ef 100644 --- a/libc/string/Makefile +++ b/libc/string/Makefile @@ -34,7 +34,7 @@ MOBJ1=index.o rindex.o CSRC=strpbrk.c strsep.c strstr.c strtok.c strcspn.c config.c strspn.c \ strcasecmp.c strncasecmp.c strerror.c bcopy.c bzero.c bcmp.c \ - strsignal.c + strsignal.c sys_errlist.c COBJS=$(patsubst %.c,%.o, $(CSRC)) OBJS=$(MOBJ) $(MOBJ1) $(COBJS) diff --git a/libc/string/strsignal.c b/libc/string/strsignal.c index ff4f69923..83a862bfb 100644 --- a/libc/string/strsignal.c +++ b/libc/string/strsignal.c @@ -8,7 +8,7 @@ #include <malloc.h> #include <signal.h> -const char *const sys_siglist[NSIG] = { +const char *const sys_siglist[] = { "Unknown signal", "Hangup", "Interrupt", @@ -32,20 +32,21 @@ const char *const sys_siglist[NSIG] = { "Stopped", "Stopped (tty input)", "Stopped (tty output)", - "Possible I/O", + "Urgent condition", "CPU time limit exceeded", "File size limit exceeded", "Virtual time alarm", "Profile signal", "Window size changed", - "File lock lost", + "Possible I/O", "Power failure", - "Unused signal" + "Unused signal", + NULL }; /********************** Function strsignal ************************************/ -char *strsignal (int sig) +char *strsignal(int sig) { static char retbuf[80]; diff --git a/libc/string/sys_errlist.c b/libc/string/sys_errlist.c new file mode 100644 index 000000000..c92302fce --- /dev/null +++ b/libc/string/sys_errlist.c @@ -0,0 +1,140 @@ +#include <stddef.h> +#if 0 +#include <errno.h> +#endif + +/* This is a list of all known signal numbers. */ + +const char * const sys_errlist[] = { + "Success", /* 0 */ + "Operation not permitted", /* EPERM */ + "No such file or directory", /* ENOENT */ + "No such process", /* ESRCH */ + "Interrupted system call", /* EINTR */ + "I/O error", /* EIO */ + "No such device or address", /* ENXIO */ + "Arg list too long", /* E2BIG */ + "Exec format error", /* ENOEXEC */ + "Bad file number", /* EBADF */ + "No child processes", /* ECHILD */ + "Try again", /* EAGAIN */ + "Out of memory", /* ENOMEM */ + "Permission denied", /* EACCES */ + "Bad address", /* EFAULT */ + "Block device required", /* ENOTBLK */ + "Device or resource busy", /* EBUSY */ + "File exists", /* EEXIST */ + "Cross-device link", /* EXDEV */ + "No such device", /* ENODEV */ + "Not a directory", /* ENOTDIR */ + "Is a directory", /* EISDIR */ + "Invalid argument", /* EINVAL */ + "File table overflow", /* ENFILE */ + "Too many open files", /* EMFILE */ + "Not a typewriter", /* ENOTTY */ + "Text file busy", /* ETXTBSY */ + "File too large", /* EFBIG */ + "No space left on device", /* ENOSPC */ + "Illegal seek", /* ESPIPE */ + "Read-only file system", /* EROFS */ + "Too many links", /* EMLINK */ + "Broken pipe", /* EPIPE */ + "Math argument out of domain of func", /* EDOM */ + "Math result not representable", /* ERANGE */ + "Resource deadlock would occur", /* EDEADLK */ + "File name too long", /* ENAMETOOLONG */ + "No record locks available", /* ENOLCK */ + "Function not implemented", /* ENOSYS */ + "Directory not empty", /* ENOTEMPTY */ + "Too many symbolic links encountered", /* ELOOP */ + "Operation would block", /* EWOULDBLOCK */ + "No message of desired type", /* ENOMSG */ + "Identifier removed", /* EIDRM */ + "Channel number out of range", /* ECHRNG */ + "Level 2 not synchronized", /* EL2NSYNC */ + "Level 3 halted", /* EL3HLT */ + "Level 3 reset", /* EL3RST */ + "Link number out of range", /* ELNRNG */ + "Protocol driver not attached", /* EUNATCH */ + "No CSI structure available", /* ENOCSI */ + "Level 2 halted", /* EL2HLT */ + "Invalid exchange", /* EBADE */ + "Invalid request descriptor", /* EBADR */ + "Exchange full", /* EXFULL */ + "No anode", /* ENOANO */ + "Invalid request code", /* EBADRQC */ + "Invalid slot", /* EBADSLT */ + "File locking deadlock error", /* EDEADLOCK */ + "Bad font file format", /* EBFONT */ + "Device not a stream", /* ENOSTR */ + "No data available", /* ENODATA */ + "Timer expired", /* ETIME */ + "Out of streams resources", /* ENOSR */ + "Machine is not on the network", /* ENONET */ + "Package not installed", /* ENOPKG */ + "Object is remote", /* EREMOTE */ + "Link has been severed", /* ENOLINK */ + "Advertise error", /* EADV */ + "Srmount error", /* ESRMNT */ + "Communication error on send", /* ECOMM */ + "Protocol error", /* EPROTO */ + "Multihop attempted", /* EMULTIHOP */ + "RFS specific error", /* EDOTDOT */ + "Not a data message", /* EBADMSG */ + "Value too large for defined data type", /* EOVERFLOW */ + "Name not unique on network", /* ENOTUNIQ */ + "File descriptor in bad state", /* EBADFD */ + "Remote address changed", /* EREMCHG */ + "Can not access a needed shared library", /* ELIBACC */ + "Accessing a corrupted shared library", /* ELIBBAD */ + ".lib section in a.out corrupted", /* ELIBSCN */ + "Attempting to link in too many shared libraries", /* ELIBMAX */ + "Cannot exec a shared library directly", /* ELIBEXEC */ + "Illegal byte sequence", /* EILSEQ */ + "Interrupted system call should be restarted", /* ERESTART */ + "Streams pipe error", /* ESTRPIPE */ + "Too many users", /* EUSERS */ + "Socket operation on non-socket", /* ENOTSOCK */ + "Destination address required", /* EDESTADDRREQ */ + "Message too long", /* EMSGSIZE */ + "Protocol wrong type for socket", /* EPROTOTYPE */ + "Protocol not available", /* ENOPROTOOPT */ + "Protocol not supported", /* EPROTONOSUPPORT */ + "Socket type not supported", /* ESOCKTNOSUPPORT */ + "Operation not supported on transport endpoint", /* EOPNOTSUPP */ + "Protocol family not supported", /* EPFNOSUPPORT */ + "Address family not supported by protocol", /* EAFNOSUPPORT */ + "Address already in use", /* EADDRINUSE */ + "Cannot assign requested address", /* EADDRNOTAVAIL */ + "Network is down", /* ENETDOWN */ + "Network is unreachable", /* ENETUNREACH */ + "Network dropped connection because of reset", /* ENETRESET */ + "Software caused connection abort", /* ECONNABORTED */ + "Connection reset by peer", /* ECONNRESET */ + "No buffer space available", /* ENOBUFS */ + "Transport endpoint is already connected", /* EISCONN */ + "Transport endpoint is not connected", /* ENOTCONN */ + "Cannot send after transport endpoint shutdown", /* ESHUTDOWN */ + "Too many references: cannot splice", /* ETOOMANYREFS */ + "Connection timed out", /* ETIMEDOUT */ + "Connection refused", /* ECONNREFUSED */ + "Host is down", /* EHOSTDOWN */ + "No route to host", /* EHOSTUNREACH */ + "Operation already in progress", /* EALREADY */ + "Operation now in progress", /* EINPROGRESS */ + "Stale NFS file handle", /* ESTALE */ + "Structure needs cleaning", /* EUCLEAN */ + "Not a XENIX named type file", /* ENOTNAM */ + "No XENIX semaphores available", /* ENAVAIL */ + "Is a named type file", /* EISNAM */ + "Remote I/O error", /* EREMOTEIO */ + "Quota exceeded", /* EDQUOT */ + "No medium found", /* ENOMEDIUM */ + "Wrong medium type", /* EMEDIUMTYPE */ + NULL +}; + + +#define NR_ERRORS ((sizeof (sys_errlist))/(sizeof(char *))-1) + +const int sys_nerr = NR_ERRORS; |