diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-03 09:57:38 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-04 07:24:31 +0200 |
commit | 822ec589689dd5c9bf773fbddb491012965bd2e1 (patch) | |
tree | 8999c606a15546a4588bd8741bd9c993b97bf99d /cpukit/score/include/rtems | |
parent | score: Simplify _Thread_Get_objects_information() (diff) | |
download | rtems-822ec589689dd5c9bf773fbddb491012965bd2e1.tar.bz2 |
score: Add _Thread_MP_Is_remote()
Diffstat (limited to 'cpukit/score/include/rtems')
-rw-r--r-- | cpukit/score/include/rtems/score/threadimpl.h | 21 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/threadmp.h | 11 |
2 files changed, 32 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h index b19a6dcae0..1fea4da6ca 100644 --- a/cpukit/score/include/rtems/score/threadimpl.h +++ b/cpukit/score/include/rtems/score/threadimpl.h @@ -482,6 +482,27 @@ void _Thread_Set_priority( bool prepend_it ); +RTEMS_INLINE_ROUTINE Objects_Information *_Thread_Get_objects_information( + Objects_Id id +) +{ + uint32_t the_api; + + the_api = _Objects_Get_API( id ); + + if ( !_Objects_Is_api_valid( the_api ) ) { + return NULL; + } + + /* + * Threads are always first class :) + * + * There is no need to validate the object class of the object identifier, + * since this will be done by the object get methods. + */ + return _Objects_Information_table[ the_api ][ 1 ]; +} + /** * @brief Maps thread Id to a TCB pointer. * diff --git a/cpukit/score/include/rtems/score/threadmp.h b/cpukit/score/include/rtems/score/threadmp.h index 5dc5c7ebec..46add28c13 100644 --- a/cpukit/score/include/rtems/score/threadmp.h +++ b/cpukit/score/include/rtems/score/threadmp.h @@ -91,6 +91,17 @@ Thread_Control *_Thread_MP_Find_proxy ( */ void _Thread_MP_Free_proxy( Thread_Control *the_thread ); +RTEMS_INLINE_ROUTINE bool _Thread_MP_Is_remote( Objects_Id id ) +{ + Objects_Information *information; + + information = _Thread_Get_objects_information( id ); + if ( information == NULL ) { + return false; + } + + return _Objects_MP_Is_remote( information, id ) == OBJECTS_REMOTE; +} /**@}*/ |