00001
00002
00003 #ifndef doserrmap_h
00004 #define doserrmap_h
00005
00006 struct {
00007 unsigned long winerr;
00008 int en;
00009 } doserrmap[] = {
00010 { ERROR_FILE_NOT_FOUND, ENOENT },
00011 { ERROR_PATH_NOT_FOUND, ENOENT },
00012 { ERROR_TOO_MANY_OPEN_FILES, EMFILE },
00013 { ERROR_ACCESS_DENIED, EACCES },
00014 { ERROR_INVALID_HANDLE, EBADF },
00015 { ERROR_ARENA_TRASHED, ENOMEM },
00016 { ERROR_NOT_ENOUGH_MEMORY, ENOMEM },
00017 { ERROR_INVALID_BLOCK, ENOMEM },
00018 { ERROR_BAD_ENVIRONMENT, E2BIG },
00019 { ERROR_BAD_FORMAT, ENOEXEC },
00020 { ERROR_INVALID_DRIVE, ENOENT },
00021 { ERROR_CURRENT_DIRECTORY, EACCES },
00022 { ERROR_NOT_SAME_DEVICE, EXDEV },
00023 { ERROR_NO_MORE_FILES, ENOENT },
00024 { ERROR_WRITE_PROTECT, EACCES },
00025 { ERROR_BAD_UNIT, EACCES },
00026 { ERROR_NOT_READY, EACCES },
00027 { ERROR_BAD_COMMAND, EACCES },
00028 { ERROR_CRC, EACCES },
00029 { ERROR_BAD_LENGTH, EACCES },
00030 { ERROR_SEEK, EACCES },
00031 { ERROR_NOT_DOS_DISK, EACCES },
00032 { ERROR_SECTOR_NOT_FOUND, EACCES },
00033 { ERROR_OUT_OF_PAPER, EACCES },
00034 { ERROR_WRITE_FAULT, EACCES },
00035 { ERROR_READ_FAULT, EACCES },
00036 { ERROR_GEN_FAILURE, EACCES },
00037 { ERROR_SHARING_VIOLATION, EACCES },
00038 { ERROR_LOCK_VIOLATION, EACCES },
00039 { ERROR_WRONG_DISK, EACCES },
00040 { ERROR_SHARING_BUFFER_EXCEEDED, EACCES },
00041 { ERROR_BAD_NETPATH, ENOENT },
00042 { ERROR_NETWORK_ACCESS_DENIED, EACCES },
00043 { ERROR_BAD_NET_NAME, ENOENT },
00044 { ERROR_FILE_EXISTS, EEXIST },
00045 { ERROR_CANNOT_MAKE, EACCES },
00046 { ERROR_FAIL_I24, EACCES },
00047 { ERROR_NO_PROC_SLOTS, EAGAIN },
00048 { ERROR_DRIVE_LOCKED, EACCES },
00049 { ERROR_BROKEN_PIPE, EPIPE },
00050 { ERROR_DISK_FULL, ENOSPC },
00051 { ERROR_INVALID_TARGET_HANDLE, EBADF },
00052 { ERROR_WAIT_NO_CHILDREN, ECHILD },
00053 { ERROR_CHILD_NOT_COMPLETE, ECHILD },
00054 { ERROR_DIRECT_ACCESS_HANDLE, EBADF },
00055 { ERROR_SEEK_ON_DEVICE, EACCES },
00056 { ERROR_DIR_NOT_EMPTY, ENOTEMPTY },
00057 { ERROR_NOT_LOCKED, EACCES },
00058 { ERROR_BAD_PATHNAME, ENOENT },
00059 { ERROR_MAX_THRDS_REACHED, EAGAIN },
00060 { ERROR_LOCK_FAILED, EACCES },
00061 { ERROR_ALREADY_EXISTS, EEXIST },
00062 { ERROR_INVALID_STARTING_CODESEG, ENOEXEC },
00063 { ERROR_INVALID_STACKSEG, ENOEXEC },
00064 { ERROR_INVALID_MODULETYPE, ENOEXEC },
00065 { ERROR_INVALID_EXE_SIGNATURE, ENOEXEC },
00066 { ERROR_EXE_MARKED_INVALID, ENOEXEC },
00067 { ERROR_BAD_EXE_FORMAT, ENOEXEC },
00068 { ERROR_ITERATED_DATA_EXCEEDS_64k, ENOEXEC },
00069 { ERROR_INVALID_MINALLOCSIZE, ENOEXEC },
00070 { ERROR_DYNLINK_FROM_INVALID_RING, ENOEXEC },
00071 { ERROR_IOPL_NOT_ENABLED, ENOEXEC },
00072 { ERROR_INVALID_SEGDPL, ENOEXEC },
00073 { ERROR_AUTODATASEG_EXCEEDS_64k, ENOEXEC },
00074 { ERROR_RING2SEG_MUST_BE_MOVABLE, ENOEXEC },
00075 { ERROR_RELOC_CHAIN_XEEDS_SEGLIM, ENOEXEC },
00076 { ERROR_INFLOOP_IN_RELOC_CHAIN, ENOEXEC },
00077 { ERROR_FILENAME_EXCED_RANGE, ENOENT },
00078 { ERROR_NESTING_NOT_ALLOWED, EAGAIN },
00079 { ERROR_NOT_ENOUGH_QUOTA, ENOMEM }
00080 };
00081
00082 #endif