ce0e7ac9 |
1 | #ifndef _MEMMAP_H |
2 | #define _MEMMAP_H |
3 | |
4 | #ifdef _WIN32 |
5 | |
6 | #ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. |
7 | #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. |
8 | #endif |
9 | |
10 | /* All the headers include this file. */ |
11 | #ifndef _MSC_VER |
12 | #include <_mingw.h> |
13 | #endif |
14 | |
15 | #include <sys/types.h> |
16 | |
17 | #ifdef __cplusplus |
18 | extern "C" { |
19 | #endif |
20 | |
21 | #define PROT_NONE 0 |
22 | #define PROT_READ 1 |
23 | #define PROT_WRITE 2 |
24 | #define PROT_EXEC 4 |
25 | |
26 | #define MAP_FILE 0 |
27 | #define MAP_SHARED 1 |
28 | #define MAP_PRIVATE 2 |
29 | #define MAP_TYPE 0xf |
30 | #define MAP_FIXED 0x10 |
31 | #define MAP_ANONYMOUS 0x20 |
32 | #define MAP_ANON MAP_ANONYMOUS |
33 | |
34 | #define MAP_FAILED ((void *)-1) |
35 | |
36 | /* Flags for msync. */ |
37 | #define MS_ASYNC 1 |
38 | #define MS_SYNC 2 |
39 | #define MS_INVALIDATE 4 |
40 | |
41 | void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); |
42 | int munmap(void *addr, size_t len); |
43 | int mprotect(void *addr, size_t len, int prot); |
44 | int msync(void *addr, size_t len, int flags); |
45 | int mlock(const void *addr, size_t len); |
46 | int munlock(const void *addr, size_t len); |
47 | |
48 | #ifdef __cplusplus |
49 | }; |
50 | #endif |
51 | |
52 | #else |
53 | #include <sys/mman.h> |
54 | #endif |
55 | |
56 | #endif |