diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2015-07-25 11:43:10 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-07-25 11:43:10 +0200 |
commit | 10ac081b3c4ebb9b29b81b30f5efe6622f4212bc (patch) | |
tree | fedfe7efc494145d0b46e91ba5a94c47cb0c1b6f /opentrack-compat/shm.h | |
parent | 6baa8ca1070612e5d7cbae7aa62cbe4a9e51ad40 (diff) | |
parent | 24538cf3a3a91481851618791b11be81437563e4 (diff) |
Merge branch 'unstable' into trackhat-ui
Diffstat (limited to 'opentrack-compat/shm.h')
-rw-r--r-- | opentrack-compat/shm.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/opentrack-compat/shm.h b/opentrack-compat/shm.h new file mode 100644 index 00000000..17a0d843 --- /dev/null +++ b/opentrack-compat/shm.h @@ -0,0 +1,37 @@ +/* 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) +#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 + +class PortableLockedShm { +public: + PortableLockedShm(const char *shmName, const char *mutexName, int mapSize); + ~PortableLockedShm(); + void lock(); + void unlock(); + bool success(); + inline void* ptr() { return mem; } +private: + void* mem; +#if defined(_WIN32) + HANDLE hMutex, hMapFile; +#else + int fd, size; +#endif +}; |