[PATCH 6/9] score: Move thread dispatch content to new file

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Jun 5 15:22:04 UTC 2013


Move thread dispatch declarations and inline functions to new header
<rtems/score/threaddispatch.h> to make it independent of the
Thread_Control structure.  This avoids a cyclic dependency in case
thread dispatch functions are used for the object implementation.
---
 cpukit/score/Makefile.am                          |    1 +
 cpukit/score/include/rtems/score/thread.h         |   85 -------
 cpukit/score/include/rtems/score/threaddispatch.h |  244 +++++++++++++++++++++
 cpukit/score/inline/rtems/score/coremutex.inl     |    2 +
 cpukit/score/inline/rtems/score/coresem.inl       |    1 +
 cpukit/score/inline/rtems/score/object.inl        |    2 +
 cpukit/score/inline/rtems/score/thread.inl        |  140 ------------
 cpukit/score/preinstall.am                        |    4 +
 cpukit/score/src/corerwlocktimeout.c              |    2 +-
 cpukit/score/src/corespinlockwait.c               |    1 +
 cpukit/score/src/coretodset.c                     |    1 +
 cpukit/score/src/isrsmp.c                         |    1 +
 cpukit/score/src/schedulercbsattachthread.c       |    1 +
 cpukit/score/src/schedulercbsdetachthread.c       |    1 +
 cpukit/score/src/schedulercbsgetexecutiontime.c   |    1 +
 cpukit/score/src/schedulercbsgetremainingbudget.c |    1 +
 cpukit/score/src/smp.c                            |    1 +
 cpukit/score/src/threadclose.c                    |    1 +
 cpukit/score/src/threaddelayended.c               |    1 +
 cpukit/score/src/threaddisabledispatch.c          |    1 +
 cpukit/score/src/threaddispatch.c                 |    1 +
 cpukit/score/src/threaddispatchdisablelevel.c     |    2 +-
 cpukit/score/src/threadget.c                      |    1 +
 cpukit/score/src/threadhandler.c                  |    1 +
 cpukit/score/src/threadqtimeout.c                 |    1 +
 25 files changed, 271 insertions(+), 227 deletions(-)
 create mode 100644 cpukit/score/include/rtems/score/threaddispatch.h

diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am
index d4c79ac..e6c8704 100644
--- a/cpukit/score/Makefile.am
+++ b/cpukit/score/Makefile.am
@@ -44,6 +44,7 @@ include_rtems_score_HEADERS += include/rtems/score/stack.h
 include_rtems_score_HEADERS += include/rtems/score/states.h
 include_rtems_score_HEADERS += include/rtems/score/sysstate.h
 include_rtems_score_HEADERS += include/rtems/score/thread.h
+include_rtems_score_HEADERS += include/rtems/score/threaddispatch.h
 include_rtems_score_HEADERS += include/rtems/score/threadq.h
 include_rtems_score_HEADERS += include/rtems/score/threadsync.h
 include_rtems_score_HEADERS += include/rtems/score/timespec.h
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h
index 9461c85..9637614 100644
--- a/cpukit/score/include/rtems/score/thread.h
+++ b/cpukit/score/include/rtems/score/thread.h
@@ -50,18 +50,6 @@
   #define RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API
 #endif
 
