summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/rtemsobjectsetname.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/src/rtemsobjectsetname.c')
-rw-r--r--cpukit/rtems/src/rtemsobjectsetname.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/cpukit/rtems/src/rtemsobjectsetname.c b/cpukit/rtems/src/rtemsobjectsetname.c
index 52284977ba..ccdda15737 100644
--- a/cpukit/rtems/src/rtemsobjectsetname.c
+++ b/cpukit/rtems/src/rtemsobjectsetname.c
@@ -19,8 +19,8 @@
#endif
#include <rtems/rtems/object.h>
+#include <rtems/rtems/tasks.h>
#include <rtems/score/objectimpl.h>
-#include <rtems/score/thread.h>
/*
* This method will set the object name based upon the user string.
@@ -33,33 +33,27 @@ rtems_status_code rtems_object_set_name(
)
{
Objects_Information *information;
- Objects_Locations location;
Objects_Control *the_object;
Objects_Id tmpId;
if ( !name )
return RTEMS_INVALID_ADDRESS;
- tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Get_executing()->Object.id : id;
+ tmpId = (id == OBJECTS_ID_OF_SELF) ? rtems_task_self() : id;
information = _Objects_Get_information_id( tmpId );
if ( !information )
return RTEMS_INVALID_ID;
- the_object = _Objects_Get( information, tmpId, &location );
- switch ( location ) {
+ _Objects_Allocator_lock();
+ the_object = _Objects_Get_no_protection( tmpId, information );
- case OBJECTS_LOCAL:
- _Objects_Set_name( information, the_object, name );
- _Objects_Put( the_object );
- return RTEMS_SUCCESSFUL;
-
-#if defined(RTEMS_MULTIPROCESSING)
- case OBJECTS_REMOTE:
-#endif
- case OBJECTS_ERROR:
- break;
+ if ( the_object == NULL ) {
+ _Objects_Allocator_unlock();
+ return RTEMS_INVALID_ID;
}
- return RTEMS_INVALID_ID;
+ _Objects_Set_name( information, the_object, name );
+ _Objects_Allocator_unlock();
+ return RTEMS_SUCCESSFUL;
}