Commit 7514c39c authored by Jerry Hoemann's avatar Jerry Hoemann Committed by Shuah Khan (Samsung OSG)
Browse files

selftests: watchdog: Add gettimeout and get|set pretimeout



Add command line arguments to call ioctl WDIOC_GETTIMEOUT,
WDIOC_GETPRETIMEOUT and WDIOC_SETPRETIMEOUT.

Signed-off-by: default avatarJerry Hoemann <jerry.hoemann@hpe.com>
Signed-off-by: default avatarShuah Khan (Samsung OSG) <shuah@kernel.org>
parent 04d5e4bd
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@

int fd;
const char v = 'V';
static const char sopts[] = "bdehp:t:";
static const char sopts[] = "bdehp:t:Tn:N";
static const struct option lopts[] = {
	{"bootstatus",          no_argument, NULL, 'b'},
	{"disable",             no_argument, NULL, 'd'},
@@ -27,6 +27,9 @@ static const struct option lopts[] = {
	{"help",                no_argument, NULL, 'h'},
	{"pingrate",      required_argument, NULL, 'p'},
	{"timeout",       required_argument, NULL, 't'},
	{"gettimeout",          no_argument, NULL, 'T'},
	{"pretimeout",    required_argument, NULL, 'n'},
	{"getpretimeout",       no_argument, NULL, 'N'},
	{NULL,                  no_argument, NULL, 0x0}
};

@@ -71,9 +74,13 @@ static void usage(char *progname)
	printf(" -h, --help          Print the help message\n");
	printf(" -p, --pingrate=P    Set ping rate to P seconds (default %d)\n", DEFAULT_PING_RATE);
	printf(" -t, --timeout=T     Set timeout to T seconds\n");
	printf(" -T, --gettimeout    Get the timeout\n");
	printf(" -n, --pretimeout=T  Set the pretimeout to T seconds\n");
	printf(" -N, --getpretimeout Get the pretimeout\n");
	printf("\n");
	printf("Parameters are parsed left-to-right in real-time.\n");
	printf("Example: %s -d -t 10 -p 5 -e\n", progname);
	printf("Example: %s -t 12 -T -n 7 -N\n", progname);
}

int main(int argc, char *argv[])
@@ -141,6 +148,30 @@ int main(int argc, char *argv[])
			else
				printf("WDIOC_SETTIMEOUT error '%s'\n", strerror(errno));
			break;
		case 'T':
			oneshot = 1;
			ret = ioctl(fd, WDIOC_GETTIMEOUT, &flags);
			if (!ret)
				printf("WDIOC_GETTIMEOUT returns %u seconds.\n", flags);
			else
				printf("WDIOC_GETTIMEOUT error '%s'\n", strerror(errno));
			break;
		case 'n':
			flags = strtoul(optarg, NULL, 0);
			ret = ioctl(fd, WDIOC_SETPRETIMEOUT, &flags);
			if (!ret)
				printf("Watchdog pretimeout set to %u seconds.\n", flags);
			else
				printf("WDIOC_SETPRETIMEOUT error '%s'\n", strerror(errno));
			break;
		case 'N':
			oneshot = 1;
			ret = ioctl(fd, WDIOC_GETPRETIMEOUT, &flags);
			if (!ret)
				printf("WDIOC_GETPRETIMEOUT returns %u seconds.\n", flags);
			else
				printf("WDIOC_GETPRETIMEOUT error '%s'\n", strerror(errno));
			break;
		default:
			usage(argv[0]);
			goto end;