-#if defined(RTEMS_SMP) || \
-    defined(RTEMS_HEAVY_STACK_DEBUG) || \
-    defined(RTEMS_HEAVY_MALLOC_DEBUG)
-  #define __THREAD_DO_NOT_INLINE_DISABLE_DISPATCH__
-#endif
-
-#if defined(RTEMS_SMP) || \
-   (CPU_INLINE_ENABLE_DISPATCH == FALSE) || \
-   (__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ == 1)
-  #define __THREAD_DO_NOT_INLINE_ENABLE_DISPATCH__
-#endif
-
 /*
  *  Deferred floating point context switches are not currently
  *  supported when in SMP configuration.
@@ -463,28 +451,6 @@ SCORE_EXTERN Objects_Information _Thread_Internal_information;
 SCORE_EXTERN Context_Control _Thread_BSP_context;
 
 /**
- *  The following declares the dispatch critical section nesting
- *  counter which is used to prevent context switches at inopportune
- *  moments.
- */
-SCORE_EXTERN volatile uint32_t   _Thread_Dispatch_disable_level;
-
-#if defined(RTEMS_SMP)
-  typedef struct {
-    SMP_lock_Control lock;
-    int owner_cpu;
-    int nest_level;
-  } Thread_Dispatch_disable_level_lock_control;
-
-  /**
-   * The following declares the smp spinlock to be used to control
-   * the dispatch critical section accesses across cpus.
-   */
-  SCORE_EXTERN Thread_Dispatch_disable_level_lock_control
-    _Thread_Dispatch_disable_level_lock;
-#endif
-
-/**
  *  The following holds how many user extensions are in the system.  This
  *  is used to determine how many user extension data areas to allocate
  *  per thread.
@@ -903,57 +869,6 @@ void _Thread_blocking_operation_Cancel(
   Thread_Control                   *the_thread,
   ISR_Level                         level
 );
-#if defined(RTEMS_SMP)
-
-  /**
-   *  @brief Initializes the thread dispatching subsystem.
-   *
-   *  This routine initializes the thread dispatching subsystem.
-   */
-  void _Thread_Dispatch_initialization(void);
-
-  /**
-   *  @brief Checks if thread dispatch says that we are in a critical section.
-   *
-   * This routine returns true if thread dispatch indicates
-   * that we are in a critical section.
-   */
-  bool _Thread_Dispatch_in_critical_section(void);
-
-  /**
-   *  @brief Returns value of the the thread dispatch level.
-   *
-   * This routine returns value of the the thread dispatch level.
-   */
-  uint32_t _Thread_Dispatch_get_disable_level(void);
-
-  /**
-   *  @brief Sets thread dispatch level to the value passed in.
-   *
-   * This routine sets thread dispatch level to the
-   * value passed in.
-   */
-  uint32_t _Thread_Dispatch_set_disable_level(uint32_t value);
-
-  /**
-   *  @brief Increments the thread dispatch level.
-   *
-   * This rountine increments the thread dispatch level
-   */
-  uint32_t _Thread_Dispatch_increment_disable_level(void);
-
-  /**
-   *  @brief Decrements the thread dispatch level.
-   *
-   * This routine decrements the thread dispatch level.
-   */
-  uint32_t _Thread_Dispatch_decrement_disable_level(void);
-
-#else
-  /*
-   * The _Thread_Dispatch_... functions are in thread.inl
-   */
-#endif
 
 #ifndef __RTEMS_APPLICATION__
 #include <rtems/score/thread.inl>
