summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-23 13:13:45 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-23 15:12:54 +0200
commitecdcf01adddae75aaf496e95425ef927aeffca15 (patch)
tree88e108c8d19f3291772bf85f5cf1a359d013f17e
parentscore: Include <string.h> in basedefs.h (diff)
downloadrtems-ecdcf01adddae75aaf496e95425ef927aeffca15.tar.bz2
rtems: Create ratemon implementation header
Move implementation specific parts of ratemon.h and ratemon.inl into new header file ratemonimpl.h. The ratemon.h contains now only the application visible API.
-rw-r--r--cpukit/libcsupport/src/resource_snapshot.c1
-rw-r--r--cpukit/rtems/Makefile.am2
-rw-r--r--cpukit/rtems/include/rtems/rtems/ratemon.h167
-rw-r--r--cpukit/rtems/include/rtems/rtems/ratemonimpl.h279
-rw-r--r--cpukit/rtems/inline/rtems/rtems/ratemon.inl127
-rw-r--r--cpukit/rtems/preinstall.am8
-rw-r--r--cpukit/rtems/src/ratemon.c2
-rw-r--r--cpukit/rtems/src/ratemoncancel.c2
-rw-r--r--cpukit/rtems/src/ratemoncreate.c2
-rw-r--r--cpukit/rtems/src/ratemondata.c3
-rw-r--r--cpukit/rtems/src/ratemondelete.c2
-rw-r--r--cpukit/rtems/src/ratemongetstatistics.c2
-rw-r--r--cpukit/rtems/src/ratemongetstatus.c2
-rw-r--r--cpukit/rtems/src/ratemonident.c2
-rw-r--r--cpukit/rtems/src/ratemonperiod.c2
-rw-r--r--cpukit/rtems/src/ratemonreportstatistics.c9
-rw-r--r--cpukit/rtems/src/ratemonresetall.c2
-rw-r--r--cpukit/rtems/src/ratemonresetstatistics.c2
-rw-r--r--cpukit/rtems/src/ratemontimeout.c2
-rw-r--r--cpukit/sapi/src/rtemsapi.c2
-rw-r--r--testsuites/sptests/spintrcritical08/init.c1
-rw-r--r--testsuites/sptests/spsize/size.c4
22 files changed, 313 insertions, 312 deletions
diff --git a/cpukit/libcsupport/src/resource_snapshot.c b/cpukit/libcsupport/src/resource_snapshot.c
index eda4a5361c..fba0b3dd4f 100644
--- a/cpukit/libcsupport/src/resource_snapshot.c
+++ b/cpukit/libcsupport/src/resource_snapshot.c
@@ -30,6 +30,7 @@
#include <rtems/rtems/barrierimpl.h>
#include <rtems/rtems/dpmemimpl.h>
#include <rtems/rtems/messageimpl.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/rtems/semimpl.h>
#ifdef RTEMS_POSIX_API
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am
index 512b0f6273..1a95dc5d2e 100644
--- a/cpukit/rtems/Makefile.am
+++ b/cpukit/rtems/Makefile.am
@@ -37,6 +37,7 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/options.h
include_rtems_rtems_HEADERS += include/rtems/rtems/optionsimpl.h
include_rtems_rtems_HEADERS += include/rtems/rtems/part.h
include_rtems_rtems_HEADERS += include/rtems/rtems/ratemon.h
+include_rtems_rtems_HEADERS += include/rtems/rtems/ratemonimpl.h
include_rtems_rtems_HEADERS += include/rtems/rtems/region.h
include_rtems_rtems_HEADERS += include/rtems/rtems/rtemsapi.h
include_rtems_rtems_HEADERS += include/rtems/rtems/sem.h
@@ -67,7 +68,6 @@ include_rtems_rtems_HEADERS += include/rtems/rtems/taskmp.h
endif
include_rtems_rtems_HEADERS += inline/rtems/rtems/part.inl
-include_rtems_rtems_HEADERS += inline/rtems/rtems/ratemon.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/region.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/tasks.inl
include_rtems_rtems_HEADERS += inline/rtems/rtems/timer.inl
diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h
index 634889aeeb..942fbaff3d 100644
--- a/cpukit/rtems/include/rtems/rtems/ratemon.h
+++ b/cpukit/rtems/include/rtems/rtems/ratemon.h
@@ -31,18 +31,16 @@
#ifndef _RTEMS_RTEMS_RATEMON_H
#define _RTEMS_RTEMS_RATEMON_H
-/**
- * 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_RATEMON_EXTERN
-#define RTEMS_RATEMON_EXTERN extern
-#endif
-
+#include <rtems/rtems/types.h>
+#include <rtems/rtems/status.h>
+#include <rtems/score/thread.h>
+#include <rtems/score/watchdog.h>
#include <rtems/bspIo.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/**
* @defgroup ClassicRateMon Rate Monotonic Scheduler
*
@@ -60,10 +58,6 @@
*/
/**@{*/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/**
* This is the public type used for the rate monotonic timing
* statistics.
@@ -88,15 +82,6 @@ extern "C" {
typedef uint32_t Rate_monotonic_Period_time_t;
#endif
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/watchdog.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/support.h>
-
-#include <string.h>
-
-
/**
* The following enumerated type defines the states in which a
* period may be.
@@ -265,23 +250,6 @@ typedef struct {
} Rate_monotonic_Control;
/**
- * @brief Rate Monotonic Period Class Management Structure
- *
- * This instance of Objects_Information is used to manage the
- * set of rate monotonic period instances.
- */
-RTEMS_RATEMON_EXTERN Objects_Information _Rate_monotonic_Information;
-
-/**
- * @brief Rate Monotonic Manager Initialization
- *
- * This routine performs the initialization necessary for this manager.
- *
- * @note The Rate Monotonic Manager is built on top of the Watchdog Handler
- */
-void _Rate_monotonic_Manager_initialization(void);
-
-/**
* @brief Create a Period
*
* Rate Monotonic Manager
@@ -443,128 +411,11 @@ rtems_status_code rtems_rate_monotonic_period(
rtems_interval length
);
-/**
- * @brief Rate Monotonic Timeout
- *
- * This routine is invoked when the period represented
- * by ID expires. If the thread which owns this period is blocked
- * waiting for the period to expire, then it is readied and the
- * period is restarted. If the owning thread is not waiting for the
- * period to expire, then the period is placed in the EXPIRED
- * state and not restarted.
- *
- * @param[in] id is the period id
- */
-void _Rate_monotonic_Timeout(
- rtems_id id,
- void *ignored
-);
-
-/**
- * @brief _Rate_monotonic_Get_status(
- *
- * This routine is invoked to compute the elapsed wall time and cpu
- * time for a period.
- *
- * @param[in] the_period points to the period being operated upon.
- * @param[out] wall_since_last_period is set to the wall time elapsed
- * since the period was initiated.
- * @param[out] cpu_since_last_period is set to the cpu time used by the
- * owning thread since the period was initiated.
- *
- * @retval This routine returns true if the status can be determined
- * and false otherwise.
- */
-bool _Rate_monotonic_Get_status(
- Rate_monotonic_Control *the_period,
- Rate_monotonic_Period_time_t *wall_since_last_period,
- Thread_CPU_usage_t *cpu_since_last_period
-);
-
-/**
- * @brief Initiate Rate Monotonic Statistics
- *
- * This routine is invoked when a period is initiated via an explicit
- * call to rtems_rate_monotonic_period for the period's first iteration
- * or from _Rate_monotonic_Timeout for period iterations 2-n.
- *
- * @param[in] the_period points to the period being operated upon.
- */
-void _Rate_monotonic_Initiate_statistics(
- Rate_monotonic_Control *the_period
-);
-
-/**
- * @brief _Rate_monotonic_Reset_wall_time_statistics
- *
- * This method resets the statistics information for a period instance.
- */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
- #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
- do { \
- /* set the minimums to a large value */ \
- _Timestamp_Set( \
- &(_the_period)->Statistics.min_wall_time, \
- 0x7fffffff, \
- 0x7fffffff \
- ); \
- } while (0)
-#else
- #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
- do { \
- /* set the minimum to a large value */ \
- (_the_period)->Statistics.min_wall_time = 0xffffffff; \
- } while (0)
-#endif
-
-/**
- * @brief Rate_monotonic_Reset_cpu_use_statistics
- *
- * This helper method resets the period CPU usage statistics structure.
- */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
- #define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
- do { \
- /* set the minimums to a large value */ \
- _Timestamp_Set( \
- &(_the_period)->Statistics.min_cpu_time, \
- 0x7fffffff, \
- 0x7fffffff \
- ); \
- } while (0)
-#else
- #define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
- do { \
- /* set the minimum to a large value */ \
- (_the_period)->Statistics.min_cpu_time = 0xffffffff; \
- } while (0)
-#endif
-
-/**
- * @brief Rate_monotonic_Reset_statistics
- *
- * This helper method resets the period wall time statistics structure.
- */
-#define _Rate_monotonic_Reset_statistics( _the_period ) \
- do { \
- memset( \
- &(_the_period)->Statistics, \
- 0, \
- sizeof( rtems_rate_monotonic_period_statistics ) \
- ); \
- _Rate_monotonic_Reset_cpu_use_statistics( _the_period ); \
- _Rate_monotonic_Reset_wall_time_statistics( _the_period ); \
- } while (0)
-
-#ifndef __RTEMS_APPLICATION__
-#include <rtems/rtems/ratemon.inl>
-#endif
+/**@}*/
#ifdef __cplusplus
}
#endif
-/**@}*/
-
#endif
/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
new file mode 100644
index 0000000000..584b45ef1e
--- /dev/null
+++ b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
@@ -0,0 +1,279 @@
+/**
+ * @file
+ *
+ * @ingroup ClassicRateMonImpl
+ *
+ * @brief Classic Rate Monotonic Scheduler 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_RATEMONIMPL_H
+#define _RTEMS_RTEMS_RATEMONIMPL_H
+
+#include <rtems/rtems/ratemon.h>
+
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup ClassicRateMonImpl Classic Rate Monotonic Scheduler Implementation
+ *
+ * @ingroup ClassicRateMon
+ *
+ * @{
+ */
+
+/**
+ * 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_RATEMON_EXTERN
+#define RTEMS_RATEMON_EXTERN extern
+#endif
+
+/**
+ * @brief Rate Monotonic Period Class Management Structure
+ *
+ * This instance of Objects_Information is used to manage the
+ * set of rate monotonic period instances.
+ */
+RTEMS_RATEMON_EXTERN Objects_Information _Rate_monotonic_Information;
+
+/**
+ * @brief Rate Monotonic Manager Initialization
+ *
+ * This routine performs the initialization necessary for this manager.
+ *
+ * @note The Rate Monotonic Manager is built on top of the Watchdog Handler
+ */
+void _Rate_monotonic_Manager_initialization(void);
+
+/**
+ * @brief Allocates a period control block from
+ * the inactive chain of free period control blocks.
+ *
+ * This function allocates a period control block from
+ * the inactive chain of free period control blocks.
+ */
+RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void )
+{
+ return (Rate_monotonic_Control *)
+ _Objects_Allocate( &_Rate_monotonic_Information );
+}
+
+/**
+ * @brief Allocates a period control block from
+ * the inactive chain of free period control blocks.
+ *
+ * This routine allocates a period control block from
+ * the inactive chain of free period control blocks.
+ */
+RTEMS_INLINE_ROUTINE void _Rate_monotonic_Free (
+ Rate_monotonic_Control *the_period
+)
+{
+ _Objects_Free( &_Rate_monotonic_Information, &the_period->Object );
+}
+
+/**
+ * @brief Maps period IDs to period control blocks.
+ *
+ * This function maps period IDs to period control blocks.
+ * If ID corresponds to a local period, then it returns
+ * the_period control pointer which maps to ID and location
+ * is set to OBJECTS_LOCAL. Otherwise, location is set
+ * to OBJECTS_ERROR and the_period is undefined.
+ */
+RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get (
+ Objects_Id id,
+ Objects_Locations *location
+)
+{
+ return (Rate_monotonic_Control *)
+ _Objects_Get( &_Rate_monotonic_Information, id, location );
+}
+
+/**
+ * @brief Checks if the_period is in the ACTIVE state.
+ *
+ * This function returns TRUE if the_period is in the ACTIVE state,
+ * and FALSE otherwise.
+ */
+RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_active (
+ Rate_monotonic_Control *the_period
+)
+{
+ return (the_period->state == RATE_MONOTONIC_ACTIVE);
+}
+
+/**
+ * @brief Checks if the_period is in the ACTIVE state.
+ *
+ * This function returns TRUE if the_period is in the ACTIVE state,
+ * and FALSE otherwise.
+ */
+RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_inactive (
+ Rate_monotonic_Control *the_period
+)
+{
+ return (the_period->state == RATE_MONOTONIC_INACTIVE);
+}
+
+/**
+ * @brief Checks if the_period is in the EXPIRED state.
+ *
+ * This function returns TRUE if the_period is in the EXPIRED state,
+ * and FALSE otherwise.
+ */
+RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_expired (
+ Rate_monotonic_Control *the_period
+)
+{
+ return (the_period->state == RATE_MONOTONIC_EXPIRED);
+}
+
+/**
+ * @brief Checks if the_period is NULL.
+ *
+ * This function returns TRUE if the_period is NULL and FALSE otherwise.
+ */
+RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_null (
+ Rate_monotonic_Control *the_period
+)
+{
+ return (the_period == NULL);
+}
+
+/**
+ * @brief Rate Monotonic Timeout
+ *
+ * This routine is invoked when the period represented
+ * by ID expires. If the thread which owns this period is blocked
+ * waiting for the period to expire, then it is readied and the
+ * period is restarted. If the owning thread is not waiting for the
+ * period to expire, then the period is placed in the EXPIRED
+ * state and not restarted.
+ *
+ * @param[in] id is the period id
+ */
+void _Rate_monotonic_Timeout(
+ rtems_id id,
+ void *ignored
+);
+
+/**
+ * @brief _Rate_monotonic_Get_status(
+ *
+ * This routine is invoked to compute the elapsed wall time and cpu
+ * time for a period.
+ *
+ * @param[in] the_period points to the period being operated upon.
+ * @param[out] wall_since_last_period is set to the wall time elapsed
+ * since the period was initiated.
+ * @param[out] cpu_since_last_period is set to the cpu time used by the
+ * owning thread since the period was initiated.
+ *
+ * @retval This routine returns true if the status can be determined
+ * and false otherwise.
+ */
+bool _Rate_monotonic_Get_status(
+ Rate_monotonic_Control *the_period,
+ Rate_monotonic_Period_time_t *wall_since_last_period,
+ Thread_CPU_usage_t *cpu_since_last_period
+);
+
+/**
+ * @brief Initiate Rate Monotonic Statistics
+ *
+ * This routine is invoked when a period is initiated via an explicit
+ * call to rtems_rate_monotonic_period for the period's first iteration
+ * or from _Rate_monotonic_Timeout for period iterations 2-n.
+ *
+ * @param[in] the_period points to the period being operated upon.
+ */
+void _Rate_monotonic_Initiate_statistics(
+ Rate_monotonic_Control *the_period
+);
+
+/**
+ * @brief _Rate_monotonic_Reset_wall_time_statistics
+ *
+ * This method resets the statistics information for a period instance.
+ */
+#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
+ #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
+ do { \
+ /* set the minimums to a large value */ \
+ _Timestamp_Set( \
+ &(_the_period)->Statistics.min_wall_time, \
+ 0x7fffffff, \
+ 0x7fffffff \
+ ); \
+ } while (0)
+#else
+ #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
+ do { \
+ /* set the minimum to a large value */ \
+ (_the_period)->Statistics.min_wall_time = 0xffffffff; \
+ } while (0)
+#endif
+
+/**
+ * @brief Rate_monotonic_Reset_cpu_use_statistics
+ *
+ * This helper method resets the period CPU usage statistics structure.
+ */
+#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
+ #define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
+ do { \
+ /* set the minimums to a large value */ \
+ _Timestamp_Set( \
+ &(_the_period)->Statistics.min_cpu_time, \
+ 0x7fffffff, \
+ 0x7fffffff \
+ ); \
+ } while (0)
+#else
+ #define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
+ do { \
+ /* set the minimum to a large value */ \
+ (_the_period)->Statistics.min_cpu_time = 0xffffffff; \
+ } while (0)
+#endif
+
+/**
+ * @brief Rate_monotonic_Reset_statistics
+ *
+ * This helper method resets the period wall time statistics structure.
+ */
+#define _Rate_monotonic_Reset_statistics( _the_period ) \
+ do { \
+ memset( \
+ &(_the_period)->Statistics, \
+ 0, \
+ sizeof( rtems_rate_monotonic_period_statistics ) \
+ ); \
+ _Rate_monotonic_Reset_cpu_use_statistics( _the_period ); \
+ _Rate_monotonic_Reset_wall_time_statistics( _the_period ); \
+ } while (0)
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/ratemon.inl b/cpukit/rtems/inline/rtems/rtems/ratemon.inl
deleted file mode 100644
index 30b0361451..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/ratemon.inl
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * @file rtems/rtems/ratemon.inl
- *
- * This file contains the static inline implementation of the inlined
- * routines in the Rate Monotonic 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_RATEMON_H
-# error "Never use <rtems/rtems/ratemon.inl> directly; include <rtems/rtems/ratemon.h> instead."
-#endif
-
-#ifndef _RTEMS_RTEMS_RATEMON_INL
-#define _RTEMS_RTEMS_RATEMON_INL
-
-/**
- * @addtogroup ClassicRateMon
- * @{
- */
-
-/**
- * @brief Allocates a period control block from
- * the inactive chain of free period control blocks.
- *
- * This function allocates a period control block from
- * the inactive chain of free period control blocks.
- */
-RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void )
-{
- return (Rate_monotonic_Control *)
- _Objects_Allocate( &_Rate_monotonic_Information );
-}
-
-/**
- * @brief Allocates a period control block from
- * the inactive chain of free period control blocks.
- *
- * This routine allocates a period control block from
- * the inactive chain of free period control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Rate_monotonic_Free (
- Rate_monotonic_Control *the_period
-)
-{
- _Objects_Free( &_Rate_monotonic_Information, &the_period->Object );
-}
-
-/**
- * @brief Maps period IDs to period control blocks.
- *
- * This function maps period IDs to period control blocks.
- * If ID corresponds to a local period, then it returns
- * the_period control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. Otherwise, location is set
- * to OBJECTS_ERROR and the_period is undefined.
- */
-RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Rate_monotonic_Control *)
- _Objects_Get( &_Rate_monotonic_Information, id, location );
-}
-
-/**
- * @brief Checks if the_period is in the ACTIVE state.
- *
- * This function returns TRUE if the_period is in the ACTIVE state,
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_active (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period->state == RATE_MONOTONIC_ACTIVE);
-}
-
-/**
- * @brief Checks if the_period is in the ACTIVE state.
- *
- * This function returns TRUE if the_period is in the ACTIVE state,
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_inactive (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period->state == RATE_MONOTONIC_INACTIVE);
-}
-
-/**
- * @brief Checks if the_period is in the EXPIRED state.
- *
- * This function returns TRUE if the_period is in the EXPIRED state,
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_expired (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period->state == RATE_MONOTONIC_EXPIRED);
-}
-
-/**
- * @brief Checks if the_period is NULL.
- *
- * This function returns TRUE if the_period is NULL and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Rate_monotonic_Is_null (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period == NULL);
-}
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am
index b1140a3e13..3b2817220b 100644
--- a/cpukit/rtems/preinstall.am
+++ b/cpukit/rtems/preinstall.am
@@ -119,6 +119,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/ratemon.h: include/rtems/rtems/ratemon.h $(PROJEC
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/ratemon.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/ratemon.h
+$(PROJECT_INCLUDE)/rtems/rtems/ratemonimpl.h: include/rtems/rtems/ratemonimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/ratemonimpl.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/ratemonimpl.h
+
$(PROJECT_INCLUDE)/rtems/rtems/region.h: include/rtems/rtems/region.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/region.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/region.h
@@ -213,10 +217,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/part.inl: inline/rtems/rtems/part.inl $(PROJECT_I
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/part.inl
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/part.inl
-$(PROJECT_INCLUDE)/rtems/rtems/ratemon.inl: inline/rtems/rtems/ratemon.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/ratemon.inl
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/ratemon.inl
-
$(PROJECT_INCLUDE)/rtems/rtems/region.inl: inline/rtems/rtems/region.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/region.inl
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/region.inl
diff --git a/cpukit/rtems/src/ratemon.c b/cpukit/rtems/src/ratemon.c
index d96a9b0612..59d1f0b853 100644
--- a/cpukit/rtems/src/ratemon.c
+++ b/cpukit/rtems/src/ratemon.c
@@ -24,7 +24,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
void _Rate_monotonic_Manager_initialization(void)
diff --git a/cpukit/rtems/src/ratemoncancel.c b/cpukit/rtems/src/ratemoncancel.c
index d50f80177e..81b28b2bbd 100644
--- a/cpukit/rtems/src/ratemoncancel.c
+++ b/cpukit/rtems/src/ratemoncancel.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdogimpl.h>
diff --git a/cpukit/rtems/src/ratemoncreate.c b/cpukit/rtems/src/ratemoncreate.c
index ae60514ab9..b21ca4a158 100644
--- a/cpukit/rtems/src/ratemoncreate.c
+++ b/cpukit/rtems/src/ratemoncreate.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdogimpl.h>
diff --git a/cpukit/rtems/src/ratemondata.c b/cpukit/rtems/src/ratemondata.c
index f7a9d1707e..7c5e84b3a3 100644
--- a/cpukit/rtems/src/ratemondata.c
+++ b/cpukit/rtems/src/ratemondata.c
@@ -21,5 +21,4 @@
/* instantiate RTEMS period data */
#define RTEMS_RATEMON_EXTERN
-#include <rtems/system.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
diff --git a/cpukit/rtems/src/ratemondelete.c b/cpukit/rtems/src/ratemondelete.c
index e1d732ea3c..d05d03b2c9 100644
--- a/cpukit/rtems/src/ratemondelete.c
+++ b/cpukit/rtems/src/ratemondelete.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdogimpl.h>
diff --git a/cpukit/rtems/src/ratemongetstatistics.c b/cpukit/rtems/src/ratemongetstatistics.c
index eca0ce8390..0cb594a6a2 100644
--- a/cpukit/rtems/src/ratemongetstatistics.c
+++ b/cpukit/rtems/src/ratemongetstatistics.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
rtems_status_code rtems_rate_monotonic_get_statistics(
diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c
index bd97bd045e..673bc08a0e 100644
--- a/cpukit/rtems/src/ratemongetstatus.c
+++ b/cpukit/rtems/src/ratemongetstatus.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
diff --git a/cpukit/rtems/src/ratemonident.c b/cpukit/rtems/src/ratemonident.c
index 1e45175869..2786c4cc60 100644
--- a/cpukit/rtems/src/ratemonident.c
+++ b/cpukit/rtems/src/ratemonident.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
rtems_status_code rtems_rate_monotonic_ident(
diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c
index fc74aa2c8b..93a76a085f 100644
--- a/cpukit/rtems/src/ratemonperiod.c
+++ b/cpukit/rtems/src/ratemonperiod.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdogimpl.h>
diff --git a/cpukit/rtems/src/ratemonreportstatistics.c b/cpukit/rtems/src/ratemonreportstatistics.c
index daf5fb5c7f..cf7786d400 100644
--- a/cpukit/rtems/src/ratemonreportstatistics.c
+++ b/cpukit/rtems/src/ratemonreportstatistics.c
@@ -18,13 +18,10 @@
#include "config.h"
#endif
-#include <rtems.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <inttypes.h>
+#include <rtems/rtems/ratemonimpl.h>
+#include <rtems/rtems/object.h>
-#include <rtems/bspIo.h>
-#include <rtems/score/timespec.h>
+#include <inttypes.h>
#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
/* We print to 1/10's of milliseconds */
diff --git a/cpukit/rtems/src/ratemonresetall.c b/cpukit/rtems/src/ratemonresetall.c
index b2ed414149..923f4f182b 100644
--- a/cpukit/rtems/src/ratemonresetall.c
+++ b/cpukit/rtems/src/ratemonresetall.c
@@ -22,7 +22,7 @@
#include <rtems/rtems/status.h>
#include <rtems/rtems/support.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
/*
diff --git a/cpukit/rtems/src/ratemonresetstatistics.c b/cpukit/rtems/src/ratemonresetstatistics.c
index 4269403b52..744e266621 100644
--- a/cpukit/rtems/src/ratemonresetstatistics.c
+++ b/cpukit/rtems/src/ratemonresetstatistics.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
/*
diff --git a/cpukit/rtems/src/ratemontimeout.c b/cpukit/rtems/src/ratemontimeout.c
index 70d119af88..947fa2f8c4 100644
--- a/cpukit/rtems/src/ratemontimeout.c
+++ b/cpukit/rtems/src/ratemontimeout.c
@@ -23,7 +23,7 @@
#include <rtems/rtems/support.h>
#include <rtems/score/isr.h>
#include <rtems/score/object.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/score/thread.h>
#include <rtems/score/watchdogimpl.h>
diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c
index d4d440a625..2077829c76 100644
--- a/cpukit/sapi/src/rtemsapi.c
+++ b/cpukit/sapi/src/rtemsapi.c
@@ -36,7 +36,7 @@
#include <rtems/rtems/mp.h>
#endif
#include <rtems/rtems/part.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/rtems/region.h>
#include <rtems/rtems/semimpl.h>
#include <rtems/rtems/signal.h>
diff --git a/testsuites/sptests/spintrcritical08/init.c b/testsuites/sptests/spintrcritical08/init.c
index 534cd06e1c..acb10de79f 100644
--- a/testsuites/sptests/spintrcritical08/init.c
+++ b/testsuites/sptests/spintrcritical08/init.c
@@ -14,6 +14,7 @@
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 1
#include <tmacros.h>
#include <intrcritical.h>
+#include <rtems/rtems/ratemonimpl.h>
/* forward declarations to avoid warnings */
rtems_task Init(rtems_task_argument argument);
diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c
index da0fb30ddb..a9ce736e1d 100644
--- a/testsuites/sptests/spsize/size.c
+++ b/testsuites/sptests/spsize/size.c
@@ -35,7 +35,7 @@
#endif
#include <rtems/rtems/part.h>
#include <rtems/score/priority.h>
-#include <rtems/rtems/ratemon.h>
+#include <rtems/rtems/ratemonimpl.h>
#include <rtems/rtems/region.h>
#include <rtems/rtems/semimpl.h>
#include <rtems/rtems/signal.h>
@@ -342,7 +342,7 @@ uninitialized =
/*percpu.h*/ (_SMP_Get_processor_count() * sizeof(Per_CPU_Control)) +
-/*ratemon.h*/ (sizeof _Rate_monotonic_Information) +
+/*ratemonimpl.h*/ (sizeof _Rate_monotonic_Information) +
/*region.h*/ (sizeof _Region_Information) +