From a6e7d5e492fd5e4c361d4d9aa13eb0eb951b386a Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 12 Nov 2018 09:00:36 +0100 Subject: score: Move internal structures to objectdata.h Update #3598. --- cpukit/include/rtems/score/object.h | 58 ------------------- cpukit/include/rtems/score/objectdata.h | 98 +++++++++++++++++++++++++++++++++ cpukit/include/rtems/score/objectimpl.h | 2 +- cpukit/include/rtems/score/thread.h | 2 +- 4 files changed, 100 insertions(+), 60 deletions(-) create mode 100644 cpukit/include/rtems/score/objectdata.h (limited to 'cpukit/include/rtems/score') diff --git a/cpukit/include/rtems/score/object.h b/cpukit/include/rtems/score/object.h index adafcaa72d..9c2699dbcb 100644 --- a/cpukit/include/rtems/score/object.h +++ b/cpukit/include/rtems/score/object.h @@ -22,8 +22,6 @@ #include #include -#include -#include #ifdef __cplusplus extern "C" { @@ -214,62 +212,6 @@ typedef enum { /** This macro is used to generically specify the last API index. */ #define OBJECTS_APIS_LAST OBJECTS_POSIX_API -/** - * The following defines the Object Control Block used to manage - * each object local to this node. - */ -typedef struct { - /** This is the chain node portion of an object. */ - Chain_Node Node; - /** This is the object's ID. */ - Objects_Id id; - /** This is the object's name. */ - Objects_Name name; -} Objects_Control; - -#if defined( RTEMS_MULTIPROCESSING ) -/** - * @brief This defines the Global Object Control Block used to manage objects - * resident on other nodes. - */ -typedef struct { - /** - * @brief Nodes to manage active and inactive global objects. - */ - union { - /** - * @brief Inactive global objects reside on a chain. - */ - Chain_Node Inactive; - - struct { - /** - * @brief Node to lookup an active global object by identifier. - */ - RBTree_Node Id_lookup; - - /** - * @brief Node to lookup an active global object by name. - */ - RBTree_Node Name_lookup; - } Active; - } Nodes; - - /** - * @brief The global object identifier. - */ - Objects_Id id; - - /** - * @brief The global object name. - * - * Using an unsigned thirty two bit value is broken but works. If any API is - * MP with variable length names .. BOOM!!!! - */ - uint32_t name; -} Objects_MP_Control; -#endif - /** * No object can have this ID. */ diff --git a/cpukit/include/rtems/score/objectdata.h b/cpukit/include/rtems/score/objectdata.h new file mode 100644 index 0000000000..51258fa4a4 --- /dev/null +++ b/cpukit/include/rtems/score/objectdata.h @@ -0,0 +1,98 @@ +/** + * @file + * + * @ingroup ScoreObject + * + * @brief Object Handler Data Structures + */ + +/* + * COPYRIGHT (c) 1989-2011. + * 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.org/license/LICENSE. + */ + +#ifndef _RTEMS_SCORE_OBJECTDATA_H +#define _RTEMS_SCORE_OBJECTDATA_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup ScoreObject + * + * @{ + */ + +/** + * The following defines the Object Control Block used to manage + * each object local to this node. + */ +typedef struct { + /** This is the chain node portion of an object. */ + Chain_Node Node; + /** This is the object's ID. */ + Objects_Id id; + /** This is the object's name. */ + Objects_Name name; +} Objects_Control; + +#if defined( RTEMS_MULTIPROCESSING ) +/** + * @brief This defines the Global Object Control Block used to manage objects + * resident on other nodes. + */ +typedef struct { + /** + * @brief Nodes to manage active and inactive global objects. + */ + union { + /** + * @brief Inactive global objects reside on a chain. + */ + Chain_Node Inactive; + + struct { + /** + * @brief Node to lookup an active global object by identifier. + */ + RBTree_Node Id_lookup; + + /** + * @brief Node to lookup an active global object by name. + */ + RBTree_Node Name_lookup; + } Active; + } Nodes; + + /** + * @brief The global object identifier. + */ + Objects_Id id; + + /** + * @brief The global object name. + * + * Using an unsigned thirty two bit value is broken but works. If any API is + * MP with variable length names .. BOOM!!!! + */ + uint32_t name; +} Objects_MP_Control; +#endif + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/cpukit/include/rtems/score/objectimpl.h b/cpukit/include/rtems/score/objectimpl.h index bf4d45df4a..8934e24244 100644 --- a/cpukit/include/rtems/score/objectimpl.h +++ b/cpukit/include/rtems/score/objectimpl.h @@ -19,7 +19,7 @@ #ifndef _RTEMS_SCORE_OBJECTIMPL_H #define _RTEMS_SCORE_OBJECTIMPL_H -#include +#include #include #include #include diff --git a/cpukit/include/rtems/score/thread.h b/cpukit/include/rtems/score/thread.h index c665fccb69..7e24af43c9 100644 --- a/cpukit/include/rtems/score/thread.h +++ b/cpukit/include/rtems/score/thread.h @@ -27,7 +27,7 @@ #include #endif #include -#include +#include #include #include #include -- cgit v1.2.3