3 * =============================================================================
14 * ============================================================================= */
19 mmap (void *addr, size_t len, int prot, int flags, HANDLE fildes, long off)
21 void *addr_mapping = 0;
23 HANDLE file_mapping = INVALID_HANDLE_VALUE;
25 if (flags | MAP_PRIVATE) {
26 prot = PAGE_WRITECOPY;
27 nt_flags = FILE_MAP_COPY;
28 } else if (flags | MAP_SHARED) {
29 if (prot | PAGE_READONLY)
30 nt_flags = FILE_MAP_READ;
31 if (prot | PAGE_READWRITE)
32 nt_flags = FILE_MAP_WRITE;
35 file_mapping = CreateFileMapping (fildes, 0, prot, 0, 0, 0);
36 if (file_mapping == 0)
39 # if defined (PACE_OS_EXTRA_MMAP_FLAGS)
40 nt_flags |= PACE_OS_EXTRA_MMAP_FLAGS;
41 # endif /* PACE_OS_EXTRA_MMAP_FLAGS */
43 //ACE_UNUSED_ARG (addr); /* WinCE does not allow specifying <addr>.*/
44 addr_mapping = MapViewOfFile (file_mapping, nt_flags, 0, off, len);
46 /* Only close this down if we used the temporary. */
47 if (file_mapping == INVALID_HANDLE_VALUE)
48 CloseHandle (file_mapping);
50 if (addr_mapping == 0)
53 else if ((flags | MAP_FIXED)
54 && addr_mapping != addr) {
62 mprotect (void *addr, size_t len, int prot)
64 DWORD dummy; /* Sigh! */
66 return VirtualProtect (addr, len, prot, &dummy) ? 0 : -1;
71 msync (void *addr, size_t len, int flags)
73 //PACE_UNUSED_ARG (flags);
74 if (!FlushViewOfFile (addr, len))
80 munmap (void *addr, size_t len)
82 //PACE_UNUSED_ARG (len);
83 if (!UnmapViewOfFile (addr))