typedef struct { Handle MemHandle; size_t Size; Permission Perm; void* MappedAddr; } SharedMemory; Result shmemCreate(SharedMemory* s, size_t size, Permission local_perm, Permission remote_perm); void shmemLoadRemote(SharedMemory* t, Handle handle, size_t size, Permission perm); Result shmemMap(SharedMemory* t); Result shmemUnmap(SharedMemory* t); void* shmemGetAddr(SharedMemory* t); Result shmemClose(SharedMemory* t);