[PATCH 25/32] score: Delete unused _Objects_Get()

Sebastian Huber sebastian.huber at embedded-brains.de
Wed May 18 09:20:44 UTC 2016


Update #2555.
---
 cpukit/score/Makefile.am                      |   2 +-
 cpukit/score/include/rtems/score/object.h     |   2 +-
 cpukit/score/include/rtems/score/objectimpl.h | 116 ++++----------------------
 cpukit/score/src/objectget.c                  |  80 ------------------
 4 files changed, 18 insertions(+), 182 deletions(-)
 delete mode 100644 cpukit/score/src/objectget.c

diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am
index a5e1ed0..f5bf11c 100644
--- a/cpukit/score/Makefile.am
+++ b/cpukit/score/Makefile.am
@@ -207,7 +207,7 @@ libscore_a_SOURCES += src/heap.c src/heapallocate.c src/heapextend.c \
 
 ## OBJECT_C_FILES
 libscore_a_SOURCES += src/objectallocate.c src/objectclose.c \
-    src/objectextendinformation.c src/objectfree.c src/objectget.c \
+    src/objectextendinformation.c src/objectfree.c \
     src/objectgetisr.c src/objectgetnext.c src/objectinitializeinformation.c \
     src/objectnametoid.c src/objectnametoidstring.c \
     src/objectshrinkinformation.c src/objectgetnoprotection.c \