diff --git a/cpukit/score/include/rtems/score/threaddispatch.h b/cpukit/score/include/rtems/score/threaddispatch.h
new file mode 100644
index 0000000..5e39f8d
--- /dev/null
+++ b/cpukit/score/include/rtems/score/threaddispatch.h
@@ -0,0 +1,244 @@
+/**
+ * @brief Constants and Structures Related with Thread Dispatch
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2009.
+ * 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_THREADDISPATCH_H
+#define _RTEMS_SCORE_THREADDISPATCH_H
+
+#include <rtems/score/cpu.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#if defined(RTEMS_SMP) || \
+    defined(RTEMS_HEAVY_STACK_DEBUG) || \
+    defined(RTEMS_HEAVY_MALLOC_DEBUG)
+  #define __THREAD_DO_NOT_INLINE_DISABLE_DISPATCH__
+#endif
+
+#if defined(RTEMS_SMP) || \
+   (CPU_INLINE_ENABLE_DISPATCH == FALSE) || \
+   (__RTEMS_DO_NOT_INLINE_THREAD_ENABLE_DISPATCH__ == 1)
+  #define __THREAD_DO_NOT_INLINE_ENABLE_DISPATCH__
+#endif
+
+/**
+ * @addtogroup ScoreThread
+ *
+ * @{
+ */
+
+/**
+ *  The following declares the dispatch critical section nesting
+ *  counter which is used to prevent context switches at inopportune
+ *  moments.
+ */
+SCORE_EXTERN volatile uint32_t   _Thread_Dispatch_disable_level;
+
+#if defined(RTEMS_SMP)
+  typedef struct {
+    SMP_lock_Control lock;
+    int owner_cpu;
+    int nest_level;
+  } Thread_Dispatch_disable_level_lock_control;
+
+  /**
+   * The following declares the smp spinlock to be used to control
+   * the dispatch critical section accesses across cpus.
+   */
+  SCORE_EXTERN Thread_Dispatch_disable_level_lock_control
+    _Thread_Dispatch_disable_level_lock;
+
+  /**
+   *  @brief Initializes the thread dispatching subsystem.
+   *
+   *  This routine initializes the thread dispatching subsystem.
+   */
+  void _Thread_Dispatch_initialization(void);
+
+  /**
+   *  @brief Checks if thread dispatch says that we are in a critical section.
+   *
+   * This routine returns true if thread dispatch indicates
+   * that we are in a critical section.
+   */
+  bool _Thread_Dispatch_in_critical_section(void);
+
+  /**
+   *  @brief Returns value of the the thread dispatch level.
+   *
+   * This routine returns value of the the thread dispatch level.
+   */
+  uint32_t _Thread_Dispatch_get_disable_level(void);
+
+  /**
+   *  @brief Sets thread dispatch level to the value passed in.
+   *
+   * This routine sets thread dispatch level to the
+   * value passed in.
+   */
+  uint32_t _Thread_Dispatch_set_disable_level(uint32_t value);
+
+  /**
+   *  @brief Increments the thread dispatch level.
+   *
+   * This rountine increments the thread dispatch level
+   */
+  uint32_t _Thread_Dispatch_increment_disable_level(void);
+
+  /**
+   *  @brief Decrements the thread dispatch level.
+   *
+   * This routine decrements the thread dispatch level.
+   */
+  uint32_t _Thread_Dispatch_decrement_disable_level(void);
+#else /* RTEMS_SMP */
+  /**
+   * @brief _Thread_Dispatch_in_critical_section
+   *
+   * This routine returns true if thread dispatch indicates
+   * that we are in a critical section.
+   */
+  RTEMS_INLINE_ROUTINE bool _Thread_Dispatch_in_critical_section(void)
+  {
+     if (  _Thread_Dispatch_disable_level == 0 )
+      return false;
+
+     return true;
+  }
+
+  /**
+   * @brief Get thread dispatch disable level.
+   *
+   * This routine returns value of the the thread dispatch level.
+   */
+  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_get_disable_level(void)
+  {
+    return _Thread_Dispatch_disable_level;
+  }
+
+  /**
+   * @brief Set thread dispatch disable level.
+   *
+   * This routine sets thread dispatch level to the
+   * value passed in.
+   */
+  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
+  {
+    _Thread_Dispatch_disable_level = value;
+    return value;
+  }
+
+  /**
+   * @brief Increase thread dispatch disable level.
+   *
+   * This rountine increments the thread dispatch level
+   */
+  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_increment_disable_level(void)
+  {
+    uint32_t level = _Thread_Dispatch_disable_level;
+
+    ++level;
+    _Thread_Dispatch_disable_level = level;
+
+    return level;
+  }
+
+  /**
+   * @brief Decrease thread dispatch disable level.
+   *
+   * This routine decrements the thread dispatch level.
+   */
+  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_decrement_disable_level(void)
+  {
+    uint32_t level = _Thread_Dispatch_disable_level;
+
+    --level;
+    _Thread_Dispatch_disable_level = level;
+
+    return level;
+  }
+
+  /**
+   * @brief Thread dispatch initialization.
+   *
+   * This routine initializes the thread dispatching subsystem.
+   */
+  RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
+  {
+    _Thread_Dispatch_set_disable_level( 1 );
+  }
+#endif /* RTEMS_SMP */
+
+/**
+ * This routine prevents dispatching.
+ */
+
+#if defined ( __THREAD_DO_NOT_INLINE_DISABLE_DISPATCH__ )
+void _Thread_Disable_dispatch( void );
+#else
+RTEMS_INLINE_ROUTINE void _Thread_Disable_dispatch( void )
+{
+  _Thread_Dispatch_increment_disable_level();
+  RTEMS_COMPILER_MEMORY_BARRIER();
+}
+#endif
+
+/**
+ * This routine allows dispatching to occur again.  If this is
+ * the outer most dispatching critical section, then a dispatching
+ * operation will be performed and, if necessary, control of the
+ * processor will be transferred to the heir thread.
+ */
+
+#if defined ( __THREAD_DO_NOT_INLINE_ENABLE_DISPATCH__ )
+  void _Thread_Enable_dispatch( void );
+#else
+  /* inlining of enable dispatching must be true */
+  RTEMS_INLINE_ROUTINE void _Thread_Enable_dispatch( void )
+  {
+    RTEMS_COMPILER_MEMORY_BARRIER();
+    if ( _Thread_Dispatch_decrement_disable_level() == 0 )
+      _Thread_Dispatch();
+  }
+#endif
+
+/**
+ * This routine allows dispatching to occur again.  However,
+ * no dispatching operation is performed even if this is the outer
+ * most dispatching critical section.
+ */
+
+RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )
+{
+  RTEMS_COMPILER_MEMORY_BARRIER();
+  _Thread_Dispatch_decrement_disable_level();
+}
+
+/**
+ * This function returns true if dispatching is disabled, and false
+ * otherwise.
+ */
+
+RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )
+{
+  return  ( _Thread_Dispatch_in_critical_section() == false );
+}
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _RTEMS_SCORE_THREADDISPATCH_H */
diff --git a/cpukit/score/inline/rtems/score/coremutex.inl b/cpukit/score/inline/rtems/score/coremutex.inl
index d34a967..591cded 100644
--- a/cpukit/score/inline/rtems/score/coremutex.inl
+++ b/cpukit/score/inline/rtems/score/coremutex.inl
@@ -23,6 +23,8 @@
 #ifndef _RTEMS_SCORE_COREMUTEX_INL
 #define _RTEMS_SCORE_COREMUTEX_INL
 
