[PATCH 5/9] posix: Convert to inline function

Ralf Corsepius ralf.corsepius at rtems.org
Thu Jul 18 16:43:34 UTC 2013


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




More information about the devel mailing list