diff options
Diffstat (limited to 'kit/shared_memory.h')
-rw-r--r-- | kit/shared_memory.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/kit/shared_memory.h b/kit/shared_memory.h new file mode 100644 index 0000000..a13ccee --- /dev/null +++ b/kit/shared_memory.h @@ -0,0 +1,48 @@ +#ifndef KIT_SHARED_MEMORY_H +#define KIT_SHARED_MEMORY_H + +#include "status.h" +#include "string_ref.h" + +#if !defined(_WIN32) || defined(__CYGWIN__) +# include <limits.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + s32 status; + i64 size; + u8 *bytes; +#if defined(_WIN32) && !defined(__CYGWIN__) + void *_handle; +#else + i8 _owned; + char _name[NAME_MAX + 1]; +#endif +} kit_shared_memory_t; + +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); +s32 kit_shared_memory_close(kit_shared_memory_t *mem); +s32 kit_shared_memory_clean(kit_str_t name); + +#ifdef __cplusplus +} +#endif + +#define shared_memory_t kit_shared_memory_t +#define shared_memory_clean kit_shared_memory_clean +#define shared_memory_open kit_shared_memory_open +#define shared_memory_close kit_shared_memory_close +#define SHARED_MEMORY_OPEN KIT_SHARED_MEMORY_OPEN +#define SHARED_MEMORY_CREATE KIT_SHARED_MEMORY_CREATE + +#endif |