diff packages/io/watchdog/current/cdl/watchdog.cdl @ 94:4642a6d35749 ecos-sw-2000-06-02

Merge from eCos master repository on 2000-06-02-07:47:04-BST
author jlarmour
date Fri, 02 Jun 2000 17:35:00 +0000
parents
children e0c0827131d1
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/io/watchdog/current/cdl/watchdog.cdl
@@ -0,0 +1,168 @@
+# ====================================================================
+#
+#      watchdog.cdl
+#
+#      eCos watchdog configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  nickg
+# Contributors:
+# Date:           1999-07-13
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_IO_WATCHDOG {
+    display       "Watchdog IO device"
+    define_header watchdog.h
+    include_dir   cyg/io
+    description   "
+	The watchdog IO device allows applications to make use of a
+	timer facility. Depending on the underlying hardware device
+        driver, a watchdog timeout will either cause a board reset
+        or an action routine to be called. The application must call
+        the watchdog reset function at regular intervals, or else the
+	device will timeout. The assumption is that the watchdog timer
+        should never trigger unless there has been a serious fault in
+	either the hardware or the software."
+
+    compile       watchdog.cxx
+
+    cdl_interface CYGINT_WATCHDOG_HW_IMPLEMENTATIONS {
+        display       "Number of watchdog hardware implementations"
+        no_define
+    }
+
+    cdl_interface CYGINT_WATCHDOG_IMPLEMENTATIONS {
+        display       "Number of watchdog implementations"
+        no_define
+        requires      1 == CYGINT_WATCHDOG_IMPLEMENTATIONS
+    }
+
+    cdl_component CYGPKG_IO_WATCHDOG_IMPLEMENTATION {
+        display "Watchdog implementation"
+        flavor none
+        no_define
+        description "Implementations of the watchdog device."
+
+        cdl_option CYGPKG_WATCHDOG_EMULATE {
+            default_value { 0 == CYGINT_WATCHDOG_HW_IMPLEMENTATIONS }
+            display       "Watchdog emulator"
+            implements    CYGINT_WATCHDOG_IMPLEMENTATIONS
+            requires      CYGVAR_KERNEL_COUNTERS_CLOCK
+            compile       emulate.cxx
+            description   "
+                When this option is enabled, a watchdog device will be
+                emulated using the kernel real-time clock."
+        }
+
+        cdl_option CYGIMP_WATCHDOG_NONE {
+            display       "No wallclock"
+            default_value 0
+            implements    CYGINT_WATCHDOG_IMPLEMENTATIONS
+            description   "Disables the watchdog."
+        }
+    }
+
+    cdl_interface CYGINT_WATCHDOG_RESETS_ON_TIMEOUT {
+        display       "Set if device causes a reset on timeout"
+        no_define
+    }
+
+    cdl_option CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT {
+        display       "Set if device causes a reset on timeout"
+        calculated    { CYGINT_WATCHDOG_RESETS_ON_TIMEOUT == 1 }
+        description   "
+            Some watchdog devices reset the board on timeout - for these
+            implementations it does not make sense to register timeout
+            actions so the code gets disabled when this option is set.
+            When this option is not set, it is the application's
+            responsibility to register an action handler which can force
+            a board reset when it gets called."
+    }
+
+    cdl_option CYGPKG_IO_WATCHDOG_BUILD_INTERACTIVE_TEST {
+	display "Build interactive watchdog test"
+	flavor  bool
+	no_define
+	default_value 0
+	description   "
+            This option enables the building of a watchdog test
+            which can be used to test that the board resets on
+            watchdog timeout. This test is built separately since
+            it only makes sense to use interactively."
+    }
+
+    cdl_component CYGPKG_IO_WATCHDOG_OPTIONS {
+        display "Watchdog build options"
+        flavor  none
+        description   "
+	    Package specific build options including control over
+	    compiler flags used only in building this package,
+	    and details of which tests are built."
+
+
+        cdl_option CYGPKG_IO_WATCHDOG_CFLAGS_ADD {
+            display "Additional compiler flags"
+            flavor  data
+            no_define
+            default_value { "" }
+            description   "
+                This option modifies the set of compiler flags for
+                building the watchdog IO device. These flags are used
+                in addition to the set of global flags."
+        }
+
+        cdl_option CYGPKG_IO_WATCHDOG_CFLAGS_REMOVE {
+            display "Suppressed compiler flags"
+            flavor  data
+            no_define
+            default_value { "" }
+            description   "
+                This option modifies the set of compiler flags for
+                building the watchdog IO device. These flags are removed from
+                the set of global flags if present."
+        }
+
+        cdl_option CYGPKG_IO_WATCHDOG_TESTS {
+            display "Watchdog tests"
+            flavor  data
+            no_define
+            calculated { CYGPKG_IO_WATCHDOG_BUILD_INTERACTIVE_TEST ? 
+                         CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT ? "tests/watchdog2 tests/watchdog_reset" : "tests/watchdog tests/watchdog2 tests/watchdog_reset" :
+                         CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT ? "tests/watchdog2" : "tests/watchdog tests/watchdog2" }
+
+            description   "
+                This option specifies the set of tests for the
+                watchdog IO device."
+        }
+    }
+}