diff options
Diffstat (limited to 'private/crt32/misc/syserr.c')
-rw-r--r-- | private/crt32/misc/syserr.c | 85 |
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. */ |