summaryrefslogtreecommitdiffhomepage
path: root/compat/compat.h
diff options
context:
space:
mode:
Diffstat (limited to 'compat/compat.h')
-rw-r--r--compat/compat.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/compat/compat.h b/compat/compat.h
new file mode 100644
index 00000000..7692b38a
--- /dev/null
+++ b/compat/compat.h
@@ -0,0 +1,42 @@
+/* Copyright (c) 2013 Stanisław Halik <sthalik@misaki.pl>
+
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ */
+#pragma once
+
+#if defined(_WIN32) || defined(__WIN32)
+#include <windows.h>
+#else
+#include <stdio.h>
+#include <string.h>
+#include <sys/file.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <unistd.h>
+#include <sys/types.h>
+#endif
+
+#if defined(IN_FTNOIR_COMPAT) && (defined(_WIN32) || defined(__WIN32))
+# define COMPAT_EXPORT __declspec(dllexport)
+#else
+# define COMPAT_EXPORT
+#endif
+
+class COMPAT_EXPORT PortableLockedShm {
+public:
+ PortableLockedShm(const char *shmName, const char *mutexName, int mapSize);
+ ~PortableLockedShm();
+ void lock();
+ void unlock();
+ void* mem;
+private:
+#if defined(_WIN32) || defined(__WIN32)
+ HANDLE hMutex, hMapFile;
+#else
+ int fd, size;
+ //char shm_filename[NAME_MAX];
+#endif
+};