aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-01-25 23:40:32 +0000
committerEric Andersen <andersen@codepoet.org>2001-01-25 23:40:32 +0000
commitffde8673fe8b2c32076aa3e01eab1fefc5f08e86 (patch)
treeca0bf058a242ffb3d2f10d8f862d47a6557cd8eb
parent8ba1b1120ee08b281f8bae2837c8f3307d166872 (diff)
downloadbusybox-ffde8673fe8b2c32076aa3e01eab1fefc5f08e86.tar.gz
Add in spoon's watchdog timer app.
-Erik
-rw-r--r--Config.h13
-rw-r--r--applets.h3
-rw-r--r--applets/usage.c9
-rw-r--r--docs/busybox.pod18
-rw-r--r--docs/busybox.sgml12
-rw-r--r--include/applets.h3
-rw-r--r--miscutils/watchdog.c45
-rw-r--r--usage.c9
-rw-r--r--watchdog.c45
9 files changed, 146 insertions, 11 deletions
diff --git a/Config.h b/Config.h
index 1df72f301..667612cb5 100644
--- a/Config.h
+++ b/Config.h
@@ -103,12 +103,6 @@
//#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
@@ -116,6 +110,13 @@
#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
diff --git a/applets.h b/applets.h
index 4837cb564..80ff1feb3 100644
--- 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
diff --git a/applets/usage.c b/applets/usage.c
index 534958e7d..a27ff92e2 100644
--- a/applets/usage.c
+++ b/applets/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/docs/busybox.pod b/docs/busybox.pod
index e3da284f1..4c0810234 100644
--- a/docs/busybox.pod
+++ b/docs/busybox.pod
@@ -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 $
diff --git a/docs/busybox.sgml b/docs/busybox.sgml
index 58d7df859..017d0d1f5 100644
--- a/docs/busybox.sgml
+++ b/docs/busybox.sgml
@@ -3660,6 +3660,18 @@
</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>
diff --git a/include/applets.h b/include/applets.h
index 4837cb564..80ff1feb3 100644
--- a/include/applets.h
+++ b/include/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
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
new file mode 100644
index 000000000..d297afa02
--- /dev/null
+++ b/miscutils/watchdog.c
@@ -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 534958e7d..a27ff92e2 100644
--- 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
index 000000000..d297afa02
--- /dev/null
+++ b/watchdog.c
@@ -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;
+}