On Fri, Sep 8, 2017 at 8:33 AM, Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote:
> Since we have only one process, sharing between processes is trivial. > > Close #3124. > --- > cpukit/posix/include/rtems/posix/semaphore.h | 1 - > cpukit/posix/include/rtems/posix/semaphoreimpl.h | 1 - > cpukit/posix/src/semaphorecreatesupp.c | 7 ------- > cpukit/posix/src/seminit.c | 1 - > cpukit/posix/src/semopen.c | 1 - > testsuites/psxtests/psxsem01/init.c | 14 +++++++++----- > 6 files changed, 9 insertions(+), 16 deletions(-) > > diff --git a/cpukit/posix/include/rtems/posix/semaphore.h > b/cpukit/posix/include/rtems/posix/semaphore.h > index 45de4a93b9..6598397052 100644 > --- a/cpukit/posix/include/rtems/posix/semaphore.h > +++ b/cpukit/posix/include/rtems/posix/semaphore.h > @@ -43,7 +43,6 @@ extern "C" { > typedef struct { > Objects_Control Object; > CORE_semaphore_Control Semaphore; > - int process_shared; > bool named; > bool linked; > uint32_t open_count; > diff --git a/cpukit/posix/include/rtems/posix/semaphoreimpl.h > b/cpukit/posix/include/rtems/posix/semaphoreimpl.h > index 2bafbe9b97..43440298ec 100644 > --- a/cpukit/posix/include/rtems/posix/semaphoreimpl.h > +++ b/cpukit/posix/include/rtems/posix/semaphoreimpl.h > @@ -78,7 +78,6 @@ RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control > *_POSIX_Semaphore_Get( > int _POSIX_Semaphore_Create_support( > const char *name, > size_t name_len, > - int pshared, > unsigned int value, > POSIX_Semaphore_Control **the_sem > ); > diff --git a/cpukit/posix/src/semaphorecreatesupp.c b/cpukit/posix/src/ > semaphorecreatesupp.c > index d66e1942c9..4a33336230 100644 > --- a/cpukit/posix/src/semaphorecreatesupp.c > +++ b/cpukit/posix/src/semaphorecreatesupp.c > @@ -42,7 +42,6 @@ > int _POSIX_Semaphore_Create_support( > const char *name_arg, > size_t name_len, > - int pshared, > unsigned int value, > POSIX_Semaphore_Control **the_sem > ) > @@ -50,10 +49,6 @@ int _POSIX_Semaphore_Create_support( > POSIX_Semaphore_Control *the_semaphore; > char *name; > > - /* Sharing semaphores among processes is not currently supported */ > - if (pshared != 0) > - rtems_set_errno_and_return_minus_one( ENOSYS ); > Why are you deleting this error check? I can see not storing the value or passing it to create support. But I think it still should be validated. We only support requests for process private. Anything else is an error. > - > /* > * Make a copy of the user's string for name just in case it was > * dynamically constructed. > @@ -73,8 +68,6 @@ int _POSIX_Semaphore_Create_support( > rtems_set_errno_and_return_minus_one( ENOSPC ); > } > > - the_semaphore->process_shared = pshared; > - > if ( name ) { > the_semaphore->named = true; > the_semaphore->open_count = 1; > diff --git a/cpukit/posix/src/seminit.c b/cpukit/posix/src/seminit.c > index 249edf67ee..cf06f6ce41 100644 > --- a/cpukit/posix/src/seminit.c > +++ b/cpukit/posix/src/seminit.c > @@ -55,7 +55,6 @@ int sem_init( > status = _POSIX_Semaphore_Create_support( > NULL, > 0, > - pshared, > value, > &the_semaphore > ); > diff --git a/cpukit/posix/src/semopen.c b/cpukit/posix/src/semopen.c > index b844b08bb4..98163cca8d 100644 > --- a/cpukit/posix/src/semopen.c > +++ b/cpukit/posix/src/semopen.c > @@ -119,7 +119,6 @@ sem_t *sem_open( > status =_POSIX_Semaphore_Create_support( > name, > name_len, > - false, /* not shared across processes */ > value, > &the_semaphore > ); > diff --git a/testsuites/psxtests/psxsem01/init.c b/testsuites/psxtests/ > psxsem01/init.c > index 8601f926b3..9ba8935292 100644 > --- a/testsuites/psxtests/psxsem01/init.c > +++ b/testsuites/psxtests/psxsem01/init.c > @@ -136,6 +136,14 @@ void *POSIX_Init( > > TEST_BEGIN(); > > + puts( "Init: sem_init - SUCCESSFUL" ); > + status = sem_init(&sem2, 1, 1); > + fatal_posix_service_status( status, 0, "sem_init with pshared != 0"); > + > + puts( "Init: sem_destroy - SUCCESSFUL" ); > + status = sem_destroy(&sem2); > + fatal_posix_service_status( status, 0, "sem_destroy"); > + > puts( "Init: sem_init - UNSUCCESSFUL (EINVAL)" ); > status = sem_init(NULL, 0, 1); > fatal_posix_service_status( status, -1, "sem_init error return status"); > @@ -152,11 +160,6 @@ void *POSIX_Init( > fatal_posix_service_status( status, -1, "sem_init error return status"); > fatal_posix_service_status( errno, ENOSPC, "sem_init errorno ENOSPC" ); > > - puts( "Init: sem_init - UNSUCCESSFUL (ENOSYS -- pshared not supported)" > ); > - status = sem_init(&sem2, 1, 1); > - fatal_posix_service_status( status, -1, "sem_init error return status"); > - fatal_posix_service_status( errno, ENOSYS, "sem_init errno set to > ENOSYS"); > - > puts( "Init: sem_getvalue - SUCCESSFUL "); > for (i = 0; i < MAX_SEMS; i++) { > status = sem_getvalue(&sems[i], &value); > @@ -165,6 +168,7 @@ void *POSIX_Init( > fatal_posix_service_status( value, i, "sem_getvalue correct value" ); > } > puts( "Init: sem_getvalue - UNSUCCESSFUL "); > + sem2 = 0; > status = sem_getvalue(&sem2, &value); > fatal_posix_service_status( status, -1, "sem_getvalue error return > status"); > fatal_posix_service_status( errno, EINVAL, "sem_getvalue errno EINVAL"); > -- > 2.12.3 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel