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:
parent
31c765081d
commit
1572f520cc
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user