static void parse_command_line(int argc, char **argv) { int opt; int longind; unsigned long val; while ((opt = getopt_long(argc, argv, "odfh:i:p:s:c:b:l:", lopts, &longind)) != -1) { switch(opt) { case '?': usage(); exit(1); break; case 'b': #ifndef INCLUDE_BANSCRIPT /* * Banscript is no longer supported unless * explicitly enabled */ log(TO_CONSOLE, LOG_INFO, "--banscript is not supported on this version of irqbalance, please use --polscript"); usage(); exit(1); #endif banscript = strdup(optarg); break; case 'c': deepest_cache = strtoul(optarg, NULL, 10); if (deepest_cache == ULONG_MAX || deepest_cache < 1) { usage(); exit(1); } break; case 'd': debug_mode=1; foreground_mode=1; break; case 'f': foreground_mode=1; break; case 'h': if (!strncmp(optarg, "exact", strlen(optarg))) global_hint_policy = HINT_POLICY_EXACT; else if (!strncmp(optarg, "subset", strlen(optarg))) global_hint_policy = HINT_POLICY_SUBSET; else if (!strncmp(optarg, "ignore", strlen(optarg))) global_hint_policy = HINT_POLICY_IGNORE; else { usage(); exit(1); } break; case 'i': val = strtoull(optarg, NULL, 10); if (val == ULONG_MAX) { usage(); exit(1); } add_cl_banned_irq((int)val); break; case 'l': polscript = strdup(optarg); break; case 'p': if (!strncmp(optarg, "off", strlen(optarg))) power_thresh = ULONG_MAX; else { power_thresh = strtoull(optarg, NULL, 10); if (power_thresh == ULONG_MAX) { usage(); exit(1); } } break; case 'o': one_shot_mode=1; break; case 's': pidfile = optarg; break; } } }
static void parse_command_line(int argc, char **argv) { int opt; int longind; unsigned long val; while ((opt = getopt_long(argc, argv, "odfji:p:s:c:l:m:t:V", lopts, &longind)) != -1) { switch(opt) { case '?': usage(); exit(1); break; case 'V': version(); exit(1); break; case 'c': deepest_cache = strtoul(optarg, NULL, 10); if (deepest_cache == ULONG_MAX || deepest_cache < 1) { usage(); exit(1); } break; case 'd': debug_mode=1; foreground_mode=1; break; case 'f': foreground_mode=1; break; case 'i': val = strtoull(optarg, NULL, 10); if (val == ULONG_MAX) { usage(); exit(1); } add_cl_banned_irq((int)val); break; case 'l': polscript = strdup(optarg); break; case 'm': add_cl_banned_module(optarg); break; case 'p': if (!strncmp(optarg, "off", strlen(optarg))) power_thresh = ULONG_MAX; else { power_thresh = strtoull(optarg, NULL, 10); if (power_thresh == ULONG_MAX) { usage(); exit(1); } } break; case 'o': one_shot_mode=1; break; case 's': pidfile = optarg; break; case 'j': journal_logging=1; foreground_mode=1; break; case 't': sleep_interval = strtol(optarg, NULL, 10); if (sleep_interval < 1) { usage(); exit(1); } break; } } }