Add in spoon's watchdog timer app.
authorEric Andersen <andersen@codepoet.org>
Thu, 25 Jan 2001 23:40:32 +0000 (23:40 -0000)
committerEric Andersen <andersen@codepoet.org>
Thu, 25 Jan 2001 23:40:32 +0000 (23:40 -0000)
 -Erik

Config.h
applets.h
applets/usage.c
docs/busybox.pod
docs/busybox.sgml
include/applets.h
miscutils/watchdog.c [new file with mode: 0644]
usage.c
watchdog.c [new file with mode: 0644]

index 1df72f3014cc1f4f217d7cf22ac239d93cb1673f..667612cb5699996d66cc38477529863217631571 100644 (file)
--- a/Config.h
+++ b/Config.h
 //#define BB_TR
 #define BB_TRUE_FALSE
 #define BB_TTY
-#define BB_UPTIME
-//#define BB_USLEEP
-#define BB_WC
-//#define BB_WGET
-#define BB_WHICH
-#define BB_WHOAMI
 //#define BB_UUENCODE
 //#define BB_UUDECODE
 #define BB_UMOUNT
 #define BB_UNAME
 //#define BB_UNIX2DOS
 //#define BB_UPDATE
+#define BB_UPTIME
+//#define BB_USLEEP
+//#define BB_WATCHDOG
+#define BB_WC
+//#define BB_WGET
+#define BB_WHICH
+#define BB_WHOAMI
 #define BB_XARGS
 #define BB_YES
 // End of Applications List
index 4837cb564235421b923ae509832be8b954f78a63..80ff1feb3a0eb89502e41d0508df09b7de79b4d7 100644 (file)
--- a/applets.h
+++ b/applets.h
@@ -362,6 +362,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_UUENCODE
        APPLET("uuencode", uuencode_main, _BB_DIR_USR_BIN, uuencode_usage)
 #endif
+#ifdef BB_WATCHDOG
+       APPLET("watchdog", watchdog_main, _BB_DIR_SBIN, watchdog_usage)
+#endif
 #ifdef BB_WC
        APPLET("wc", wc_main, _BB_DIR_USR_BIN, wc_usage)
 #endif
index 534958e7d1fadc0685c9df223ef1f30547b4bd1e..a27ff92e2527b6cea9947448ef1016b3f9313405 100644 (file)
@@ -1487,6 +1487,15 @@ const char uuencode_usage[] =
        ;
 #endif
 
+#if defined BB_WATCHDOG
+const char watchdog_usage[] =
+       "watchdog dev\n"
+#ifndef BB_FEATURE_TRIVIAL_HELP
+       "\nPeriodically write to watchdog device \"dev\".\n"
+#endif
+       ;
+#endif
+
 #if defined BB_WC
 const char wc_usage[] =
        "wc [OPTION]... [FILE]..."
index e3da284f1ba40a45125c7c15ede0d23427119c6e..4c0810234f43c4bf586a3fe68673bb1e39256bfe 100644 (file)
@@ -62,10 +62,10 @@ gunzip, gzip, halt, head, hostid, hostname, id, init, insmod, kill, killall,
 length, ln, loadacm, loadfont, loadkmap, logger, logname, ls, lsmod, makedevs,
 mkdir, mkfifo, mkfs.minix, mknod, mkswap, mktemp, more, mount, mt, mv, nc,
 nslookup, ping, poweroff, printf, ps, pwd, rdate, reboot, renice, reset, rm,
