clean up windows mmap, drop 32bit support
This commit is contained in:
@@ -62,19 +62,15 @@ void* mmap(void *addr, size_t len, int prot, int flags, int fildes, ssize_t off)
|
|||||||
#pragma warning(disable: 4293)
|
#pragma warning(disable: 4293)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const DWORD dwFileOffsetLow = (sizeof(ssize_t) <= sizeof(DWORD)) ?
|
const DWORD dwFileOffsetLow = (DWORD)(off & 0xFFFFFFFFL);
|
||||||
(DWORD)off : (DWORD)(off & 0xFFFFFFFFL);
|
const DWORD dwFileOffsetHigh = (DWORD)((off >> 32) & 0xFFFFFFFFL);
|
||||||
const DWORD dwFileOffsetHigh = (sizeof(ssize_t) <= sizeof(DWORD)) ?
|
|
||||||
(DWORD)0 : (DWORD)((off >> 32) & 0xFFFFFFFFL);
|
|
||||||
const DWORD protect = __map_mmap_prot_page(prot);
|
const DWORD protect = __map_mmap_prot_page(prot);
|
||||||
const DWORD desiredAccess = __map_mmap_prot_file(prot);
|
const DWORD desiredAccess = __map_mmap_prot_file(prot);
|
||||||
|
|
||||||
const ssize_t maxSize = off + (ssize_t)len;
|
const ssize_t maxSize = off + (ssize_t)len;
|
||||||
|
|
||||||
const DWORD dwMaxSizeLow = (sizeof(ssize_t) <= sizeof(DWORD)) ?
|
const DWORD dwMaxSizeLow = (DWORD)(maxSize & 0xFFFFFFFFL);
|
||||||
(DWORD)maxSize : (DWORD)(maxSize & 0xFFFFFFFFL);
|
const DWORD dwMaxSizeHigh = (DWORD)((maxSize >> 32) & 0xFFFFFFFFL);
|
||||||
const DWORD dwMaxSizeHigh = (sizeof(ssize_t) <= sizeof(DWORD)) ?
|
|
||||||
(DWORD)0 : (DWORD)((maxSize >> 32) & 0xFFFFFFFFL);
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
@@ -108,11 +104,11 @@ void* mmap(void *addr, size_t len, int prot, int flags, int fildes, ssize_t off)
|
|||||||
errno = __map_mman_error(GetLastError(), EPERM);
|
errno = __map_mman_error(GetLastError(), EPERM);
|
||||||
return MAP_FAILED;
|
return MAP_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
map = MapViewOfFile(fm, desiredAccess, dwFileOffsetHigh, dwFileOffsetLow, len);
|
map = MapViewOfFile(fm, desiredAccess, dwFileOffsetHigh, dwFileOffsetLow, len);
|
||||||
|
|
||||||
CloseHandle(fm);
|
CloseHandle(fm);
|
||||||
|
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
{
|
{
|
||||||
errno = __map_mman_error(GetLastError(), EPERM);
|
errno = __map_mman_error(GetLastError(), EPERM);
|
||||||
|
|||||||
Reference in New Issue
Block a user