#ifndef KIT_SHARED_MEMORY_H #define KIT_SHARED_MEMORY_H #include "status.h" #include "string_ref.h" #if !defined(_WIN32) || defined(__CYGWIN__) # include #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