-rmdir, rmmod, sed, setkeycodes, sh, sleep, sort, swapoff, swapon, sync, syslogd,
-tail, tar, tee, telnet, test, touch, tr, true, tty, umount, uname, uniq, 
-unix2dos, unrpm, update, uptime, usleep, uudecode, uuencode, wc, which, whoami,
-xargs, yes, zcat, [
+rmdir, rmmod, sed, setkeycodes, sh, sleep, sort, swapoff, swapon, sync,
+syslogd, tail, tar, tee, telnet, test, touch, tr, true, tty, umount, uname,
+uniq, unix2dos, unrpm, update, uptime, usleep, uudecode, uuencode, watchdog,
+wc, which, whoami, xargs, yes, zcat, [
 
 -------------------------------
 
@@ -2095,6 +2095,14 @@ Example:
 
 -------------------------------
 
+=item watchdog
+
+Usage: watchdog device
+
+Periodically writes to watchdog device B<device>.
+
+-------------------------------
+
 =item wc
 
 Usage: wc [OPTION]... [FILE]...
@@ -2322,4 +2330,4 @@ Enrique Zanardi <ezanardi@ull.es>
 
 =cut
 
-# $Id: busybox.pod,v 1.88 2001/01/25 05:12:02 andersen Exp $
+# $Id: busybox.pod,v 1.89 2001/01/25 23:40:32 andersen Exp $
index 58d7df859278bec052f932472bac3a783404f7ab..017d0d1f52babb5c0bb64f1aed6510b019a2a293 100644 (file)
                </para>
        </sect1>
 
+       <sect1 id="watchdog">
+           <title>watchdog</title>
+
+               <para>
+               Usage: watchdog device
+               </para>
+
+               <para>
+               Periodically writes to watchdog device B<device>.
+               </para>
+       </sect1>
+
        <sect1 id="wc">
            <title>wc</title>
 
index 4837cb564235421b923ae509832be8b954f78a63..80ff1feb3a0eb89502e41d0508df09b7de79b4d7 100644 (file)
@@ -362,6 +362,9 @@ const struct BB_applet applets[] = {
 #ifdef BB_UUENCODE
        APPLET("uuencode", uuencode_main, _BB_DIR_USR_BIN, uuencode_usage)
 #endif
+#ifdef BB_WATCHDOG
+       APPLET("watchdog", watchdog_main, _BB_DIR_SBIN, watchdog_usage)
+#endif
 #ifdef BB_WC
        APPLET("wc", wc_main, _BB_DIR_USR_BIN, wc_usage)
 #endif
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
new file mode 100644 (file)
index 0000000..d297afa
--- /dev/null
@@ -0,0 +1,45 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Mini watchdog implementation for busybox
+ *
+ * Copyright (C) 2000  spoon <spoon@ix.netcom.com>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "busybox.h"
+#include <stdio.h>
+#include <fcntl.h>
+
+extern int watchdog_main(int argc, char **argv)
+{
+       int fd;
+
+       if (argc != 2) {
+               usage(watchdog_usage);
+       }
+
+       if ((fd=open(argv[1], O_WRONLY)) == -1) {
+               perror_msg_and_die(argv[1]);
+       }
+
+       while (1) {
+               sleep(30);
+               write(fd, "\0", 1);
+       }
+
+       return EXIT_FAILURE;
+}
diff --git a/usage.c b/usage.c
index 534958e7d1fadc0685c9df223ef1f30547b4bd1e..a27ff92e2527b6cea9947448ef1016b3f9313405 100644 (file)
--- a/usage.c
+++ b/usage.c
@@ -1487,6 +1487,15 @@ const char uuencode_usage[] =
        ;
 #endif
 
+#if defined BB_WATCHDOG
+const char watchdog_usage[] =
+       "watchdog dev\n"
+#ifndef BB_FEATURE_TRIVIAL_HELP
+       "\nPeriodically write to watchdog device \"dev\".\n"
+#endif
+       ;
+#endif
+
 #if defined BB_WC
 const char wc_usage[] =
        "wc [OPTION]... [FILE]..."
diff --git a/watchdog.c b/watchdog.c
new file mode 100644 (file)
index 0000000..d297afa
--- /dev/null
@@ -0,0 +1,45 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Mini watchdog implementation for busybox
+ *
+ * Copyright (C) 2000  spoon <spoon@ix.netcom.com>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include "busybox.h"
+#include <stdio.h>
+#include <fcntl.h>
+
+extern int watchdog_main(int argc, char **argv)
+{
+       int fd;
+
+       if (argc != 2) {
+               usage(watchdog_usage);
+       }
+
+       if ((fd=open(argv[1], O_WRONLY)) == -1) {
+               perror_msg_and_die(argv[1]);
+       }
+
+       while (1) {
+               sleep(30);
+               write(fd, "\0", 1);
+       }
+
+       return EXIT_FAILURE;
+}