summaryrefslogtreecommitdiffstats
path: root/private/crt32/misc/syserr.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/misc/syserr.c')
-rw-r--r--private/crt32/misc/syserr.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/private/crt32/misc/syserr.c b/private/crt32/misc/syserr.c
new file mode 100644
index 000000000..ef5ee29ed
--- /dev/null
+++ b/private/crt32/misc/syserr.c
@@ -0,0 +1,85 @@
+/***
+*syserr.c - system error list
+*
+* Copyright (c) 1987-1992, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* Defines the System Error List, containing the full messages for
+* all errno values set by the library routines.
+* Defines sys_errlist, sys_nerr.
+*
+*Revision History:
+* 08-07-87 PHG removed obsolete definition of sys_msgmax.
+* 04-06-90 GJF Added #include <cruntime.h>. Also, fixed the copyright.
+* 01-21-91 GJF ANSI naming.
+* 07-11-91 JCR Changed "core" to "memory" in ENOMEM message
+* 01-23-92 GJF Added #include <stdlib.h> (contains decl of sys_nerr).
+* 09-30-92 GJF Made POSIX compatible. Non-POSIX errno values are
+* mapped to "Unknown error" for now. Next step is to
+* delete these and renumber to eliminate the gaps, after
+* the beta release.
+* 04-08-93 CFW Added EILSEQ (42) message.
+*
+*******************************************************************************/
+
+#include <cruntime.h>
+#include <stdlib.h>
+
+char *_sys_errlist[] =
+{
+ /* 0 */ "No error",
+ /* 1 EPERM */ "Operation not permitted",
+ /* 2 ENOENT */ "No such file or directory",
+ /* 3 ESRCH */ "No such process",
+ /* 4 EINTR */ "Interrupted function call",
+ /* 5 EIO */ "Input/output error",
+ /* 6 ENXIO */ "No such device or address",
+ /* 7 E2BIG */ "Arg list too long",
+ /* 8 ENOEXEC */ "Exec format error",
+ /* 9 EBADF */ "Bad file descriptor",
+ /* 10 ECHILD */ "No child processes",
+ /* 11 EAGAIN */ "Resource temporarily unavailable",
+ /* 12 ENOMEM */ "Not enough space",
+ /* 13 EACCES */ "Permission denied",
+ /* 14 EFAULT */ "Bad address",
+ /* 15 ENOTBLK */ "Unknown error", /* not POSIX */
+ /* 16 EBUSY */ "Resource device",
+ /* 17 EEXIST */ "File exists",
+ /* 18 EXDEV */ "Improper link",
+ /* 19 ENODEV */ "No such device",
+ /* 20 ENOTDIR */ "Not a directory",
+ /* 21 EISDIR */ "Is a directory",
+ /* 22 EINVAL */ "Invalid argument",
+ /* 23 ENFILE */ "Too many open files in system",
+ /* 24 EMFILE */ "Too many open files",
+ /* 25 ENOTTY */ "Inappropriate I/O control operation",
+ /* 26 ETXTBSY */ "Unknown error", /* not POSIX */
+ /* 27 EFBIG */ "File too large",
+ /* 28 ENOSPC */ "No space left on device",
+ /* 29 ESPIPE */ "Invalid seek",
+ /* 30 EROFS */ "Read-only file system",
+ /* 31 EMLINK */ "Too many links",
+ /* 32 EPIPE */ "Broken pipe",
+ /* 33 EDOM */ "Domain error",
+ /* 34 ERANGE */ "Result too large",
+ /* 35 EUCLEAN */ "Unknown error", /* not POSIX */
+ /* 36 EDEADLK */ "Resource deadlock avoided",
+ /* 37 UNKNOWN */ "Unknown error",
+ /* 38 ENAMETOOLONG */ "Filename too long",
+ /* 39 ENOLCK */ "No locks available",
+ /* 40 ENOSYS */ "Function not implemented",
+ /* 41 ENOTEMPTY */ "Directory not empty",
+ /* 42 EILSEQ */ "Illegal byte sequence",
+ /* 43 */ "Unknown error"
+
+};
+
+int _sys_nerr = sizeof( _sys_errlist ) / sizeof( _sys_errlist[ 0 ] ) - 1;
+
+/* The above array contains all the errors including unknown error # 37
+ which is used if msg_num is unknown */
+
+
+/* ***NOTE: Parameter _SYS_MSGMAX (in file syserr.h) indicates the length of
+ the longest systerm error message in the above table. When you add or
+ modify a message, you must update the value _SYS_MSGMAX, if appropriate. */