56void* __rw_mmap (
const char* fname, _RWSTD_SIZE_T *
size)
61#if !defined (_MSC_VER)
63 if (stat (fname, &
sb) == -1)
66 if (_stat (fname, &
sb) == -1)
74 const int fd =
open (fname, O_RDONLY);
89 void *
data = mmap (0,
sb.st_size, PROT_READ, MAP_SHARED, fd, 0);
95# define MAP_FAILED (void*)-1
101#elif defined (_WIN32)
104 CreateFile (fname, GENERIC_READ, FILE_SHARE_READ,
NULL,
105 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
NULL);
107 if (mmf == INVALID_HANDLE_VALUE)
111 CreateFileMapping (mmf,
NULL, PAGE_READONLY, 0, 0,
NULL);
112 if (mmfv == INVALID_HANDLE_VALUE) {
118 MapViewOfFile (mmfv, FILE_MAP_READ, 0, 0,
sb.st_size);
126# ifndef _RWSTD_NO_MUNMAP
127# define _RWSTD_NO_MUNMAP
131 const size_t mapsize = size_t (
sb.st_size);
133 void*
data =
operator new (mapsize);
134 const ssize_t nread = read (fd,
data, mapsize);
136 if (
size_t (nread) != mapsize) {
137 operator delete (
data);
147void __rw_munmap (
const void* pcv, _RWSTD_SIZE_T
size)
155#ifndef _RWSTD_NO_MUNMAP
157#elif defined (_WIN32)
158 UnmapViewOfFile (pv);
160 operator delete (pv);
#define _RWSTD_STATIC_CAST(T, x)
#define _RWSTD_NAMESPACE(name)
#define _RWSTD_ASSERT(ignore)
#define _RWSTD_CONST_CAST(T, x)