watchdog: do not use argc, other cleanups

function                                             old     new   delta
watchdog_main                                        298     291      -7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-07-08 18:53:49 +02:00
parent 31c765081d
commit 1572f520cc

View File

@ -35,8 +35,21 @@
//usage: "\nUse 500ms to specify period in milliseconds"
#include "libbb.h"
#include "linux/types.h" /* for __u32 */
#include "linux/watchdog.h"
#include <linux/types.h> /* for __u32 */
#include <linux/watchdog.h>
#ifndef WDIOC_SETOPTIONS
# define WDIOC_SETOPTIONS 0x5704
#endif
#ifndef WDIOC_SETTIMEOUT
# define WDIOC_SETTIMEOUT 0x5706
#endif
#ifndef WDIOC_GETTIMEOUT
# define WDIOC_GETTIMEOUT 0x5707
#endif
#ifndef WDIOS_ENABLECARD
# define WDIOS_ENABLECARD 2
#endif
#define OPT_FOREGROUND (1 << 0)
#define OPT_STIMER (1 << 1)
@ -73,8 +86,9 @@ static void watchdog_open(const char* device)
}
int watchdog_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int watchdog_main(int argc, char **argv)
int watchdog_main(int argc UNUSED_PARAM, char **argv)
{
static const int enable = WDIOS_ENABLECARD;
static const struct suffix_mult suffixes[] = {
{ "ms", 1 },
{ "", 1000 },
@ -99,6 +113,8 @@ int watchdog_main(int argc, char **argv)
if (!(opts & OPT_FOREGROUND))
bb_daemonize_or_rexec(DAEMON_CHDIR_ROOT, argv);
/* maybe bb_logenv_override(); here for LOGGING=syslog to work? */
if (opts & OPT_HTIMER)
htimer_duration = xatou_sfx(ht_arg, suffixes);
stimer_duration = htimer_duration / 2;
@ -107,22 +123,12 @@ int watchdog_main(int argc, char **argv)
bb_signals(BB_FATAL_SIGS, shutdown_on_signal);
watchdog_open(argv[argc - 1]);
watchdog_open(argv[optind]);
/* WDIOC_SETTIMEOUT takes seconds, not milliseconds */
htimer_duration = htimer_duration / 1000;
#ifndef WDIOC_SETTIMEOUT
# error WDIOC_SETTIMEOUT is not defined, cannot compile watchdog applet
#else
# if defined WDIOC_SETOPTIONS && defined WDIOS_ENABLECARD
{
static const int enable = WDIOS_ENABLECARD;
ioctl_or_warn(3, WDIOC_SETOPTIONS, (void*) &enable);
}
# endif
ioctl_or_warn(3, WDIOC_SETOPTIONS, (void*) &enable);
ioctl_or_warn(3, WDIOC_SETTIMEOUT, &htimer_duration);
#endif
#if 0
ioctl_or_warn(3, WDIOC_GETTIMEOUT, &htimer_duration);
printf("watchdog: SW timer is %dms, HW timer is %ds\n",