From ba77628250ae7158db363fc0d7886ebd43e9cb69 Mon Sep 17 00:00:00 2001 From: Gedare Bloom Date: Fri, 12 Aug 2016 15:25:10 -0400 Subject: posix: shared memory support Add POSIX shared memory manager (Shm). Includes a hook-based approach for the backing memory storage that defaults to the Workspace, and a test is provided using the heap. A test is also provided for the basic use of mmap'ing a shared memory object. This test currently fails at the mmap stage due to no support for mmap. --- cpukit/posix/src/shm.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 cpukit/posix/src/shm.c (limited to 'cpukit/posix/src/shm.c') diff --git a/cpukit/posix/src/shm.c b/cpukit/posix/src/shm.c new file mode 100644 index 0000000000..7dca6bbc1d --- /dev/null +++ b/cpukit/posix/src/shm.c @@ -0,0 +1,48 @@ +/** + * @file + */ + +/* + * Copyright (c) 2016 Gedare Bloom. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#include +#include +#include +#include +#include + +Objects_Information _POSIX_Shm_Information; + +static void _POSIX_Shm_Manager_initialization( void ) +{ + _Objects_Initialize_information( + &_POSIX_Shm_Information, /* object information table */ + OBJECTS_POSIX_API, /* object API */ + OBJECTS_POSIX_SHMS, /* object class */ + Configuration_POSIX_API.maximum_shms, + /* maximum objects of this class */ + sizeof( POSIX_Shm_Control ), + /* size of this object's control block */ + true, /* true if names for this object are strings */ + _POSIX_PATH_MAX, /* maximum length of each object's name */ + NULL /* Proxy extraction support callout */ + ); +} + +RTEMS_SYSINIT_ITEM( + _POSIX_Shm_Manager_initialization, + RTEMS_SYSINIT_POSIX_SHM, + RTEMS_SYSINIT_ORDER_MIDDLE +); -- cgit v1.2.3