[PATCH 17/21] score: Introduce <rtems/score/watchdogticks.h>

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Nov 8 12:52:10 UTC 2018


Separate the definitions related to watchdog ticks from the watchdog
structures.

Update #3598.
---
 cpukit/headers.am                          |  1 +
 cpukit/include/rtems/rtems/clock.h         |  1 -
 cpukit/include/rtems/rtems/ratemon.h       |  1 -
 cpukit/include/rtems/rtems/types.h         |  2 +-
 cpukit/include/rtems/score/threadq.h       |  4 +-
 cpukit/include/rtems/score/watchdog.h      | 39 ++--------------
 cpukit/include/rtems/score/watchdogimpl.h  |  1 +
 cpukit/include/rtems/score/watchdogticks.h | 73 ++++++++++++++++++++++++++++++
 cpukit/score/src/watchdogtickssinceboot.c  |  2 +-
 9 files changed, 83 insertions(+), 41 deletions(-)
 create mode 100644 cpukit/include/rtems/score/watchdogticks.h

diff --git a/cpukit/headers.am b/cpukit/headers.am
index 3a85f29782..fa51f8dcee 100644
--- a/cpukit/headers.am
+++ b/cpukit/headers.am
@@ -395,6 +395,7 @@ include_rtems_score_HEADERS += include/rtems/score/userext.h
 include_rtems_score_HEADERS += include/rtems/score/userextimpl.h
 include_rtems_score_HEADERS += include/rtems/score/watchdog.h
 include_rtems_score_HEADERS += include/rtems/score/watchdogimpl.h
+include_rtems_score_HEADERS += include/rtems/score/watchdogticks.h
 include_rtems_score_HEADERS += include/rtems/score/wkspace.h
 include_rtems_trace_HEADERS += include/rtems/trace/rtems-trace-buffer-vars.h
 include_sys_HEADERS += include/sys/_ffcounter.h
diff --git a/cpukit/include/rtems/rtems/clock.h b/cpukit/include/rtems/rtems/clock.h
index f3f406d2e6..77b379f285 100644
--- a/cpukit/include/rtems/rtems/clock.h
+++ b/cpukit/include/rtems/rtems/clock.h
@@ -29,7 +29,6 @@
 #ifndef _RTEMS_RTEMS_CLOCK_H
 #define _RTEMS_RTEMS_CLOCK_H
 
-#include <rtems/score/watchdog.h>
 #include <rtems/rtems/status.h>
 #include <rtems/rtems/types.h>
 #include <rtems/config.h>
diff --git a/cpukit/include/rtems/rtems/ratemon.h b/cpukit/include/rtems/rtems/ratemon.h
index 747d967af2..095cab31eb 100644
--- a/cpukit/include/rtems/rtems/ratemon.h
+++ b/cpukit/include/rtems/rtems/ratemon.h
@@ -35,7 +35,6 @@
 
 #include <rtems/rtems/types.h>
 #include <rtems/rtems/status.h>
-#include <rtems/score/watchdog.h>
 
 struct rtems_printer;
 
diff --git a/cpukit/include/rtems/rtems/types.h b/cpukit/include/rtems/rtems/types.h
index 13adf175a6..ba904536ee 100644
--- a/cpukit/include/rtems/rtems/types.h
+++ b/cpukit/include/rtems/rtems/types.h
@@ -28,7 +28,7 @@
 #include <rtems/score/heap.h>
 #include <rtems/score/object.h>
 #include <rtems/score/priority.h>
-#include <rtems/score/watchdog.h>
+#include <rtems/score/watchdogticks.h>
 #include <rtems/rtems/modes.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
diff --git a/cpukit/include/rtems/score/threadq.h b/cpukit/include/rtems/score/threadq.h
index 3e618bf5af..5ddc2a10bb 100644
--- a/cpukit/include/rtems/score/threadq.h
+++ b/cpukit/include/rtems/score/threadq.h
@@ -25,12 +25,14 @@
 #include <rtems/score/priority.h>
 #include <rtems/score/rbtree.h>
 #include <rtems/score/states.h>
