diff options
Diffstat (limited to 'source/kit/shared_memory.h')
-rw-r--r-- | source/kit/shared_memory.h | 24 |
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 |