summaryrefslogtreecommitdiff
path: root/memmap.h
diff options
context:
space:
mode:
authortwinaphex2014-12-13 05:50:15 +0100
committertwinaphex2014-12-13 05:50:15 +0100
commit5820d8be949f175ccafe2770295d99c3132056c5 (patch)
tree7d0edc7cb4b8d7c7cbffc178d978287bc044ac5d /memmap.h
parent6ddc6f494d4caac06b163300cec2119f1384e2bb (diff)
downloadpicogpsp-5820d8be949f175ccafe2770295d99c3132056c5.tar.gz
picogpsp-5820d8be949f175ccafe2770295d99c3132056c5.tar.bz2
picogpsp-5820d8be949f175ccafe2770295d99c3132056c5.zip
Create memmap_win32.c for Win32 systems - a mman wrapper
Diffstat (limited to 'memmap.h')
-rw-r--r--memmap.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/memmap.h b/memmap.h
new file mode 100644
index 0000000..e80d720
--- /dev/null
+++ b/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