in benchmarks/cyclictest/cyclictest.c [217:391]
static bool parse_args(int argc, char * const argv[])
{
int longindex;
int opt;
long decimal;
while ((opt = getopt_long(argc, argv, "c:d:D:h:Hi:l:m:n:p:qt:T:",
optargs, &longindex)) != -1)
{
switch (opt)
{
case 'c':
decimal = arg_decimal(optarg);
if (decimal < 0)
{
return false;
}
else if (decimal == CLOCK_MONOTONIC || decimal == CLOCK_REALTIME)
{
config.clock = decimal;
}
break;
case 'd':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.distance = decimal;
}
else
{
return false;
}
break;
case 'D':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.duration = decimal;
}
else
{
return false;
}
break;
case 'e':
return true;
case 'h':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.histogram = decimal;
}
else
{
return false;
}
break;
case 'H':
config.histofall = true;
break;
case 'i':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.interval = decimal;
}
else
{
return false;
}
break;
case 'l':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.loops = decimal;
}
else
{
return false;
}
break;
case 'm':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.meas_method = decimal;
}
else
{
return false;
}
break;
case 'n':
decimal = arg_decimal(optarg);
if (decimal >= 0)
{
config.wait_method = decimal;
}
else
{
return false;
}
break;
case 'p':
decimal = arg_decimal(optarg);
if (decimal >= 0 && decimal <= 255)
{
config.prio = decimal;
}
else
{
return false;
}
break;
case 'q':
config.quiet = true;
break;
case 't':
decimal = arg_decimal(optarg);
if (decimal > 0)
{
config.threads = decimal;
}
else
{
return false;
}
break;
case 'T':
config.timer_dev = optarg;
break;
case 'y':
if (strcmp(optarg, "other") == 0)
{
config.policy = SCHED_OTHER;
}
else if (strcmp(optarg, "normal") == 0)
{
config.policy = SCHED_NORMAL;
}
else if (strcmp(optarg, "batch") == 0)
{
config.policy = SCHED_BATCH;
}
else if (strcmp(optarg, "idle") == 0)
{
config.policy = SCHED_IDLE;
}
else if (strcmp(optarg, "fifo") == 0)
{
config.policy = SCHED_FIFO;
}
else if (strcmp(optarg, "rr") == 0)
{
config.policy = SCHED_RR;
}
else
{
return false;
}
break;
case '?':
return false;
default:
break;
}
}
if (optind < argc)
{
return false;
}
return true;
}