aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/memmap.h
diff options
context:
space:
mode:
authortwinaphex2014-12-13 05:53:54 +0100
committertwinaphex2014-12-13 05:53:54 +0100
commit3a92bf0b7a2d929f53ae69cf761721c136f9036d (patch)
treea32adc2e685101e75d83ef8b64195c690121bc70 /libpcsxcore/memmap.h
parent13bb560e427a36c6900ea09061efecc2a67d53d0 (diff)
downloadpcsx_rearmed-3a92bf0b7a2d929f53ae69cf761721c136f9036d.tar.gz
pcsx_rearmed-3a92bf0b7a2d929f53ae69cf761721c136f9036d.tar.bz2
pcsx_rearmed-3a92bf0b7a2d929f53ae69cf761721c136f9036d.zip
Add mman wrapper for Win32 and use it for PCSX ReARmed libretro Win32
Diffstat (limited to 'libpcsxcore/memmap.h')
-rw-r--r--libpcsxcore/memmap.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/libpcsxcore/memmap.h b/libpcsxcore/memmap.h
new file mode 100644
index 0000000..e80d720
--- /dev/null
+++ b/libpcsxcore/memmap.h
@@ -0,0 +1,60 @@
+#ifndef _MEMMAP_H
+#define _MEMMAP_H
+
+#ifdef HAVE_MMAP
+
+#ifdef _WIN32
+
+#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later.
+#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
+#endif
+
+/* All the headers include this file. */
+#ifndef _MSC_VER
+#include <_mingw.h>
+#endif
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PROT_NONE 0
+#define PROT_READ 1
+#define PROT_WRITE 2
+#define PROT_EXEC 4
+
+#define MAP_FILE 0
+#define MAP_SHARED 1
+#define MAP_PRIVATE 2
+#define MAP_TYPE 0xf
+#define MAP_FIXED 0x10
+#define MAP_ANONYMOUS 0x20
+#define MAP_ANON MAP_ANONYMOUS
+
+#define MAP_FAILED ((void *)-1)
+
+/* Flags for msync. */
+#define MS_ASYNC 1
+#define MS_SYNC 2
+#define MS_INVALIDATE 4
+
+void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
+int munmap(void *addr, size_t len);
+int mprotect(void *addr, size_t len, int prot);
+int msync(void *addr, size_t len, int flags);
+int mlock(const void *addr, size_t len);
+int munlock(const void *addr, size_t len);
+
+#ifdef __cplusplus
+};
+#endif
+
+#else
+#include <sys/mman.h>
+#endif
+
+#endif
+
+#endif