summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-23 14:56:00 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-23 15:12:55 +0200
commitc40482815ec85bc9ef802570498a8abe8baef865 (patch)
tree50a529eac444f2ccd6c2635fba7b8d63ebb33fd9
parentrtems: Create region implementation header (diff)
downloadrtems-c40482815ec85bc9ef802570498a8abe8baef865.tar.bz2
rtems: Create tasks implementation header
Move implementation specific parts of tasks.h and tasks.inl into new header file tasksimpl.h. The tasks.h contains now only the application visible API.
-rw-r--r--cpukit/libcsupport/src/resource_snapshot.c1
-rw-r--r--cpukit/libmisc/monitor/mon-object.c1
-rw-r--r--cpukit/rtems/Makefile.am3
-rw-r--r--cpukit/rtems/include/rtems/rtems/taskmp.h12
-rw-r--r--cpukit/rtems/include/rtems/rtems/tasks.h107
-rw-r--r--cpukit/rtems/include/rtems/rtems/tasksimpl.h142
-rw-r--r--cpukit/rtems/inline/rtems/rtems/tasks.inl84
-rw-r--r--cpukit/rtems/preinstall.am8
-rw-r--r--cpukit/rtems/src/taskcreate.c2
-rw-r--r--cpukit/rtems/src/taskdata.c3
-rw-r--r--cpukit/rtems/src/taskdelete.c2
-rw-r--r--cpukit/rtems/src/taskgetnote.c2
-rw-r--r--cpukit/rtems/src/taskident.c2
-rw-r--r--cpukit/rtems/src/taskinitusers.c2
-rw-r--r--cpukit/rtems/src/taskissuspended.c2
-rw-r--r--cpukit/rtems/src/taskmode.c2
-rw-r--r--cpukit/rtems/src/taskmp.c2
-rw-r--r--cpukit/rtems/src/taskrestart.c2
-rw-r--r--cpukit/rtems/src/taskresume.c2
-rw-r--r--cpukit/rtems/src/tasks.c2
-rw-r--r--cpukit/rtems/src/taskself.c2
-rw-r--r--cpukit/rtems/src/tasksetnote.c2
-rw-r--r--cpukit/rtems/src/tasksetpriority.c2
-rw-r--r--cpukit/rtems/src/taskstart.c2
-rw-r--r--cpukit/rtems/src/tasksuspend.c2
-rw-r--r--cpukit/rtems/src/taskvariable_invoke_dtor.c2
-rw-r--r--cpukit/rtems/src/taskvariableadd.c2
-rw-r--r--cpukit/rtems/src/taskvariabledelete.c2
-rw-r--r--cpukit/rtems/src/taskvariableget.c2
-rw-r--r--cpukit/rtems/src/taskwakeafter.c2
-rw-r--r--cpukit/rtems/src/taskwakewhen.c2
-rw-r--r--cpukit/rtems/src/timerserver.c2
-rw-r--r--cpukit/sapi/src/rtemsapi.c2
-rw-r--r--testsuites/sptests/sp09/screen01.c2
-rw-r--r--testsuites/sptests/spobjgetnext/init.c2
-rw-r--r--testsuites/sptests/spsize/size.c4
36 files changed, 216 insertions, 201 deletions
diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c
index b71b198cf3..f283aad4b8 100644
--- a/cpukit/libcsupport/src/resource_snapshot.c
+++ b/cpukit/libcsupport/src/resource_snapshot.c
@@ -34,6 +34,7 @@
#include <rtems/rtems/ratemonimpl.h>
#include <rtems/rtems/regionimpl.h>
#include <rtems/rtems/semimpl.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/rtems/timerimpl.h>
#ifdef RTEMS_POSIX_API
diff --git a/cpukit/libmisc/monitor/mon-object.c b/cpukit/libmisc/monitor/mon-object.c
index 54ae2074b8..bac8eeec59 100644
--- a/cpukit/libmisc/monitor/mon-object.c
+++ b/cpukit/libmisc/monitor/mon-object.c
@@ -25,6 +25,7 @@
#include <rtems/rtems/partimpl.h>
#include <rtems/rtems/regionimpl.h>
#include <rtems/rtems/semimpl.h>
+#include <rtems/rtems/tasksimpl.h>
#if defined(RTEMS_POSIX_API)
#include <rtems/posix/pthreadimpl.h>
#endif
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am
index 7633932896..7a14943bf6 100644
--- a/cpukit/rtems/Makefile.am
+++ b/cpukit/rtems/Makefile.am
@@ -50,6 +50,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/status.h
include_rtems_rtems_HEADERS += include/rtems/rtems/statusimpl.h
include_rtems_rtems_HEADERS += include/rtems/rtems/support.h
include_rtems_rtems_HEADERS += include/rtems/rtems/tasks.h
+include_rtems_rtems_HEADERS += include/rtems/rtems/tasksimpl.h
include_rtems_rtems_HEADERS += include/rtems/rtems/timer.h
include_rtems_rtems_HEADERS += include/rtems/rtems/timerimpl.h
include_rtems_rtems_HEADERS += include/rtems/rtems/types.h
@@ -70,8 +71,6 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/signalmp.h
include_rtems_rtems_HEADERS += include/rtems/rtems/taskmp.h
endif
-include_rtems_rtems_HEADERS += inline/rtems/rtems/tasks.inl
-
## src
librtems_a_SOURCES = src/rtemsbuildid.c
librtems_a_SOURCES += src/rtemsbuildname.c
diff --git a/cpukit/rtems/include/rtems/rtems/taskmp.h b/cpukit/rtems/include/rtems/rtems/taskmp.h
index 01a283b2f5..4102b9c74d 100644
--- a/cpukit/rtems/include/rtems/rtems/taskmp.h
+++ b/cpukit/rtems/include/rtems/rtems/taskmp.h
@@ -21,13 +21,20 @@
#ifndef _RTEMS_RTEMS_TASKMP_H
#define _RTEMS_RTEMS_TASKMP_H
+#ifndef _RTEMS_RTEMS_TASKSIMPL_H
+# error "Never use <rtems/rtems/taskmp.h> directly; include <rtems/rtems/tasksimpl.h> instead."
+#endif
+
#include <rtems/score/mppkt.h>
#include <rtems/score/object.h>
#include <rtems/rtems/options.h>
#include <rtems/score/priority.h>
-#include <rtems/rtems/tasks.h>
#include <rtems/score/thread.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/**
* @defgroup ClassicTaskMP Task MP Support
*
@@ -37,9 +44,6 @@
*/
/**@{*/
-#ifdef __cplusplus
-extern "C" {
-#endif
/**
* The following enumerated type defines the list of
* remote task operations.
diff --git a/cpukit/rtems/include/rtems/rtems/tasks.h b/cpukit/rtems/include/rtems/rtems/tasks.h
index 3be3aebe7c..c5d20c81e5 100644
--- a/cpukit/rtems/include/rtems/rtems/tasks.h
+++ b/cpukit/rtems/include/rtems/rtems/tasks.h
@@ -48,16 +48,8 @@
#include <rtems/rtems/attr.h>
#include <rtems/rtems/status.h>
-/**
- * @brief Instantiate RTEMS Classic API Tasks Data
- *
- * This constant is defined to extern most of the time when using
- * this header file. However by defining it to nothing, the data
- * declared in this header file can be instantiated. This is done
- * in a single per manager file.
- */
-#ifndef RTEMS_TASKS_EXTERN
-#define RTEMS_TASKS_EXTERN extern
+#ifdef __cplusplus
+extern "C" {
#endif
/**
@@ -71,10 +63,6 @@
*/
/**@{*/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/**
* Constant to be used as the ID of current task
*/
@@ -209,51 +197,6 @@ typedef struct {
} rtems_initialization_tasks_table;
/**
- * This is the API specific information required by each thread for
- * the RTEMS API to function correctly.
- *
- * @note Notepads must be the last entry in the structure and memory
- * will be taken away from this structure when allocated if
- * notespads are disabled by the application configuration.
- */
-typedef struct {
- /** This field contains the event control for this task. */
- Event_Control Event;
- /** This field contains the system event control for this task. */
- Event_Control System_event;
- /** This field contains the Classic API Signal information for this task. */
- ASR_Information Signal;
- /**
- * This field contains the notepads for this task.
- *
- * @note MUST BE LAST ENTRY.
- */
- uint32_t Notepads[ RTEMS_NUMBER_NOTEPADS ];
-} RTEMS_API_Control;
-
-/**
- * The following instantiates the information control block used to
- * manage this class of objects.
- */
-RTEMS_TASKS_EXTERN Objects_Information _RTEMS_tasks_Information;
-
-/**
- * When the user configures a set of Classic API initialization tasks,
- * This variable will point to the method used to initialize them.
- *
- * @note It is instantiated and initialized by confdefs.h based upon
- * application requirements.
- */
-extern void (*_RTEMS_tasks_Initialize_user_tasks_p)(void);
-
-/**
- * @brief RTEMS Task Manager Initialization
- *
- * This routine initializes all Task Manager related data structures.
- */
-void _RTEMS_tasks_Manager_initialization(void);
-
-/**
* @brief RTEMS Task Create
*
* This routine implements the rtems_task_create directive. The task
@@ -555,24 +498,39 @@ rtems_status_code rtems_task_variable_delete(
*/
rtems_id rtems_task_self(void);
+/**@}*/
+
/**
- * @brief RTEMS User Task Initialization
+ * This is the API specific information required by each thread for
+ * the RTEMS API to function correctly.
*
- * This routine creates and starts all configured user
- * initialization threads.
+ * @note Notepads must be the last entry in the structure and memory
+ * will be taken away from this structure when allocated if
+ * notespads are disabled by the application configuration.
*/
-void _RTEMS_tasks_Initialize_user_tasks( void );
+typedef struct {
+ /** This field contains the event control for this task. */
+ Event_Control Event;
+ /** This field contains the system event control for this task. */
+ Event_Control System_event;
+ /** This field contains the Classic API Signal information for this task. */
+ ASR_Information Signal;
+ /**
+ * This field contains the notepads for this task.
+ *
+ * @note MUST BE LAST ENTRY.
+ */
+ uint32_t Notepads[ RTEMS_NUMBER_NOTEPADS ];
+} RTEMS_API_Control;
/**
- * @brief RTEMS Tasks Invoke Task Variable Destructor
+ * When the user configures a set of Classic API initialization tasks,
+ * This variable will point to the method used to initialize them.
*
- * This routine invokes the optional user provided destructor on the
- * task variable and frees the memory for the task variable.
+ * @note It is instantiated and initialized by confdefs.h based upon
+ * application requirements.
*/
-void _RTEMS_Tasks_Invoke_task_variable_dtor(
- Thread_Control *the_thread,
- rtems_task_variable_t *tvp
-);
+extern void (*_RTEMS_tasks_Initialize_user_tasks_p)(void);
/**
* @brief _RTEMS_tasks_Initialize_user_tasks_body
@@ -589,18 +547,9 @@ void _RTEMS_Tasks_Invoke_task_variable_dtor(
extern void _RTEMS_tasks_Initialize_user_tasks_body( void );
-#ifndef __RTEMS_APPLICATION__
-#include <rtems/rtems/tasks.inl>
-#endif
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/taskmp.h>
-#endif
-
#ifdef __cplusplus
}
#endif
-/**@}*/
-
#endif
/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/tasksimpl.h b/cpukit/rtems/include/rtems/rtems/tasksimpl.h
new file mode 100644
index 0000000000..830a82a283
--- /dev/null
+++ b/cpukit/rtems/include/rtems/rtems/tasksimpl.h
@@ -0,0 +1,142 @@
+/**
+ * @file
+ *
+ * @ingroup ClassicTasksImpl
+ *
+ * @brief Classic Tasks Manager Implementation
+ */
+
+/* COPYRIGHT (c) 1989-2008.
+ * 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_RTEMS_TASKSIMPL_H
+#define _RTEMS_RTEMS_TASKSIMPL_H
+
+#include <rtems/rtems/tasks.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup ClassicTasksImpl Classic Tasks Manager Implementation
+ *
+ * @ingroup ClassicTasks
+ *
+ * @{
+ */
+
+/**
+ * @brief Instantiate RTEMS Classic API Tasks Data
+ *
+ * This constant is defined to extern most of the time when using
+ * this header file. However by defining it to nothing, the data
+ * declared in this header file can be instantiated. This is done
+ * in a single per manager file.
+ */
+#ifndef RTEMS_TASKS_EXTERN
+#define RTEMS_TASKS_EXTERN extern
+#endif
+
+/**
+ * The following instantiates the information control block used to
+ * manage this class of objects.
+ */
+RTEMS_TASKS_EXTERN Objects_Information _RTEMS_tasks_Information;
+
+/**
+ * @brief RTEMS Task Manager Initialization
+ *
+ * This routine initializes all Task Manager related data structures.
+ */
+void _RTEMS_tasks_Manager_initialization(void);
+
+/**
+ * @brief RTEMS User Task Initialization
+ *
+ * This routine creates and starts all configured user
+ * initialization threads.
+ */
+void _RTEMS_tasks_Initialize_user_tasks( void );
+
+/**
+ * @brief RTEMS Tasks Invoke Task Variable Destructor
+ *
+ * This routine invokes the optional user provided destructor on the
+ * task variable and frees the memory for the task variable.
+ */
+void _RTEMS_Tasks_Invoke_task_variable_dtor(
+ Thread_Control *the_thread,
+ rtems_task_variable_t *tvp
+);
+
+/**
+ * @brief Allocates a task control block.
+ *
+ * This function allocates a task control block from
+ * the inactive chain of free task control blocks.
+ */
+RTEMS_INLINE_ROUTINE Thread_Control *_RTEMS_tasks_Allocate( void )
+{
+ return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information );
+}
+
+/**
+ * @brief Frees a task control block.
+ *
+ * This routine frees a task control block to the
+ * inactive chain of free task control blocks.
+ */
+RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (
+ Thread_Control *the_task
+)
+{
+ _Objects_Free(
+ _Objects_Get_information_id( the_task->Object.id ),
+ &the_task->Object
+ );
+}
+
+/**
+ * @brief Converts an RTEMS API priority into a core priority.
+ *
+ * This function converts an RTEMS API priority into a core priority.
+ */
+RTEMS_INLINE_ROUTINE Priority_Control _RTEMS_tasks_Priority_to_Core(
+ rtems_task_priority priority
+)
+{
+ return (Priority_Control) priority;
+}
+
+/**
+ * @brief Checks whether the priority is a valid user task.
+ *
+ * This function returns TRUE if the_priority is a valid user task priority
+ * and FALSE otherwise.
+ */
+RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (
+ rtems_task_priority the_priority
+)
+{
+ return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&
+ ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );
+}
+
+/**@}*/
+
+#if defined(RTEMS_MULTIPROCESSING)
+#include <rtems/rtems/taskmp.h>
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/tasks.inl b/cpukit/rtems/inline/rtems/rtems/tasks.inl
deleted file mode 100644
index 3bf82121d7..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/tasks.inl
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * @file rtems/rtems/tasks.inl
- *
- * This file contains the static inline implementation of all inlined
- * routines in the with RTEMS Tasks Manager.
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * 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_RTEMS_TASKS_H
-# error "Never use <rtems/rtems/tasks.inl> directly; include <rtems/rtems/tasks.h> instead."
-#endif
-
-#ifndef _RTEMS_RTEMS_TASKS_INL
-#define _RTEMS_RTEMS_TASKS_INL
-
-/**
- * @addtogroup ClassicTasks
- * @{
- */
-
-/**
- * @brief Allocates a task control block.
- *
- * This function allocates a task control block from
- * the inactive chain of free task control blocks.
- */
-RTEMS_INLINE_ROUTINE Thread_Control *_RTEMS_tasks_Allocate( void )
-{
- return (Thread_Control *) _Objects_Allocate( &_RTEMS_tasks_Information );
-}
-
-/**
- * @brief Frees a task control block.
- *
- * This routine frees a task control block to the
- * inactive chain of free task control blocks.
- */
-RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (
- Thread_Control *the_task
-)
-{
- _Objects_Free(
- _Objects_Get_information_id( the_task->Object.id ),
- &the_task->Object
- );
-}
-
-/**
- * @brief Converts an RTEMS API priority into a core priority.
- *
- * This function converts an RTEMS API priority into a core priority.
- */
-RTEMS_INLINE_ROUTINE Priority_Control _RTEMS_tasks_Priority_to_Core(
- rtems_task_priority priority
-)
-{
- return (Priority_Control) priority;
-}
-
-/**
- * @brief Checks whether the priority is a valid user task.
- *
- * This function returns TRUE if the_priority is a valid user task priority
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (
- rtems_task_priority the_priority
-)
-{
- return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&
- ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );
-}
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am
index 6ba32afcc1..c3ebbec9ae 100644
--- a/cpukit/rtems/preinstall.am
+++ b/cpukit/rtems/preinstall.am
@@ -171,6 +171,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/tasks.h: include/rtems/rtems/tasks.h $(PROJECT_IN
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasks.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasks.h
+$(PROJECT_INCLUDE)/rtems/rtems/tasksimpl.h: include/rtems/rtems/tasksimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasksimpl.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasksimpl.h
+
$(PROJECT_INCLUDE)/rtems/rtems/timer.h: include/rtems/rtems/timer.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timer.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timer.h
@@ -225,7 +229,3 @@ $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h: include/rtems/rtems/taskmp.h $(PROJECT_
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
endif
-$(PROJECT_INCLUDE)/rtems/rtems/tasks.inl: inline/rtems/rtems/tasks.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasks.inl
-
diff --git a/cpukit/rtems/src/taskcreate.c b/cpukit/rtems/src/taskcreate.c
index d925d84983..d80e9ed90c 100644
--- a/cpukit/rtems/src/taskcreate.c
+++ b/cpukit/rtems/src/taskcreate.c
@@ -27,7 +27,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskdata.c b/cpukit/rtems/src/taskdata.c
index 2e9666cbb8..4e5d7001c1 100644
--- a/cpukit/rtems/src/taskdata.c
+++ b/cpukit/rtems/src/taskdata.c
@@ -22,5 +22,4 @@
#define RTEMS_TASKS_EXTERN
-#include <rtems/system.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
diff --git a/cpukit/rtems/src/taskdelete.c b/cpukit/rtems/src/taskdelete.c
index 47ee2d156f..0b982246dc 100644
--- a/cpukit/rtems/src/taskdelete.c
+++ b/cpukit/rtems/src/taskdelete.c
@@ -26,7 +26,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskgetnote.c b/cpukit/rtems/src/taskgetnote.c
index f1e6b00bd7..2cfa69c3d1 100644
--- a/cpukit/rtems/src/taskgetnote.c
+++ b/cpukit/rtems/src/taskgetnote.c
@@ -26,7 +26,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskident.c b/cpukit/rtems/src/taskident.c
index fdd7f69f33..44f418df52 100644
--- a/cpukit/rtems/src/taskident.c
+++ b/cpukit/rtems/src/taskident.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskinitusers.c b/cpukit/rtems/src/taskinitusers.c
index 30cc81ae05..ef5cc8729c 100644
--- a/cpukit/rtems/src/taskinitusers.c
+++ b/cpukit/rtems/src/taskinitusers.c
@@ -27,7 +27,7 @@
#include <rtems/rtems/rtemsapi.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskissuspended.c b/cpukit/rtems/src/taskissuspended.c
index 842be740cd..2c05d21719 100644
--- a/cpukit/rtems/src/taskissuspended.c
+++ b/cpukit/rtems/src/taskissuspended.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskmode.c b/cpukit/rtems/src/taskmode.c
index 24e75bbed2..52161eec67 100644
--- a/cpukit/rtems/src/taskmode.c
+++ b/cpukit/rtems/src/taskmode.c
@@ -27,7 +27,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskmp.c b/cpukit/rtems/src/taskmp.c
index c48d9c78c5..78738c2245 100644
--- a/cpukit/rtems/src/taskmp.c
+++ b/cpukit/rtems/src/taskmp.c
@@ -24,7 +24,7 @@
#include <rtems/score/mppkt.h>
#include <rtems/score/object.h>
#include <rtems/rtems/options.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdog.h>
#include <rtems/rtems/support.h>
diff --git a/cpukit/rtems/src/taskrestart.c b/cpukit/rtems/src/taskrestart.c
index dcffc0a0f3..40ad3806b9 100644
--- a/cpukit/rtems/src/taskrestart.c
+++ b/cpukit/rtems/src/taskrestart.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskresume.c b/cpukit/rtems/src/taskresume.c
index 2f59c04383..04a0421c4f 100644
--- a/cpukit/rtems/src/taskresume.c
+++ b/cpukit/rtems/src/taskresume.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
index 1e012114c8..6e85fa76af 100644
--- a/cpukit/rtems/src/tasks.c
+++ b/cpukit/rtems/src/tasks.c
@@ -28,7 +28,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskself.c b/cpukit/rtems/src/taskself.c
index 6fa2335833..348c20ef19 100644
--- a/cpukit/rtems/src/taskself.c
+++ b/cpukit/rtems/src/taskself.c
@@ -19,7 +19,7 @@
#endif
#include <rtems/system.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
rtems_id rtems_task_self(void)
{
diff --git a/cpukit/rtems/src/tasksetnote.c b/cpukit/rtems/src/tasksetnote.c
index 28218cd216..7267d50ccc 100644
--- a/cpukit/rtems/src/tasksetnote.c
+++ b/cpukit/rtems/src/tasksetnote.c
@@ -26,7 +26,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/tasksetpriority.c b/cpukit/rtems/src/tasksetpriority.c
index 29504815a0..369ceef2f6 100644
--- a/cpukit/rtems/src/tasksetpriority.c
+++ b/cpukit/rtems/src/tasksetpriority.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskstart.c b/cpukit/rtems/src/taskstart.c
index e9ff378614..d8baa830e0 100644
--- a/cpukit/rtems/src/taskstart.c
+++ b/cpukit/rtems/src/taskstart.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/tasksuspend.c b/cpukit/rtems/src/tasksuspend.c
index e6f99807e7..d04183d345 100644
--- a/cpukit/rtems/src/tasksuspend.c
+++ b/cpukit/rtems/src/tasksuspend.c
@@ -25,7 +25,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskvariable_invoke_dtor.c b/cpukit/rtems/src/taskvariable_invoke_dtor.c
index 76fc2687d7..db13f0992a 100644
--- a/cpukit/rtems/src/taskvariable_invoke_dtor.c
+++ b/cpukit/rtems/src/taskvariable_invoke_dtor.c
@@ -19,7 +19,7 @@
#endif
#include <rtems/system.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/wkspace.h>
void _RTEMS_Tasks_Invoke_task_variable_dtor(
diff --git a/cpukit/rtems/src/taskvariableadd.c b/cpukit/rtems/src/taskvariableadd.c
index 5443bf24b9..a241a11593 100644
--- a/cpukit/rtems/src/taskvariableadd.c
+++ b/cpukit/rtems/src/taskvariableadd.c
@@ -20,7 +20,7 @@
#include <rtems/system.h>
#include <rtems/config.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/wkspace.h>
rtems_status_code rtems_task_variable_add(
diff --git a/cpukit/rtems/src/taskvariabledelete.c b/cpukit/rtems/src/taskvariabledelete.c
index 65efecbbf8..df5fc62888 100644
--- a/cpukit/rtems/src/taskvariabledelete.c
+++ b/cpukit/rtems/src/taskvariabledelete.c
@@ -20,7 +20,7 @@
#include <rtems/system.h>
#include <rtems/config.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/wkspace.h>
rtems_status_code rtems_task_variable_delete(
diff --git a/cpukit/rtems/src/taskvariableget.c b/cpukit/rtems/src/taskvariableget.c
index c1524a463e..ec6d3c6f75 100644
--- a/cpukit/rtems/src/taskvariableget.c
+++ b/cpukit/rtems/src/taskvariableget.c
@@ -20,7 +20,7 @@
#include <rtems/system.h>
#include <rtems/config.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/wkspace.h>
/*
diff --git a/cpukit/rtems/src/taskwakeafter.c b/cpukit/rtems/src/taskwakeafter.c
index 7bf4c88f1f..6a736c68a8 100644
--- a/cpukit/rtems/src/taskwakeafter.c
+++ b/cpukit/rtems/src/taskwakeafter.c
@@ -26,7 +26,7 @@
#include <rtems/score/scheduler.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/taskwakewhen.c b/cpukit/rtems/src/taskwakewhen.c
index 4f6204ac25..849801f3ff 100644
--- a/cpukit/rtems/src/taskwakewhen.c
+++ b/cpukit/rtems/src/taskwakewhen.c
@@ -26,7 +26,7 @@
#include <rtems/score/object.h>
#include <rtems/score/stack.h>
#include <rtems/score/states.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/threadq.h>
#include <rtems/score/tod.h>
diff --git a/cpukit/rtems/src/timerserver.c b/cpukit/rtems/src/timerserver.c
index 3c57def624..9e66544950 100644
--- a/cpukit/rtems/src/timerserver.c
+++ b/cpukit/rtems/src/timerserver.c
@@ -35,7 +35,7 @@
#include <rtems/score/tod.h>
#include <rtems/score/watchdogimpl.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/rtems/support.h>
#include <rtems/score/thread.h>
diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c
index 11530129ef..b9abb06a5c 100644
--- a/cpukit/sapi/src/rtemsapi.c
+++ b/cpukit/sapi/src/rtemsapi.c
@@ -28,7 +28,7 @@
#include <rtems/rtems/intr.h>
#include <rtems/rtems/barrierimpl.h>
#include <rtems/rtems/clock.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/rtems/dpmemimpl.h>
#include <rtems/rtems/eventimpl.h>
#include <rtems/rtems/messageimpl.h>
diff --git a/testsuites/sptests/sp09/screen01.c b/testsuites/sptests/sp09/screen01.c
index 0a0eec767b..81bebf0f4b 100644
--- a/testsuites/sptests/sp09/screen01.c
+++ b/testsuites/sptests/sp09/screen01.c
@@ -16,6 +16,8 @@
#include "system.h"
+#include <rtems/rtems/tasksimpl.h>
+
void Screen1()
{
uint32_t notepad_value;
diff --git a/testsuites/sptests/spobjgetnext/init.c b/testsuites/sptests/spobjgetnext/init.c
index 037a833a88..c6da26db62 100644
--- a/testsuites/sptests/spobjgetnext/init.c
+++ b/testsuites/sptests/spobjgetnext/init.c
@@ -17,6 +17,8 @@
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 1
#include "system.h"
+#include <rtems/rtems/tasksimpl.h>
+
/* prototypes */
int scan_objects(
Objects_Information *information,
diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c
index 74818bdcf8..2be2ea90f2 100644
--- a/testsuites/sptests/spsize/size.c
+++ b/testsuites/sptests/spsize/size.c
@@ -19,7 +19,7 @@
#include <rtems/score/apiext.h>
#include <rtems/score/copyrt.h>
#include <rtems/rtems/clock.h>
-#include <rtems/rtems/tasks.h>
+#include <rtems/rtems/tasksimpl.h>
#include <rtems/rtems/dpmemimpl.h>
#include <rtems/rtems/eventimpl.h>
#include <rtems/extensionimpl.h>
@@ -379,7 +379,7 @@ uninitialized =
/*taskmp.h*/ 0 +
#endif
-/*tasks.h*/ (sizeof _RTEMS_tasks_Information) +
+/*tasksimpl.h*/ (sizeof _RTEMS_tasks_Information) +
/*thread.h*/ (sizeof _Thread_BSP_context) +
(sizeof _Thread_Dispatch_disable_level) +