+#include <rtems/score/threaddispatch.h>
+
 /**
  * @addtogroup ScoreMutex
  */
diff --git a/cpukit/score/inline/rtems/score/coresem.inl b/cpukit/score/inline/rtems/score/coresem.inl
index aa021eb..0ae3b33 100644
--- a/cpukit/score/inline/rtems/score/coresem.inl
+++ b/cpukit/score/inline/rtems/score/coresem.inl
@@ -29,6 +29,7 @@
 /**@{**/
 
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 
 /**
diff --git a/cpukit/score/inline/rtems/score/object.inl b/cpukit/score/inline/rtems/score/object.inl
index 726d676..efdb23d 100644
--- a/cpukit/score/inline/rtems/score/object.inl
+++ b/cpukit/score/inline/rtems/score/object.inl
@@ -23,6 +23,8 @@
 #ifndef _RTEMS_SCORE_OBJECT_INL
 #define _RTEMS_SCORE_OBJECT_INL
 
+#include <rtems/score/threaddispatch.h>
+
 /**
  * This function builds an object's id from the processor node and index
  * values specified.
diff --git a/cpukit/score/inline/rtems/score/thread.inl b/cpukit/score/inline/rtems/score/thread.inl
index a42da1d..e6e1929 100644
--- a/cpukit/score/inline/rtems/score/thread.inl
+++ b/cpukit/score/inline/rtems/score/thread.inl
@@ -31,91 +31,6 @@
  */
 /**@{**/
 
