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