On 07/17/2013 04:18 PM, Sebastian Huber wrote:
---
  cpukit/posix/include/rtems/posix/muteximpl.h |   20 ++++++++++++++++----
  cpukit/posix/src/mutextranslatereturncode.c  |   22 +---------------------
  2 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/cpukit/posix/include/rtems/posix/muteximpl.h 
b/cpukit/posix/include/rtems/posix/muteximpl.h
index d4673aa..29e93c2 100644
--- a/cpukit/posix/include/rtems/posix/muteximpl.h
+++ b/cpukit/posix/include/rtems/posix/muteximpl.h
@@ -38,6 +40,8 @@ POSIX_EXTERN Objects_Information  _POSIX_Mutex_Information;

  POSIX_EXTERN pthread_mutexattr_t _POSIX_Mutex_Default_attributes;

+extern const int _POSIX_Mutex_Return_codes[CORE_MUTEX_STATUS_LAST + 1];
+
  /*
   *  @brief POSIX Mutex Manager Initialization
   *
@@ -144,11 +148,19 @@ int _POSIX_Mutex_Lock_support(
   * willing to block but the operation was unable to complete within the time
   * allotted because the resource never became available.
   */
-
-int _POSIX_Mutex_Translate_core_mutex_return_code(
+RTEMS_INLINE_ROUTINE int _POSIX_Mutex_Translate_core_mutex_return_code(
    CORE_mutex_Status  the_mutex_status
-);
-
+)
+{
+  /*
+   *  Internal consistency check for bad status from SuperCore
+   */
+  #if defined(RTEMS_DEBUG)
+    if ( the_mutex_status > CORE_MUTEX_STATUS_LAST )
+      return EINVAL;
+  #endif
+  return _POSIX_Mutex_Return_codes[the_mutex_status];
+}

  /*
   *  _POSIX_Mutex_Get
I don't like this kind of changes, because they contradict to the working principles of data abstraction and encapsulation.

They expose internal implementation details and symbols, no user should see.

Many people, comprising me, consider this to be very bad coding style.

Ralf

_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to