diff options
Diffstat (limited to 'src/sys-mmap.h')
-rw-r--r-- | src/sys-mmap.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/sys-mmap.h b/src/sys-mmap.h index bf8e815d..b740713d 100644 --- a/src/sys-mmap.h +++ b/src/sys-mmap.h @@ -40,13 +40,21 @@ mmap (void *addr, size_t length, int prot, int flags, int fd, off_t offset) HANDLE mh = CreateFileMapping((HANDLE) _get_osfhandle(fd), NULL, PAGE_READONLY, + #ifdef _WIN64 (sizeof(size_t) > 4) ? length >> 32 : 0, + #else + 0, + #endif length & 0xffffffff, NULL); if (NULL == mh) return MAP_FAILED; LPVOID p = MapViewOfFileEx(mh, FILE_MAP_READ, + #ifdef _WIN64 (sizeof(off_t) > 4) ? offset >> 32 : 0, + #else + 0, + #endif offset & 0xffffffff, length, addr); CloseHandle(mh); return (NULL != p) ? (void *)p : MAP_FAILED; |