-#if defined(RTEMS_SMP)
-
-  /*
-   * The _Thread_Dispatch_... functions are prototyped in thread.h.
-   */
-
-#else
-
-  /**
- * @brief _Thread_Dispatch_in_critical_section
-   *
-   * This routine returns true if thread dispatch indicates
-   * that we are in a critical section.
-   */
-  RTEMS_INLINE_ROUTINE bool _Thread_Dispatch_in_critical_section(void)
-  {
-     if (  _Thread_Dispatch_disable_level == 0 )
-      return false;
-
-     return true;
-  }
-
-  /**
-   * @brief Get thread dispatch disable level.
-   *
-   * This routine returns value of the the thread dispatch level.
-   */
-  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_get_disable_level(void)
-  {
-    return _Thread_Dispatch_disable_level;
-  }
-
-  /**
-   * @brief Set thread dispatch disable level.
-   *
-   * This routine sets thread dispatch level to the
-   * value passed in.
-   */
-  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
-  {
-    _Thread_Dispatch_disable_level = value;
-    return value;
-  }
-
-  /**
-   * @brief Increase thread dispatch disable level.
-   *
-   * This rountine increments the thread dispatch level
-   */
-  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_increment_disable_level(void)
-  {
-    uint32_t level = _Thread_Dispatch_disable_level;
-
-    ++level;
-    _Thread_Dispatch_disable_level = level;
-
-    return level;
-  }
-
-  /**
-   * @brief Decrease thread dispatch disable level.
-   *
-   * This routine decrements the thread dispatch level.
-   */
-  RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_decrement_disable_level(void)
-  {
-    uint32_t level = _Thread_Dispatch_disable_level;
-
-    --level;
-    _Thread_Dispatch_disable_level = level;
-
-    return level;
-  }
-
-  /**
-   * @brief Thread dispatch initialization.
-   *
-   * This routine initializes the thread dispatching subsystem.
-   */
-  RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
-  {
-    _Thread_Dispatch_set_disable_level( 1 );
-  }
-
-#endif
 
 /**
  * This routine halts multitasking and returns control to
@@ -237,61 +152,6 @@ RTEMS_INLINE_ROUTINE void _Thread_Deallocate_fp( void )
 #endif
 
 /**
- * This routine prevents dispatching.
- */
-
-#if defined ( __THREAD_DO_NOT_INLINE_DISABLE_DISPATCH__ )
-void _Thread_Disable_dispatch( void );
-#else
-RTEMS_INLINE_ROUTINE void _Thread_Disable_dispatch( void )
-{
-  _Thread_Dispatch_increment_disable_level();
-  RTEMS_COMPILER_MEMORY_BARRIER();
-}
-#endif
-
-/**
- * This routine allows dispatching to occur again.  If this is
- * the outer most dispatching critical section, then a dispatching
- * operation will be performed and, if necessary, control of the
- * processor will be transferred to the heir thread.
- */
-
-#if defined ( __THREAD_DO_NOT_INLINE_ENABLE_DISPATCH__ )
-  void _Thread_Enable_dispatch( void );
-#else
-  /* inlining of enable dispatching must be true */
-  RTEMS_INLINE_ROUTINE void _Thread_Enable_dispatch( void )
-  {
-    RTEMS_COMPILER_MEMORY_BARRIER();
-    if ( _Thread_Dispatch_decrement_disable_level() == 0 )
-      _Thread_Dispatch();
-  }
-#endif
-
-/**
- * This routine allows dispatching to occur again.  However,
- * no dispatching operation is performed even if this is the outer
- * most dispatching critical section.
- */
-
-RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )
-{
-  RTEMS_COMPILER_MEMORY_BARRIER();
-  _Thread_Dispatch_decrement_disable_level();
-}
-
-/**
- * This function returns true if dispatching is disabled, and false
- * otherwise.
- */
-
-RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )
-{
-  return  ( _Thread_Dispatch_in_critical_section() == false );
-}
-
-/**
  * This function returns true if dispatching is disabled, and false
  * otherwise.
  */
