diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-17 15:01:03 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-18 09:58:57 +0200 |
commit | 15462a6f1c7c838533dde2289c51f436975410ff (patch) | |
tree | b00cdef0a0a2344a8f051a9119312296da8a92a6 | |
parent | score: Create mutex implementation header (diff) | |
download | rtems-15462a6f1c7c838533dde2289c51f436975410ff.tar.bz2 |
rtems: Convert to inline functions
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/semimpl.h | 53 | ||||
-rw-r--r-- | cpukit/rtems/src/semtranslatereturncode.c | 58 |
2 files changed, 47 insertions, 64 deletions
diff --git a/cpukit/rtems/include/rtems/rtems/semimpl.h b/cpukit/rtems/include/rtems/rtems/semimpl.h index 5a433e2789..8bd762b4bd 100644 --- a/cpukit/rtems/include/rtems/rtems/semimpl.h +++ b/cpukit/rtems/include/rtems/rtems/semimpl.h @@ -18,6 +18,7 @@ #define _RTEMS_RTEMS_SEMIMPL_H #include <rtems/rtems/sem.h> +#include <rtems/score/coremuteximpl.h> #ifdef __cplusplus extern "C" { @@ -44,6 +45,12 @@ extern "C" { */ RTEMS_SEM_EXTERN Objects_Information _Semaphore_Information; +extern const rtems_status_code + _Semaphore_Translate_core_mutex_return_code_[]; + +extern const rtems_status_code + _Semaphore_Translate_core_semaphore_return_code_[]; + /** * @brief Semaphore Manager Initialization * @@ -61,9 +68,28 @@ void _Semaphore_Manager_initialization(void); * * @retval translated RTEMS status code */ -rtems_status_code _Semaphore_Translate_core_mutex_return_code ( - uint32_t the_mutex_status -); +RTEMS_INLINE_ROUTINE rtems_status_code +_Semaphore_Translate_core_mutex_return_code( + uint32_t status +) +{ + /* + * If this thread is blocking waiting for a result on a remote operation. + */ + #if defined(RTEMS_MULTIPROCESSING) + if ( _Thread_Is_proxy_blocking(status) ) + return RTEMS_PROXY_BLOCKING; + #endif + + /* + * Internal consistency check for bad status from SuperCore + */ + #if defined(RTEMS_DEBUG) + if ( status > CORE_MUTEX_STATUS_LAST ) + return RTEMS_INTERNAL_ERROR; + #endif + return _Semaphore_Translate_core_mutex_return_code_[status]; +} /** * @brief Semaphore Translate Core Semaphore Return Code @@ -75,9 +101,24 @@ rtems_status_code _Semaphore_Translate_core_mutex_return_code ( * * @retval translated RTEMS status code */ -rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( - uint32_t the_mutex_status -); +RTEMS_INLINE_ROUTINE rtems_status_code +_Semaphore_Translate_core_semaphore_return_code( + uint32_t status +) +{ + #if defined(RTEMS_MULTIPROCESSING) + if ( _Thread_Is_proxy_blocking(status) ) + return RTEMS_PROXY_BLOCKING; + #endif + /* + * Internal consistency check for bad status from SuperCore + */ + #if defined(RTEMS_DEBUG) + if ( status > CORE_SEMAPHORE_STATUS_LAST ) + return RTEMS_INTERNAL_ERROR; + #endif + return _Semaphore_Translate_core_semaphore_return_code_[status]; +} /** * @brief Allocates a semaphore control block from diff --git a/cpukit/rtems/src/semtranslatereturncode.c b/cpukit/rtems/src/semtranslatereturncode.c index cd06883a6e..94e746ae2a 100644 --- a/cpukit/rtems/src/semtranslatereturncode.c +++ b/cpukit/rtems/src/semtranslatereturncode.c @@ -18,25 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/rtems/status.h> -#include <rtems/rtems/support.h> -#include <rtems/rtems/attr.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> -#include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> -#include <rtems/score/coremuteximpl.h> -#include <rtems/score/coresem.h> -#include <rtems/score/states.h> -#include <rtems/score/thread.h> -#include <rtems/score/threadq.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/mpci.h> -#endif -#include <rtems/score/sysstate.h> - -#include <rtems/score/interr.h> const rtems_status_code _Semaphore_Translate_core_mutex_return_code_[] = { RTEMS_SUCCESSFUL, /* CORE_MUTEX_STATUS_SUCCESSFUL */ @@ -53,28 +35,6 @@ const rtems_status_code _Semaphore_Translate_core_mutex_return_code_[] = { RTEMS_INVALID_PRIORITY /* CORE_MUTEX_STATUS_CEILING_VIOLATED */ }; -rtems_status_code _Semaphore_Translate_core_mutex_return_code ( - uint32_t status -) -{ - /* - * If this thread is blocking waiting for a result on a remote operation. - */ - #if defined(RTEMS_MULTIPROCESSING) - if ( _Thread_Is_proxy_blocking(status) ) - return RTEMS_PROXY_BLOCKING; - #endif - - /* - * Internal consistency check for bad status from SuperCore - */ - #if defined(RTEMS_DEBUG) - if ( status > CORE_MUTEX_STATUS_LAST ) - return RTEMS_INTERNAL_ERROR; - #endif - return _Semaphore_Translate_core_mutex_return_code_[status]; -} - const rtems_status_code _Semaphore_Translate_core_semaphore_return_code_[] = { RTEMS_SUCCESSFUL, /* CORE_SEMAPHORE_STATUS_SUCCESSFUL */ RTEMS_UNSATISFIED, /* CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT */ @@ -82,21 +42,3 @@ const rtems_status_code _Semaphore_Translate_core_semaphore_return_code_[] = { RTEMS_TIMEOUT, /* CORE_SEMAPHORE_TIMEOUT */ RTEMS_INTERNAL_ERROR, /* CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED */ }; - -rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( - uint32_t status -) -{ - #if defined(RTEMS_MULTIPROCESSING) - if ( _Thread_Is_proxy_blocking(status) ) - return RTEMS_PROXY_BLOCKING; - #endif - /* - * Internal consistency check for bad status from SuperCore - */ - #if defined(RTEMS_DEBUG) - if ( status > CORE_SEMAPHORE_STATUS_LAST ) - return RTEMS_INTERNAL_ERROR; - #endif - return _Semaphore_Translate_core_semaphore_return_code_[status]; -} |