diff --git a/cpukit/score/include/rtems/score/object.h b/cpukit/score/include/rtems/score/object.h
index c2acb2d..6789c61 100644
--- a/cpukit/score/include/rtems/score/object.h
+++ b/cpukit/score/include/rtems/score/object.h
@@ -289,7 +289,7 @@ typedef struct {
 
 /**
  *  The following defines the constant which may be used
- *  with _Objects_Get to manipulate the calling task.
+ *  to manipulate the calling task.
  */
 #define OBJECTS_ID_OF_SELF ((Objects_Id) 0)
 
diff --git a/cpukit/score/include/rtems/score/objectimpl.h b/cpukit/score/include/rtems/score/objectimpl.h
index fe08771..4049bdc 100644
--- a/cpukit/score/include/rtems/score/objectimpl.h
+++ b/cpukit/score/include/rtems/score/objectimpl.h
@@ -110,7 +110,7 @@ typedef enum {
 
 /**
  *  This enumerated type lists the locations which may be returned
- *  by _Objects_Get.  These codes indicate the success of locating
+ *  by _Objects_Get_isr_disable.  These codes indicate the success of locating
  *  an object with the specified ID.
  */
 typedef enum {
@@ -405,45 +405,33 @@ Objects_Control *_Objects_Allocate( Objects_Information *information );
  * @code
  * rtems_status_code some_delete( rtems_id id )
  * {
- *   rtems_status_code  sc;
  *   Some_Control      *some;
- *   Objects_Locations  location;
  *
  *   // The object allocator mutex protects the executing thread from
  *   // asynchronous thread restart and deletion.
  *   _Objects_Allocator_lock();
  *
- *   // This will disable thread dispatching, so this starts a thread dispatch
- *   // critical section.
+ *   // Get the object under protection of the object allocator mutex.
  *   some = (Semaphore_Control *)
- *     _Objects_Get( &_Some_Information, id, &location );
- *
- *   switch ( location ) {
- *     case OBJECTS_LOCAL:
- *       // After the object close an object get with this identifier will
- *       // fail.
- *       _Objects_Close( &_Some_Information, &some->Object );
+ *     _Objects_Get_no_protection( id, &_Some_Information );
  *
- *       _Some_Delete( some );
+ *   if ( some == NULL ) {
+ *     _Objects_Allocator_unlock();
+ *     return RTEMS_INVALID_ID;
+ *   }
  *
- *       // This enables thread dispatching, so the thread dispatch critical
- *       // section ends here.
- *       _Objects_Put( &some->Object );
+ *   // After the object close an object get with this identifier will
+ *   // fail.
+ *   _Objects_Close( &_Some_Information, &some->Object );
  *
- *       // Thread dispatching is enabled.  The object free is only protected
- *       // by the object allocator mutex.
- *       _Objects_Free( &_Some_Information, &some->Object );
+ *   _Some_Delete( some );
  *
- *       sc = RTEMS_SUCCESSFUL;
- *       break;
- *     default:
- *       sc = RTEMS_INVALID_ID;
- *       break;
- *   }
+ *   // Thread dispatching is enabled.  The object free is only protected
+ *   // by the object allocator mutex.
+ *   _Objects_Free( &_Some_Information, &some->Object );
  *
  *   _Objects_Allocator_unlock();
- *
- *   return sc;
+ *   return RTEMS_SUCCESSFUL;
  * }
  * @endcode
  */
@@ -569,49 +557,12 @@ Objects_Name_or_id_lookup_errors _Objects_Id_to_name (
  *  @param[in] information points to an object class information block.
  *  @param[in] id is the Id of the object whose name we are locating.
  *  @param[in] location will contain an indication of success or failure.
- *
- *  @retval This method returns one of the values from the
- *          @ref Objects_Name_or_id_lookup_errors enumeration to indicate
- *          successful or failure.  On success @a id will contain the Id of
- *          the requested object.
- *
- *  @note _Objects_Get returns with dispatching disabled for
- *  local and remote objects.  _Objects_Get_isr_disable returns with
- *  dispatching disabled for remote objects and interrupts for local
- *  objects.
- */
-Objects_Control *_Objects_Get (
-  Objects_Information *information,
-  Objects_Id           id,
-  Objects_Locations   *location
-);
-
-/**
- *  @brief Maps object ids to object control blocks.
- *
- *  This function maps object ids to object control blocks.
- *  If id corresponds to a local object, then it returns
- *  the_object control pointer which maps to id and location
- *  is set to OBJECTS_LOCAL.  If the object class supports global
- *  objects and the object id is global and resides on a remote
- *  node, then location is set to OBJECTS_REMOTE, and the_object
- *  is undefined.  Otherwise, location is set to OBJECTS_ERROR
- *  and the_object is undefined.
- *
- *  @param[in] information points to an object class information block.
- *  @param[in] id is the Id of the object whose name we are locating.
- *  @param[in] location will contain an indication of success or failure.
  *  @param[in] lock_context is the previous interrupt state being turned.
  *
  *  @retval This method returns one of the values from the
  *          @ref Objects_Name_or_id_lookup_errors enumeration to indicate
  *          successful or failure.  On success @a name will contain the name of
  *          the requested object.
- *
- *  @note _Objects_Get returns with dispatching disabled for
- *  local and remote objects.  _Objects_Get_isr_disable returns with
- *  dispatchng disabled for remote objects and interrupts for local
- *  objects.
  */
 Objects_Control *_Objects_Get_isr_disable(
   Objects_Information *information,
@@ -667,11 +618,6 @@ Objects_Control *_Objects_Get_local(
  *          @ref Objects_Name_or_id_lookup_errors enumeration to indicate
  *          successful or failure.  On success @a id will contain the Id of
  *          the requested object.
- *
- *  @note _Objects_Get returns with dispatching disabled for
- *  local and remote objects.  _Objects_Get_isr_disable returns with
- *  dispatching disabled for remote objects and interrupts for local
- *  objects.
  */
 Objects_Control *_Objects_Get_no_protection(
   Objects_Id                 id,
@@ -679,8 +625,7 @@ Objects_Control *_Objects_Get_no_protection(
 );
 
 /**
- *  Like @ref _Objects_Get, but is used to find "next" open
- *  object.
+ *  Gets the next open object after the specified object identifier.
  *
  *  Locks the object allocator mutex in case a next object exists.
  *
@@ -1060,35 +1005,6 @@ RTEMS_INLINE_ROUTINE void _Objects_Open_string(
 }
 
 /**
- * @brief Puts back an object obtained with _Objects_Get().
- *
- * This function decrements the thread dispatch disable level.  The
- * _Thread_Dispatch() is called if the level reaches zero.
- */
-RTEMS_INLINE_ROUTINE void _Objects_Put(
-  Objects_Control *the_object
-)
-{
-  (void) the_object;
-  _Thread_Enable_dispatch();
-}
-
-/**
- * @brief Puts back an object obtained with _Objects_Get().
- *
- * This function decrements the thread dispatch disable level.  The
- * _Thread_Dispatch() is not called if the level reaches zero, thus a thread
- * dispatch will not take place immediately on the current processor.
- */
-RTEMS_INLINE_ROUTINE void _Objects_Put_without_thread_dispatch(
-  Objects_Control *the_object
-)
-{
-  (void) the_object;
-  _Thread_Unnest_dispatch();
-}
-
-/**
  * @brief Locks the object allocator mutex.
  *
  * While holding the allocator mutex the executing thread is protected from
diff --git a/cpukit/score/src/objectget.c b/cpukit/score/src/objectget.c
deleted file mode 100644
index 276c960..0000000
--- a/cpukit/score/src/objectget.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *  @file
- *
- *  @brief Get Object
- *  @ingroup Score
- */
-
-/*
- *  COPYRIGHT (c) 1989-1999.
- *  On-Line Applications Research Corporation (OAR).
- *
- *  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 <rtems/score/objectimpl.h>
-
-Objects_Control *_Objects_Get(
-  Objects_Information *information,
-  Objects_Id           id,
-  Objects_Locations   *location
-)
-{
-  Objects_Control *the_object;
-  uint32_t         index;
-
-  /*
-   *  Extract the index portion of an Id in a way that produces a valid
-   *  index for objects within this class and an invalid value for objects
-   *  outside this class.
-   *
-   *  If the Id matches the api, class, and node but index portion is 0,
-   *  then the subtraction will underflow and the addition of 1 will
-   *  result in a 0 index.  The zeroth element in the local_table is
-   *  always NULL.
-   *
-   *  If the Id is valid but the object has not been created yet, then
-   *  the local_table entry will be NULL.
-   */
-  index = id - information->minimum_id + 1;
-
-  /*
-   *  If the index is less than maximum, then it is OK to use it to
-   *  index into the local_table array.
-   */
-  if ( index <= information->maximum ) {
-    _Thread_Disable_dispatch();
-    if ( (the_object = information->local_table[ index ]) != NULL ) {
-      *location = OBJECTS_LOCAL;
-      return the_object;
-    }
-
-    /*
-     *  Valid Id for this API, Class and Node but the object has not
-     *  been allocated yet.
-     */
-    _Thread_Enable_dispatch();
-    *location = OBJECTS_ERROR;
-    return NULL;
-  }
-
-  /*
-   *  Object Id is not within this API and Class on this node.  So
-   *  it may be global in a multiprocessing system.  But it is clearly
-   *  invalid on a single processor system.
-   */
-
-#if defined(RTEMS_MULTIPROCESSING)
-  *location = _Objects_MP_Is_remote( information, id );
-#else
-  *location = OBJECTS_ERROR;
-#endif
-
-  return NULL;
-}
-- 
1.8.4.5



More information about the devel mailing list