diff --git a/cpukit/score/preinstall.am b/cpukit/score/preinstall.am
index 9499f4d..6d796e0 100644
--- a/cpukit/score/preinstall.am
+++ b/cpukit/score/preinstall.am
@@ -159,6 +159,10 @@ $(PROJECT_INCLUDE)/rtems/score/thread.h: include/rtems/score/thread.h $(PROJECT_
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/thread.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/thread.h
 
+$(PROJECT_INCLUDE)/rtems/score/threaddispatch.h: include/rtems/score/threaddispatch.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threaddispatch.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threaddispatch.h
+
 $(PROJECT_INCLUDE)/rtems/score/threadq.h: include/rtems/score/threadq.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadq.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadq.h
diff --git a/cpukit/score/src/corerwlocktimeout.c b/cpukit/score/src/corerwlocktimeout.c
index b5cd4b0..73e93f8 100644
--- a/cpukit/score/src/corerwlocktimeout.c
+++ b/cpukit/score/src/corerwlocktimeout.c
@@ -20,7 +20,7 @@
 
 #include <rtems/system.h>
 #include <rtems/score/corerwlock.h>
-#include <rtems/score/corerwlock.h>
+#include <rtems/score/threaddispatch.h>
 
 void _CORE_RWLock_Timeout(
   Objects_Id  id,
diff --git a/cpukit/score/src/corespinlockwait.c b/cpukit/score/src/corespinlockwait.c
index fa2fb11..6e71a1f 100644
--- a/cpukit/score/src/corespinlockwait.c
+++ b/cpukit/score/src/corespinlockwait.c
@@ -22,6 +22,7 @@
 #include <rtems/score/corespinlock.h>
 #include <rtems/score/states.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/watchdog.h>
 
 /*
diff --git a/cpukit/score/src/coretodset.c b/cpukit/score/src/coretodset.c
index 57a7d45..b141e28 100644
--- a/cpukit/score/src/coretodset.c
+++ b/cpukit/score/src/coretodset.c
@@ -21,6 +21,7 @@
 #include <rtems/system.h>
 #include <rtems/score/object.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/timestamp.h>
 #include <rtems/score/tod.h>
 #include <rtems/score/watchdog.h>
diff --git a/cpukit/score/src/isrsmp.c b/cpukit/score/src/isrsmp.c
index 7fb3f75..9244287 100644
--- a/cpukit/score/src/isrsmp.c
+++ b/cpukit/score/src/isrsmp.c
@@ -21,6 +21,7 @@
 #include <rtems/system.h>
 #include <rtems/score/isr.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/smp.h>
 
 void _ISR_SMP_Initialize(void)
diff --git a/cpukit/score/src/schedulercbsattachthread.c b/cpukit/score/src/schedulercbsattachthread.c
index 56602a2..5a9ba04 100644
--- a/cpukit/score/src/schedulercbsattachthread.c
+++ b/cpukit/score/src/schedulercbsattachthread.c
@@ -22,6 +22,7 @@
 #include <rtems/config.h>
 #include <rtems/score/scheduler.h>
 #include <rtems/score/schedulercbs.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/rtems/object.h>
 
 int _Scheduler_CBS_Attach_thread (
diff --git a/cpukit/score/src/schedulercbsdetachthread.c b/cpukit/score/src/schedulercbsdetachthread.c
index 8be62f7..f4ce602 100644
--- a/cpukit/score/src/schedulercbsdetachthread.c
+++ b/cpukit/score/src/schedulercbsdetachthread.c
@@ -23,6 +23,7 @@
 #include <rtems/config.h>
 #include <rtems/score/scheduler.h>
 #include <rtems/score/schedulercbs.h>
+#include <rtems/score/threaddispatch.h>
 
 int _Scheduler_CBS_Detach_thread (
   Scheduler_CBS_Server_id server_id,
diff --git a/cpukit/score/src/schedulercbsgetexecutiontime.c b/cpukit/score/src/schedulercbsgetexecutiontime.c
index c2c0a3e..005cd32 100644
--- a/cpukit/score/src/schedulercbsgetexecutiontime.c
+++ b/cpukit/score/src/schedulercbsgetexecutiontime.c
@@ -23,6 +23,7 @@
 #include <rtems/config.h>
 #include <rtems/score/scheduler.h>
 #include <rtems/score/schedulercbs.h>
+#include <rtems/score/threaddispatch.h>
 
 int _Scheduler_CBS_Get_execution_time (
   Scheduler_CBS_Server_id   server_id,
diff --git a/cpukit/score/src/schedulercbsgetremainingbudget.c b/cpukit/score/src/schedulercbsgetremainingbudget.c
index 2d79995..892c371 100644
--- a/cpukit/score/src/schedulercbsgetremainingbudget.c
+++ b/cpukit/score/src/schedulercbsgetremainingbudget.c
@@ -22,6 +22,7 @@
 #include <rtems/config.h>
 #include <rtems/score/scheduler.h>
 #include <rtems/score/schedulercbs.h>
+#include <rtems/score/threaddispatch.h>
 
 int _Scheduler_CBS_Get_remaining_budget (
   Scheduler_CBS_Server_id  server_id,
diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c
index 6f1bc55..d8ceba4 100644
--- a/cpukit/score/src/smp.c
+++ b/cpukit/score/src/smp.c
@@ -22,6 +22,7 @@
 #include <rtems/bspsmp.h>
 #include <rtems/score/smp.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 
 #if defined(RTEMS_DEBUG)
   #include <rtems/bspIo.h>
diff --git a/cpukit/score/src/threadclose.c b/cpukit/score/src/threadclose.c
index 05abcef..73fff78 100644
--- a/cpukit/score/src/threadclose.c
+++ b/cpukit/score/src/threadclose.c
@@ -29,6 +29,7 @@
 #include <rtems/score/states.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/score/src/threaddelayended.c b/cpukit/score/src/threaddelayended.c
index a050669..2750fb7 100644
--- a/cpukit/score/src/threaddelayended.c
+++ b/cpukit/score/src/threaddelayended.c
@@ -28,6 +28,7 @@
 #include <rtems/score/states.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 #include <rtems/score/wkspace.h>
 
diff --git a/cpukit/score/src/threaddisabledispatch.c b/cpukit/score/src/threaddisabledispatch.c
index 779547d..d89bc92 100644
--- a/cpukit/score/src/threaddisabledispatch.c
+++ b/cpukit/score/src/threaddisabledispatch.c
@@ -22,6 +22,7 @@
 
 #include <rtems/system.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 
 #if defined ( __THREAD_DO_NOT_INLINE_DISABLE_DISPATCH__ )
 void _Thread_Disable_dispatch( void )
diff --git a/cpukit/score/src/threaddispatch.c b/cpukit/score/src/threaddispatch.c
index 66c7bdc..4856f8e 100644
--- a/cpukit/score/src/threaddispatch.c
+++ b/cpukit/score/src/threaddispatch.c
@@ -28,6 +28,7 @@
 #include <rtems/score/states.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/score/src/threaddispatchdisablelevel.c b/cpukit/score/src/threaddispatchdisablelevel.c
index b193090..ee1bfeb 100644
--- a/cpukit/score/src/threaddispatchdisablelevel.c
+++ b/cpukit/score/src/threaddispatchdisablelevel.c
@@ -24,7 +24,7 @@
 #include <rtems/score/priority.h>
 #include <rtems/score/states.h>
 #include <rtems/score/sysstate.h>
-#include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 
 #define NO_OWNER_CPU (-1)
 
diff --git a/cpukit/score/src/threadget.c b/cpukit/score/src/threadget.c
index 4bef868..69551f0 100644
--- a/cpukit/score/src/threadget.c
+++ b/cpukit/score/src/threadget.c
@@ -29,6 +29,7 @@
 #include <rtems/score/states.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 
 Thread_Control *_Thread_Get (
diff --git a/cpukit/score/src/threadhandler.c b/cpukit/score/src/threadhandler.c
index e4f124c..f21722a 100644
--- a/cpukit/score/src/threadhandler.c
+++ b/cpukit/score/src/threadhandler.c
@@ -28,6 +28,7 @@
 #include <rtems/score/states.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/score/src/threadqtimeout.c b/cpukit/score/src/threadqtimeout.c
index c1f62cf..4792666 100644
--- a/cpukit/score/src/threadqtimeout.c
+++ b/cpukit/score/src/threadqtimeout.c
@@ -24,6 +24,7 @@
 #include <rtems/score/object.h>
 #include <rtems/score/states.h>
 #include <rtems/score/thread.h>
+#include <rtems/score/threaddispatch.h>
 #include <rtems/score/threadq.h>
 #include <rtems/score/tqdata.h>
 
-- 
1.7.7




More information about the devel mailing list