-#include <rtems/score/watchdog.h>
+#include <rtems/score/watchdogticks.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+struct Per_CPU_Control;
+
 struct Scheduler_Node;
 
 /**
diff --git a/cpukit/include/rtems/score/watchdog.h b/cpukit/include/rtems/score/watchdog.h
index 71126d3508..9db87adae8 100644
--- a/cpukit/include/rtems/score/watchdog.h
+++ b/cpukit/include/rtems/score/watchdog.h
@@ -1,5 +1,7 @@
 /**
- *  @file  rtems/score/watchdog.h
+ *  @file
+ *
+ *  @ingroup ScoreWatchdog
  *
  *  @brief Constants and Structures Associated with Watchdog Timers
  *
@@ -45,18 +47,6 @@ extern "C" {
 
 typedef struct Watchdog_Control Watchdog_Control;
 
-/**
- *  @brief Type is used to specify the length of intervals.
- *
- *  This type is used to specify the length of intervals.
- */
-typedef uint32_t   Watchdog_Interval;
-
-/**
- * @brief Special watchdog ticks value to indicate an infinite wait.
- */
-#define WATCHDOG_NO_TIMEOUT 0
-
 /**
  *  @brief Return type from a Watchdog Service Routine.
  *
@@ -124,29 +114,6 @@ struct Watchdog_Control {
   uint64_t expire;
 };
 
-/**
- * @brief The watchdog ticks counter.
- *
- * With a 1ms watchdog tick, this counter overflows after 50 days since boot.
- */
-extern volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
-
-/**
- * @brief The watchdog nanoseconds per tick.
- *
- * This constant is defined by the application configuration via
- * <rtems/confdefs.h>.
- */
-extern const uint32_t _Watchdog_Nanoseconds_per_tick;
-
-/**
- * @brief The watchdog ticks per second.
- *
- * This constant is defined by the application configuration via
- * <rtems/confdefs.h>.
- */
-extern const uint32_t _Watchdog_Ticks_per_second;
-
 /**@}*/
 
 #ifdef __cplusplus
diff --git a/cpukit/include/rtems/score/watchdogimpl.h b/cpukit/include/rtems/score/watchdogimpl.h
index 6fe9d5acf5..17ef130d3a 100644
--- a/cpukit/include/rtems/score/watchdogimpl.h
+++ b/cpukit/include/rtems/score/watchdogimpl.h
@@ -20,6 +20,7 @@
 #define _RTEMS_SCORE_WATCHDOGIMPL_H
 
 #include <rtems/score/watchdog.h>
+#include <rtems/score/watchdogticks.h>
 #include <rtems/score/assert.h>
 #include <rtems/score/isrlock.h>
 #include <rtems/score/percpu.h>
diff --git a/cpukit/include/rtems/score/watchdogticks.h b/cpukit/include/rtems/score/watchdogticks.h
new file mode 100644
index 0000000000..8a69a288fc
--- /dev/null
+++ b/cpukit/include/rtems/score/watchdogticks.h
@@ -0,0 +1,73 @@
+/**
+ * @file
+ *
+ * @ingroup ScoreWatchdog
+ */
+
+/*
+ *  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.org/license/LICENSE.
+ */
+
+#ifndef _RTEMS_SCORE_WATCHDOGTICKS_H
+#define _RTEMS_SCORE_WATCHDOGTICKS_H
+
+#include <rtems/score/basedefs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup ScoreWatchdog
+ *
+ * @{
+ */
+
+/**
+ *  @brief Type is used to specify the length of intervals.
+ *
+ *  This type is used to specify the length of intervals.
+ */
+typedef uint32_t   Watchdog_Interval;
+
+/**
+ * @brief Special watchdog ticks value to indicate an infinite wait.
+ */
+#define WATCHDOG_NO_TIMEOUT 0
+
+/**
+ * @brief The watchdog ticks counter.
+ *
+ * With a 1ms watchdog tick, this counter overflows after 50 days since boot.
+ */
+extern volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
+
+/**
+ * @brief The watchdog nanoseconds per tick.
+ *
+ * This constant is defined by the application configuration via
+ * <rtems/confdefs.h>.
+ */
+extern const uint32_t _Watchdog_Nanoseconds_per_tick;
+
+/**
+ * @brief The watchdog ticks per second.
+ *
+ * This constant is defined by the application configuration via
+ * <rtems/confdefs.h>.
+ */
+extern const uint32_t _Watchdog_Ticks_per_second;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
diff --git a/cpukit/score/src/watchdogtickssinceboot.c b/cpukit/score/src/watchdogtickssinceboot.c
index 668348c0d5..0857d0ef73 100644
--- a/cpukit/score/src/watchdogtickssinceboot.c
+++ b/cpukit/score/src/watchdogtickssinceboot.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/watchdog.h>
+#include <rtems/score/watchdogticks.h>
 
 /*
  * This is defined in a separate module to allow the new network to define it
-- 
2.16.4




More information about the devel mailing list