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