summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-05-22 14:40:11 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-05-22 14:40:11 +0000
commitd2018f7178fc6f6dc3ecae6c3bf29fcfbca8d597 (patch)
treea18a43d3d229d06c294fd1c2124b81e049863e9f /cpukit
parent2008-05-21 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-d2018f7178fc6f6dc3ecae6c3bf29fcfbca8d597.tar.bz2
2008-05-22 Joel Sherrill <joel.sherrill@OARcorp.com>
* libcsupport/preinstall.am, sapi/include/confdefs.h: Add baseline interface for Watchdog Driver. * libcsupport/include/rtems/watchdogdrv.h: New file.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog6
-rw-r--r--cpukit/libcsupport/include/rtems/watchdogdrv.h60
-rw-r--r--cpukit/libcsupport/preinstall.am4
-rw-r--r--cpukit/sapi/include/confdefs.h7
4 files changed, 77 insertions, 0 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index 805d11d926..8b0a17bb1a 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-22 Joel Sherrill <joel.sherrill@OARcorp.com>
+
+ * libcsupport/preinstall.am, sapi/include/confdefs.h: Add baseline
+ interface for Watchdog Driver.
+ * libcsupport/include/rtems/watchdogdrv.h: New file.
+
2008-05-16 Till Straumann <strauman@slac.stanford.edu>
* score/src/threadchangepriority.c: Just in case the transient
diff --git a/cpukit/libcsupport/include/rtems/watchdogdrv.h b/cpukit/libcsupport/include/rtems/watchdogdrv.h
new file mode 100644
index 0000000000..e7e525d63d
--- /dev/null
+++ b/cpukit/libcsupport/include/rtems/watchdogdrv.h
@@ -0,0 +1,60 @@
+/**
+ * @file rtems/watchdogdrv.h
+ *
+ * This file describes the Watchdog Driver for all boards.
+ * A watchdog is a hardware device that will reset the board
+ * if not touched in a specific way at a regular interval.
+ * It is a simple, yet important, part of many embedded systems.
+ */
+
+/*
+ *
+ * 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.
+ *
+ * $Id$
+ */
+
+#ifndef _RTEMS_WATCHDOGDRV_H
+#define _RTEMS_WATCHDOGDRV_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * This macro defines the watchdog device driver entry points.
+ */
+#define WATCHDOG_DRIVER_TABLE_ENTRY \
+ { Watchdog_initialize, NULL, NULL, NULL, NULL, Watchdog_control }
+
+/**
+ * @brief Watchdog Driver Initialization
+ *
+ * This method initializes the watchdog hardware device. The device
+ * should be initialized as DISABLED since BSP initialization may
+ * take longer than the timeout period for the watchdog.
+ *
+ * @param[in] ma
+rtems_device_driver Watchdog_initialize(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arguments
+);
+
+rtems_device_driver Watchdog_control(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *pargp
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
diff --git a/cpukit/libcsupport/preinstall.am b/cpukit/libcsupport/preinstall.am
index cccde53bc0..1510f61cfa 100644
--- a/cpukit/libcsupport/preinstall.am
+++ b/cpukit/libcsupport/preinstall.am
@@ -68,6 +68,10 @@ $(PROJECT_INCLUDE)/rtems/vmeintr.h: include/vmeintr.h $(PROJECT_INCLUDE)/rtems/$
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/vmeintr.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/vmeintr.h
+$(PROJECT_INCLUDE)/rtems/watchdogdrv.h: include/rtems/watchdogdrv.h $(PROJECT_INCLUDE)/rtems/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/watchdogdrv.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/watchdogdrv.h
+
$(PROJECT_INCLUDE)/rtems/motorola/$(dirstamp):
@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/motorola
@: > $(PROJECT_INCLUDE)/rtems/motorola/$(dirstamp)
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 269dfaf74f..8d8f3b889b 100644
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/sapi/include/confdefs.h
@@ -371,6 +371,10 @@ rtems_initialization_tasks_table Initialization_tasks[] = {
#include <rtems/rtc.h>
#endif
+#ifdef CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
+#include <rtems/watchdogdrv.h>
+#endif
+
#ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
#include <rtems/devnull.h>
#endif
@@ -400,6 +404,9 @@ rtems_driver_address_table Device_drivers[] = {
#ifdef CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
RTC_DRIVER_TABLE_ENTRY,
#endif
+#ifdef CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER
+ WATCHDOG_DRIVER_TABLE_ENTRY,
+#endif
#ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
DEVNULL_DRIVER_TABLE_ENTRY,
#endif