* errno.cc (errmap): Map ERROR_INVALID_ADDRESS to new errno code
EOVERFLOW. (_sys_errlist): Add entries for EILSEQ and EOVERFLOW. (strerror): Ditto. * mmap.cc (map_map): Set errno in case of error. (mmap64): Remove setting errno explicitely to ENOMEM.
This commit is contained in:
parent
06f1353ae8
commit
f4b098d95e
|
@ -1,3 +1,12 @@
|
||||||
|
2002-09-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* errno.cc (errmap): Map ERROR_INVALID_ADDRESS to new errno code
|
||||||
|
EOVERFLOW.
|
||||||
|
(_sys_errlist): Add entries for EILSEQ and EOVERFLOW.
|
||||||
|
(strerror): Ditto.
|
||||||
|
* mmap.cc (map_map): Set errno in case of error.
|
||||||
|
(mmap64): Remove setting errno explicitely to ENOMEM.
|
||||||
|
|
||||||
2002-09-24 Corinna Vinschen <corinna@vinschen.de>
|
2002-09-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* mmap.cc (map_map): Add debug output.
|
* mmap.cc (map_map): Add debug output.
|
||||||
|
|
|
@ -112,6 +112,7 @@ errmap[] =
|
||||||
X (DISK_FULL, ENOSPC),
|
X (DISK_FULL, ENOSPC),
|
||||||
X (NOACCESS, EFAULT),
|
X (NOACCESS, EFAULT),
|
||||||
X (FILE_INVALID, ENXIO),
|
X (FILE_INVALID, ENXIO),
|
||||||
|
X (INVALID_ADDRESS, EOVERFLOW),
|
||||||
{ 0, NULL, 0}
|
{ 0, NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -290,6 +291,8 @@ const NO_COPY char __declspec(dllexport) * const _sys_errlist[]=
|
||||||
/* ENOMEDIUM 135 */ "no medium",
|
/* ENOMEDIUM 135 */ "no medium",
|
||||||
/* ENOSHARE 136 */ "No such host or network path",
|
/* ENOSHARE 136 */ "No such host or network path",
|
||||||
/* ECASECLASH 137 */ "Filename exists with different case"
|
/* ECASECLASH 137 */ "Filename exists with different case"
|
||||||
|
/* EILSEQ 138 */ "Illegal byte sequence"
|
||||||
|
/* EOVERFLOW 139 */ "Value too large for defined data type"
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int const NO_COPY __declspec(dllexport) _sys_nerr = sizeof (_sys_errlist) / sizeof (_sys_errlist[0]);
|
extern int const NO_COPY __declspec(dllexport) _sys_nerr = sizeof (_sys_errlist) / sizeof (_sys_errlist[0]);
|
||||||
|
@ -671,6 +674,12 @@ strerror (int errnum)
|
||||||
case ECASECLASH:
|
case ECASECLASH:
|
||||||
error = "Filename exists with different case";
|
error = "Filename exists with different case";
|
||||||
break;
|
break;
|
||||||
|
case EILSEQ:
|
||||||
|
error = "Illegal byte sequence";
|
||||||
|
break;
|
||||||
|
case EOVERFLOW:
|
||||||
|
error = "Value too large for defined data type";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
#ifdef _MT_SAFE
|
#ifdef _MT_SAFE
|
||||||
char *buf= _reent_winsup ()->_strerror_buf;
|
char *buf= _reent_winsup ()->_strerror_buf;
|
||||||
|
|
|
@ -151,7 +151,7 @@ mmap_record::map_map (__off64_t off, DWORD len)
|
||||||
&& !VirtualProtect (base_address_ + off * getpagesize (),
|
&& !VirtualProtect (base_address_ + off * getpagesize (),
|
||||||
len * getpagesize (), prot, &old_prot))
|
len * getpagesize (), prot, &old_prot))
|
||||||
{
|
{
|
||||||
debug_printf ("-1 = map_map (): %E");
|
__seterrno ();
|
||||||
return (__off64_t)-1;
|
return (__off64_t)-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ mmap_record::map_map (__off64_t off, DWORD len)
|
||||||
&& !VirtualProtect (base_address_ + start * getpagesize (),
|
&& !VirtualProtect (base_address_ + start * getpagesize (),
|
||||||
len * getpagesize (), prot, &old_prot))
|
len * getpagesize (), prot, &old_prot))
|
||||||
{
|
{
|
||||||
debug_printf ("-1 = map_map (): %E");
|
__seterrno ();
|
||||||
return (__off64_t)-1;
|
return (__off64_t)-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -517,8 +517,7 @@ mmap64 (caddr_t addr, size_t len, int prot, int flags, int fd, __off64_t off)
|
||||||
{
|
{
|
||||||
if ((off = rec->map_map (off, len)) == (__off64_t)-1)
|
if ((off = rec->map_map (off, len)) == (__off64_t)-1)
|
||||||
{
|
{
|
||||||
set_errno (ENOMEM);
|
syscall_printf ("-1 = mmap()");
|
||||||
syscall_printf ("-1 = mmap(): ENOMEM");
|
|
||||||
ReleaseResourceLock (LOCK_MMAP_LIST, READ_LOCK|WRITE_LOCK, "mmap");
|
ReleaseResourceLock (LOCK_MMAP_LIST, READ_LOCK|WRITE_LOCK, "mmap");
|
||||||
return MAP_FAILED;
|
return MAP_FAILED;
|
||||||
}
|
}
|
||||||
|
@ -583,8 +582,7 @@ mmap64 (caddr_t addr, size_t len, int prot, int flags, int fd, __off64_t off)
|
||||||
{
|
{
|
||||||
fh->munmap (h, base, gran_len);
|
fh->munmap (h, base, gran_len);
|
||||||
l->erase ();
|
l->erase ();
|
||||||
set_errno (ENOMEM);
|
syscall_printf ("-1 = mmap()");
|
||||||
syscall_printf ("-1 = mmap(): ENOMEM");
|
|
||||||
ReleaseResourceLock (LOCK_MMAP_LIST, READ_LOCK | WRITE_LOCK, "mmap");
|
ReleaseResourceLock (LOCK_MMAP_LIST, READ_LOCK | WRITE_LOCK, "mmap");
|
||||||
return MAP_FAILED;
|
return MAP_FAILED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue