[rtems commit] score: Move object MP content to public API

Sebastian Huber sebh at rtems.org
Sun Jul 28 11:54:49 UTC 2013


Module:    rtems
Branch:    master
Commit:    0a10eb30c2bb599c4587bafc5e7f10e098c8dd71
Changeset: http://git.rtems.org/rtems/commit/?id=0a10eb30c2bb599c4587bafc5e7f10e098c8dd71

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Sun Jul 28 13:49:28 2013 +0200

score: Move object MP content to public API

---

 cpukit/score/include/rtems/score/object.h   |   16 ++++++++++++++++
 cpukit/score/include/rtems/score/objectmp.h |   18 ++++--------------
 2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/cpukit/score/include/rtems/score/object.h b/cpukit/score/include/rtems/score/object.h
index f06342f..b231039 100644
--- a/cpukit/score/include/rtems/score/object.h
+++ b/cpukit/score/include/rtems/score/object.h
@@ -233,6 +233,22 @@ typedef struct {
   Objects_Name   name;
 } Objects_Control;
 
+#if defined( RTEMS_MULTIPROCESSING )
+/**
+ *  This defines the Global Object Control Block used to manage
+ *  objects resident on other nodes.  It is derived from Object.
+ */
+typedef struct {
+  /** This is an object control structure. */
+  Objects_Control Object;
+  /** This is the name of the object.  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/score/include/rtems/score/objectmp.h b/cpukit/score/include/rtems/score/objectmp.h
index 654d7aa..e069f82 100644
--- a/cpukit/score/include/rtems/score/objectmp.h
+++ b/cpukit/score/include/rtems/score/objectmp.h
@@ -19,6 +19,10 @@
 #ifndef _RTEMS_SCORE_OBJECTMP_H
 #define _RTEMS_SCORE_OBJECTMP_H
 
+#ifndef _RTEMS_SCORE_OBJECTIMPL_H
+# error "Never use <rtems/rtems/objectmp.h> directly; include <rtems/rtems/objectimpl.h> instead."
+#endif
+
 #include <rtems/score/chainimpl.h>
 
 #ifdef __cplusplus
@@ -37,20 +41,6 @@ extern "C" {
 /**@{*/
 
 /**
- *  This defines the Global Object Control Block used to manage
- *  objects resident on other nodes.  It is derived from Object.
- */
-typedef struct {
-  /** This is an object control structure. */
-  Objects_Control Object;
-  /** This is the name of the object.  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;
-
-/**
  *  @brief Intializes the inactive global object chain
  *  based on the maximum number of global objects configured.
  *




More information about the vc mailing list