diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-25 09:07:23 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-26 11:55:46 +0200 |
commit | cba15292d9b7085eee4021e1927206d41ad43fd4 (patch) | |
tree | 821c819961aacaddcc595e779468cf9902e673e0 /cpukit/score/include/rtems/score/objectmp.h | |
parent | rtems: Fix partition includes (diff) | |
download | rtems-cba15292d9b7085eee4021e1927206d41ad43fd4.tar.bz2 |
score: Merge objectmp implementation into one file
Diffstat (limited to 'cpukit/score/include/rtems/score/objectmp.h')
-rw-r--r-- | cpukit/score/include/rtems/score/objectmp.h | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/cpukit/score/include/rtems/score/objectmp.h b/cpukit/score/include/rtems/score/objectmp.h index 1ef15b3c72..654d7aa66e 100644 --- a/cpukit/score/include/rtems/score/objectmp.h +++ b/cpukit/score/include/rtems/score/objectmp.h @@ -19,6 +19,12 @@ #ifndef _RTEMS_SCORE_OBJECTMP_H #define _RTEMS_SCORE_OBJECTMP_H +#include <rtems/score/chainimpl.h> + +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup ScoreObjectMP Object Handler Multiprocessing Support * @@ -30,10 +36,6 @@ */ /**@{*/ -#ifdef __cplusplus -extern "C" { -#endif - /** * This defines the Global Object Control Block used to manage * objects resident on other nodes. It is derived from Object. @@ -189,15 +191,48 @@ SCORE_EXTERN uint32_t _Objects_MP_Maximum_global_objects; */ SCORE_EXTERN Chain_Control _Objects_MP_Inactive_global_objects; -#ifndef __RTEMS_APPLICATION__ -#include <rtems/score/objectmp.inl> -#endif +/** + * This function allocates a Global Object control block. + */ -#ifdef __cplusplus +RTEMS_INLINE_ROUTINE Objects_MP_Control *_Objects_MP_Allocate_global_object ( + void +) +{ + return (Objects_MP_Control *) + _Chain_Get( &_Objects_MP_Inactive_global_objects ); +} + +/** + * This routine deallocates a Global Object control block. + */ + +RTEMS_INLINE_ROUTINE void _Objects_MP_Free_global_object ( + Objects_MP_Control *the_object +) +{ + _Chain_Append( + &_Objects_MP_Inactive_global_objects, + &the_object->Object.Node + ); +} + +/** + * This function returns whether the global object is NULL or not. + */ + +RTEMS_INLINE_ROUTINE bool _Objects_MP_Is_null_global_object ( + Objects_MP_Control *the_object +) +{ + return( the_object == NULL ); } -#endif /**@}*/ +#ifdef __cplusplus +} +#endif + #endif /* end of include file */ |