mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-22 17:20:48 +08:00
score: Merge objectmp implementation into one file
This commit is contained in:
@@ -106,7 +106,6 @@ include_rtems_score_HEADERS += inline/rtems/score/tod.inl
|
||||
if HAS_MP
|
||||
## We only build multiprocessing related files if HAS_MP was defined
|
||||
include_rtems_score_HEADERS += inline/rtems/score/mppkt.inl
|
||||
include_rtems_score_HEADERS += inline/rtems/score/objectmp.inl
|
||||
endif
|
||||
|
||||
## src
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
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 );
|
||||
}
|
||||
|
||||
/**@}*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* @brief Inlined Routines Associated with Global Objects
|
||||
*
|
||||
* This include file contains the bodies of all inlined routines
|
||||
* which deal with global objects.
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-2004.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_SCORE_OBJECTMP_H
|
||||
# error "Never use <rtems/score/objectmp.inl> directly; include <rtems/score/objectmp.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef _RTEMS_SCORE_OBJECTMP_INL
|
||||
#define _RTEMS_SCORE_OBJECTMP_INL
|
||||
|
||||
/**
|
||||
* @addtogroup ScoreObjectMP
|
||||
*/
|
||||
/**@{**/
|
||||
|
||||
/**
|
||||
* This function allocates a Global Object control block.
|
||||
*/
|
||||
|
||||
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
|
||||
/* end of include file */
|
||||
@@ -343,8 +343,4 @@ if HAS_MP
|
||||
$(PROJECT_INCLUDE)/rtems/score/mppkt.inl: inline/rtems/score/mppkt.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/mppkt.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/mppkt.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/score/objectmp.inl: inline/rtems/score/objectmp.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/objectmp.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/objectmp.inl
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user