[rtems commit] score: Return a status in _Objects_Set_name()

Sebastian Huber sebh at rtems.org
Thu Dec 3 06:25:02 UTC 2020


Module:    rtems
Branch:    master
Commit:    13bab346c528d1c4d459a8eabbc47656993601f1
Changeset: http://git.rtems.org/rtems/commit/?id=13bab346c528d1c4d459a8eabbc47656993601f1

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Nov 23 17:22:10 2020 +0100

score: Return a status in _Objects_Set_name()

---

 cpukit/include/rtems/score/objectimpl.h | 14 ++++++++------
 cpukit/score/src/objectsetname.c        |  6 +++---
 testsuites/psxtests/psxobj01/init.c     |  6 +++---
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/cpukit/include/rtems/score/objectimpl.h b/cpukit/include/rtems/score/objectimpl.h
index fb14d38..1a0029b 100644
--- a/cpukit/include/rtems/score/objectimpl.h
+++ b/cpukit/include/rtems/score/objectimpl.h
@@ -23,6 +23,7 @@
 #include <rtems/score/apimutex.h>
 #include <rtems/score/assert.h>
 #include <rtems/score/isrlock.h>
+#include <rtems/score/status.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/threaddispatch.h>
 
@@ -461,14 +462,15 @@ size_t _Objects_Name_to_string(
  * or up to the first four characters of the string based upon
  * whether this object class uses strings for names.
  *
- * @param information points to the object information structure
- * @param[out] the_object is the object to operate upon
- * @param name is a pointer to the name to use
+ * @param information points to the object information.
+ * @param[out] the_object is the object to operate upon.
+ * @param name is a pointer to the name to use.
  *
- * @retval true The operation succeeded.
- * @retval false The operation failed.
+ * @retval STATUS_SUCCESSFUL The operation succeeded.
+ *
+ * @retval STATUS_NO_MEMORY There was no memory available to duplicate the name.
  */
-bool _Objects_Set_name(
+Status_Control _Objects_Set_name(
   const Objects_Information *information,
   Objects_Control           *the_object,
   const char                *name
diff --git a/cpukit/score/src/objectsetname.c b/cpukit/score/src/objectsetname.c
index 85b49ff..009988b 100644
--- a/cpukit/score/src/objectsetname.c
+++ b/cpukit/score/src/objectsetname.c
@@ -25,7 +25,7 @@
 
 #include <string.h>
 
-bool _Objects_Set_name(
+Status_Control _Objects_Set_name(
   const Objects_Information *information,
   Objects_Control           *the_object,
   const char                *name
@@ -38,7 +38,7 @@ bool _Objects_Set_name(
     length = strnlen( name, information->name_length );
     dup = _Workspace_String_duplicate( name, length );
     if ( dup == NULL ) {
-      return false;
+      return STATUS_NO_MEMORY;
     }
 
     the_object->name.name_p = dup;
@@ -60,5 +60,5 @@ bool _Objects_Set_name(
       _Objects_Build_name( c[ 0 ], c[ 1 ], c[ 2 ], c[ 3 ] );
   }
 
-  return true;
+  return STATUS_SUCCESSFUL;
 }
diff --git a/testsuites/psxtests/psxobj01/init.c b/testsuites/psxtests/psxobj01/init.c
index ba1e327..fef749b 100644
--- a/testsuites/psxtests/psxobj01/init.c
+++ b/testsuites/psxtests/psxobj01/init.c
@@ -37,7 +37,7 @@ static rtems_task Init(
   Objects_Control           *the_object;
   char                       name[64];
   size_t                     name_len;
-  bool                       bc;
+  Status_Control             status;
 
   TEST_BEGIN();
 
@@ -70,12 +70,12 @@ static rtems_task Init(
   puts( "INIT - _Objects_Set_name fails - out of memory" );
   rtems_workspace_greedy_allocate( NULL, 0 );
 
-  bc = _Objects_Set_name(
+  status = _Objects_Set_name(
     &Test_Information,
     &_Thread_Get_executing()->Object,
     name
   );
-  rtems_test_assert( bc == false );
+  rtems_test_assert( status == STATUS_NO_MEMORY );
 
   TEST_END();
   rtems_test_exit(0);



More information about the vc mailing list