home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet MPEG Audio Archive
/
IMAA.mdf
/
util
/
dos
/
l3v100n
/
rsx
/
source
/
doserrno.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-01-19
|
7KB
|
159 lines
#include "DOSERRNO.H"
#define N_DOS_ERRORS 0x5A
#define EMX_RESERVED EMX_EIO
static unsigned char dos_errors[N_DOS_ERRORS + 1] =
{
0, /* 0x00 no error */
EMX_EINVAL, /* 0x01 function number invalid */
EMX_ENOENT, /* 0x02 file not found */
EMX_ENOENT, /* 0x03 path not found */
EMX_EMFILE, /* 0x04 too many open files */
EMX_EACCES, /* 0x05 access denied */
EMX_EBADF, /* 0x06 invalid handle */
EMX_EIO, /* 0x07 memory control block destroyed */
EMX_ENOMEM, /* 0x08 insufficient memory */
EMX_EIO, /* 0x09 memory block address invalid */
EMX_EINVAL, /* 0x0A environment invalid */
EMX_ENOEXEC, /* 0x0B format invalid */
EMX_EINVAL, /* 0x0C access code invalid */
EMX_EINVAL, /* 0x0D data invalid */
EMX_RESERVED, /* 0x0E reserved */
EMX_EACCES, /* 0x0F invalid drive */
EMX_EACCES, /* 0x10 attempted to remove current directory */
EMX_EXDEV, /* 0x11 not same device */
EMX_ENOENT, /* 0x12 no more files */
EMX_EIO, /* 0x13 disk write-protected */
EMX_EIO, /* 0x14 unknown unit */
EMX_EIO, /* 0x15 drive not ready */
EMX_EIO, /* 0x16 unknown command */
EMX_EIO, /* 0x17 data error */
EMX_EIO, /* 0x18 bad request structure length */
EMX_EIO, /* 0x19 seek error */
EMX_EIO, /* 0x1A unknown media type */
EMX_EIO, /* 0x1B sector not found */
EMX_ENOSPC, /* 0x1C printer out of paper */
EMX_EIO, /* 0x1D write fault */
EMX_EIO, /* 0x1E read fault */
EMX_EIO, /* 0x1F general failure */
EMX_EACCES, /* 0x20 sharing violation */
EMX_EACCES, /* 0x21 lock violation */
EMX_EIO, /* 0x22 disk change invalid */
EMX_EIO, /* 0x23 FCB unavailable */
EMX_EIO, /* 0x24 sharing buffer overflow */
EMX_EIO, /* 0x25 code page mismatch */
EMX_EIO, /* 0x26 cannot complete file operation */
EMX_ENOSPC, /* 0x27 insufficient disk space */
EMX_RESERVED, /* 0x28 reserved */
EMX_RESERVED, /* 0x29 reserved */
EMX_RESERVED, /* 0x2A reserved */
EMX_RESERVED, /* 0x2B reserved */
EMX_RESERVED, /* 0x2C reserved */
EMX_RESERVED, /* 0x2D reserved */
EMX_RESERVED, /* 0x2E reserved */
EMX_RESERVED, /* 0x2F reserved */
EMX_RESERVED, /* 0x30 reserved */
EMX_RESERVED, /* 0x31 reserved */
EMX_EIO, /* 0x32 network request not supported */
EMX_EIO, /* 0x33 remote computer not listening */
EMX_EIO, /* 0x34 duplicate name on network */
EMX_EIO, /* 0x35 network name not found */
EMX_EIO, /* 0x36 network busy */
EMX_EIO, /* 0x37 network device no longer exists */
EMX_EIO, /* 0x38 network BIOS command limit exceeded */
EMX_EIO, /* 0x39 network adapter hardware error */
EMX_EIO, /* 0x3A incorrect response from network */
EMX_EIO, /* 0x3B unexpected network error */
EMX_EIO, /* 0x3C incompatible remote adapter */
EMX_ENOSPC, /* 0x3D print queue full */
EMX_ENOSPC, /* 0x3E queue not full */
EMX_EIO, /* 0x3F not enough space to print file */
EMX_EIO, /* 0x40 network name was deleted */
EMX_EACCES, /* 0x41 network: Access denied */
EMX_EIO, /* 0x42 network device type incorrect */
EMX_EIO, /* 0x43 network name not found */
EMX_EIO, /* 0x44 network name limit exceeded */
EMX_EIO, /* 0x45 network BIOS session limit exceeded */
EMX_EIO, /* 0x46 temporarily paused */
EMX_EIO, /* 0x47 network request not accepted */
EMX_EIO, /* 0x48 network print/disk redirection paused */
EMX_EACCES, /* 0x49 invalid network version */
EMX_EIO, /* 0x4A account expired */
EMX_EIO, /* 0x4B password expired */
EMX_EIO, /* 0x4C login attempt invalid at this time */
EMX_EIO, /* 0x4D disk limit exceeded on network node */
EMX_EIO, /* 0x4E not logged in to network node */
EMX_RESERVED, /* 0x4F reserved */
EMX_EEXIST, /* 0x50 file exists */
EMX_RESERVED, /* 0x51 reserved */
EMX_ENOENT, /* 0x52 cannot make directory */
EMX_EIO, /* 0x53 fail on INT 24h */
EMX_EIO, /* 0x54 too many redirections */
EMX_EIO, /* 0x55 duplicate redirection */
EMX_EIO, /* 0x56 invalid password */
EMX_EINVAL, /* 0x57 invalid parameter */
EMX_EIO, /* 0x58 network write fault */
EMX_EIO, /* 0x59 function not supported on network */
EMX_EIO /* 0x5A required system component not installed */
};
static unsigned char emx2djgpp[] =
{
0,
5, /* 1 EPERM Operation not permitted */
2, /* 2 ENOENT No such file or directory */
19, /* 3 ESRCH No such process */
100, /* 4 EINTR Interrupted system call */
101, /* 5 EIO I/O error */
101,
10, /* 7 E2BIG Arguments or environment too big */
21, /* 8 ENOEXEC Invalid executable file format */
6, /* 9 EBADF Bad file number */
200, /* 10 ECHILD No child processes */
103, /* 11 EAGAIN No more processes */
8, /* 12 ENOMEM Not enough memory */
5, /* 13 EACCES Permission denied */
101,
101,
101,
36, /* 17 EEXIST File exists */
17, /* 18 EXDEV Cross-device link */
101,
3, /* 20 ENOTDIR Not a directory */
19, /* 21 EISDIR Is a directory */
19, /* 22 EINVAL Invalid argument */
101,
4, /* 24 EMFILE Too many open files */
101,
101,
101,
102, /* 28 ENOSPC Disk full */
19, /* 29 ESPIPE Illegal seek */
5, /* 30 EROFS Read-only file system */
101,
32, /* 32 EPIPE Broken pipe */
33, /* 33 EDOM Domain error */
34, /* 34 ERANGE Result too large */
101,
101,
5, /* 37 EMSDOS Not supported under MS-DOS */
19 /* 38 ENAMETOOLONG File name too long */
} ;
unsigned int doserror_to_errno(int error_dos)
{
if (error_dos >= N_DOS_ERRORS)
return EMX_EIO;
else
return (unsigned) dos_errors[error_dos];
}
unsigned int errno_djgpp(int emx_errno)
{
if (emx_errno > 38)
emx_errno = EMX_EIO;
return (unsigned) emx2djgpp[emx_errno];
}