From ffde8673fe8b2c32076aa3e01eab1fefc5f08e86 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 25 Jan 2001 23:40:32 +0000 Subject: Add in spoon's watchdog timer app. -Erik --- Config.h | 13 +++++++------ applets.h | 3 +++ applets/usage.c | 9 +++++++++ docs/busybox.pod | 18 +++++++++++++----- docs/busybox.sgml | 12 ++++++++++++ include/applets.h | 3 +++ miscutils/watchdog.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ usage.c | 9 +++++++++ watchdog.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 146 insertions(+), 11 deletions(-) create mode 100644 miscutils/watchdog.c create mode 100644 watchdog.c 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. + +------------------------------- + =item wc Usage: wc [OPTION]... [FILE]... @@ -2322,4 +2330,4 @@ Enrique Zanardi =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 @@ + + watchdog + + + Usage: watchdog device + + + + Periodically writes to watchdog device B. + + + wc 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 . + * + * 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 +#include + +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 . + * + * 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 +#include + +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; +} -- cgit v1.2.3