|
@@ -27,7 +27,6 @@ __ptr_t mmap(__ptr_t addr, size_t len, int prot,
|
|
|
|
|
|
#elif defined (__NR_mmap2)
|
|
#elif defined (__NR_mmap2)
|
|
#define __NR__mmap __NR_mmap2
|
|
#define __NR__mmap __NR_mmap2
|
|
-
|
|
|
|
#ifndef MMAP2_PAGE_SHIFT
|
|
#ifndef MMAP2_PAGE_SHIFT
|
|
# define MMAP2_PAGE_SHIFT 12
|
|
# define MMAP2_PAGE_SHIFT 12
|
|
#endif
|
|
#endif
|
|
@@ -39,9 +38,17 @@ __ptr_t mmap(__ptr_t addr, size_t len, int prot,
|
|
{
|
|
{
|
|
|
|
|
|
if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1))
|
|
if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1))
|
|
|
|
+ {
|
|
|
|
+ __set_errno(EINVAL);
|
|
return MAP_FAILED;
|
|
return MAP_FAILED;
|
|
|
|
+ }
|
|
|
|
+#ifdef __USE_FILE_OFFSET64
|
|
|
|
+ return (__ptr_t) _mmap (addr, len, prot, flags,
|
|
|
|
+ fd,((__u_quad_t) offset >> MMAP2_PAGE_SHIFT));
|
|
|
|
+#else
|
|
return (__ptr_t) _mmap (addr, len, prot, flags,
|
|
return (__ptr_t) _mmap (addr, len, prot, flags,
|
|
- fd,(off_t) (offset >> MMAP2_PAGE_SHIFT));
|
|
+ fd,((__u_long) offset >> MMAP2_PAGE_SHIFT));
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
#elif defined (__NR_mmap)
|
|
#elif defined (__NR_mmap)
|
|
# define __NR__mmap __NR_mmap
|
|
# define __NR__mmap __NR_mmap
|