summaryrefslogtreecommitdiffhomepage
path: root/miscutils/watchdog.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:29:43 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-17 09:29:43 +0000
commitb44c790e41e281965955a83408f35ea53ecdb3d2 (patch)
tree98514dba64f7b74b9d60882bfeca1e2c4976b033 /miscutils/watchdog.c
parentd25c33f186c7cf3618c34ce79af94fe156f9ab02 (diff)
*: fix various kinds of damage to letter 'c' in Arkadiusz Mickiewicz' surname.
chrt,taskset,dc,eject: shrink crontab: call "vi" with just name, no path watchdog: intercept all fatal signals function old new delta xstrtoull_range - 35 +35 static.sg_commands - 18 +18 packed_usage 23698 23712 +14 watchdog_main 148 151 +3 crontab_main 637 638 +1 base 1 - -1 static.ps 4 - -4 pointer 4 - -4 stack_machine 99 92 -7 run_command 273 260 -13 eject_main 360 343 -17 static.C 30 12 -18 ptok 61 38 -23 xstrtol_range 27 - -27 get_token 35 - -35 taskset_main 586 550 -36 chrt_main 411 372 -39 dc_main 158 117 -41 time_main 1127 1037 -90 ------------------------------------------------------------------------------ (add/remove: 2/5 grow/shrink: 3/9 up/down: 71/-355) Total: -284 bytes text data bss dec hex filename 793680 662 7420 801762 c3be2 busybox_old 793327 662 7412 801401 c3a79 busybox_unstripped
Diffstat (limited to 'miscutils/watchdog.c')
-rw-r--r--miscutils/watchdog.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/miscutils/watchdog.c b/miscutils/watchdog.c
index 28bd35813..7fb16b861 100644
--- a/miscutils/watchdog.c
+++ b/miscutils/watchdog.c
@@ -13,8 +13,7 @@
#define OPT_FOREGROUND 0x01
#define OPT_TIMER 0x02
-static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig) ATTRIBUTE_NORETURN;
-static void watchdog_shutdown(int ATTRIBUTE_UNUSED sig)
+static void watchdog_shutdown(int sig ATTRIBUTE_UNUSED)
{
static const char V = 'V';
@@ -47,14 +46,19 @@ int watchdog_main(int argc, char **argv)
bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv);
}
- bb_signals(0
- + (1 << SIGHUP)
- + (1 << SIGINT)
- , watchdog_shutdown);
+ bb_signals(BB_SIGS_FATAL, watchdog_shutdown);
/* Use known fd # - avoid needing global 'int fd' */
xmove_fd(xopen(argv[argc - 1], O_WRONLY), 3);
+// TODO?
+// if (!(opts & OPT_TIMER)) {
+// if (ioctl(fd, WDIOC_GETTIMEOUT, &timer_duration) == 0)
+// timer_duration *= 500;
+// else
+// timer_duration = 30000;
+// }
+
while (1) {
/*
* Make sure we clear the counter before sleeping, as the counter value