summaryrefslogtreecommitdiff
path: root/source/kit/shared_memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/kit/shared_memory.h')
-rw-r--r--source/kit/shared_memory.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/source/kit/shared_memory.h b/source/kit/shared_memory.h
index 5eb4fc4..811bd0b 100644
--- a/source/kit/shared_memory.h
+++ b/source/kit/shared_memory.h
@@ -5,6 +5,10 @@
#include "allocator.h"
#include "string_ref.h"
+#if !defined(_WIN32) || defined(__CYGWIN__)
+# include <limits.h>
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -13,14 +17,22 @@ typedef struct {
kit_status_t status;
i64 size;
u8 *bytes;
- struct {
- u8 internal[512];
- } _state;
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ void *_handle;
+#else
+ i8 _owned;
+ i32 _fd;
+ char _name[NAME_MAX + 1];
+#endif
} kit_shared_memory_t;
-kit_shared_memory_t kit_shared_memory_create(kit_str_t name,
- i64 size);
-kit_shared_memory_t kit_shared_memory_open(kit_str_t name, i64 size);
+enum {
+ KIT_SHARED_MEMORY_OPEN,
+ KIT_SHARED_MEMORY_CREATE,
+};
+
+kit_shared_memory_t kit_shared_memory_open(kit_str_t name, i64 size,
+ i32 mode);
kit_status_t kit_shared_memory_close(kit_shared_memory_t *mem);
#ifdef __cplusplus