Lines Matching +full:cmd +full:- +full:cnt +full:- +full:name

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
55 void (*cmd)(struct procstat *, struct kinfo_proc *); member
73 * - usage field is abused to hold the pointer to the function
103 { "fd", "files", "[-C]", &procstat_files, &cmdopt_files,
105 { "file", "files", "[-C]", &procstat_files, &cmdopt_files,
109 { "kstack", "kstack", "[-v]", &procstat_kstack, &cmdopt_verbose,
123 { "rusage", "rusage", "[-Ht]", &procstat_rusage, &cmdopt_rusage,
127 { "signal", "signals", "[-n]", &procstat_sigs, &cmdopt_signals,
131 { "tsignal", "thread_signals", "[-n]", &procstat_threads_sigs,
137 usage(const struct procstat_cmd *cmd) in usage() argument
142 if (cmd == NULL || (cmd->cmp & PS_MODE_COMPAT) == 0) { in usage()
143 xo_error("usage: procstat [--libxo] [-h] [-M core] [-N system]" in usage()
144 " [-w interval] command\n" in usage()
146 " procstat [--libxo] -a [-h] [-M core] [-N system] " in usage()
147 " [-w interval] command\n" in usage()
148 " procstat [--libxo] [-h] [-M core] [-N system]" in usage()
149 " [-w interval]\n" in usage()
150 " [-S | -b | -c | -e | -f [-C] | -i [-n] | " in usage()
151 "-j [-n] | -k [-k] |\n" in usage()
152 " -l | -r [-H] | -s | -t | -v | -x] " in usage()
154 " procstat [--libxo] -a [-h] [-M core] [-N system]" in usage()
155 " [-w interval]\n" in usage()
156 " [-S | -b | -c | -e | -f [-C] | -i [-n] | " in usage()
157 "-j [-n] | -k [-k] |\n" in usage()
158 " -l | -r [-H] | -s | -t | -v | -x]\n" in usage()
159 " procstat [--libxo] -L [-h] [-M core] [-N system] core ...\n" in usage()
162 multi = i + 1 < l && cmd_table[i].cmd == in usage()
163 cmd_table[i + 1].cmd; in usage()
167 for (; i + 1 < l && cmd_table[i].cmd == in usage()
168 cmd_table[i + 1].cmd; i++) in usage()
179 xo_error("usage: %s [--libxo] pid ...\n", progname); in usage()
186 procstat(const struct procstat_cmd *cmd, struct procstat *prstat, in procstat() argument
191 asprintf(&pidstr, "%d", kipp->ki_pid); in procstat()
195 cmd->cmd(prstat, kipp); in procstat()
208 i = ((const struct kinfo_proc *)a)->ki_pid - in kinfo_proc_compare()
209 ((const struct kinfo_proc *)b)->ki_pid; in kinfo_proc_compare()
212 i = ((const struct kinfo_proc *)a)->ki_tid - in kinfo_proc_compare()
213 ((const struct kinfo_proc *)b)->ki_tid; in kinfo_proc_compare()
227 static char name[MAXCOMLEN+1]; in kinfo_proc_thread_name() local
229 strlcpy(name, kipp->ki_tdname, sizeof(name)); in kinfo_proc_thread_name()
230 strlcat(name, kipp->ki_moretdname, sizeof(name)); in kinfo_proc_thread_name()
231 if (name[0] == '\0' || strcmp(kipp->ki_comm, name) == 0) { in kinfo_proc_thread_name()
232 name[0] = '-'; in kinfo_proc_thread_name()
233 name[1] = '\0'; in kinfo_proc_thread_name()
236 return (name); in kinfo_proc_thread_name()
260 const struct procstat_cmd *cmd; in getcmd() local
266 cmd = NULL; in getcmd()
269 s = l > 1 && strcasecmp(str + l - 1, "s") == 0; in getcmd()
275 if (cmd == NULL && (cmd_table[i].cmp & PS_CMP_SUBSTR)) in getcmd()
276 cmp = strncasecmp(str, cmd_table[i].command, l - in getcmd()
280 cmp = strncasecmp(str, cmd_table[i].command, l - 1); in getcmd()
284 cmd = &cmd_table[i]; in getcmd()
286 return (cmd); in getcmd()
293 const struct procstat_cmd *cmd; in main() local
299 int aflag, ch, cnt, i, interval; in main() local
302 cmd = NULL; in main()
308 cmd = getcmdbyprogname(progname); in main()
310 while ((ch = getopt(argc, argv, "abCcefHhijkLlM:N:nrSstvw:x")) != -1) { in main()
316 if (cmd != NULL) in main()
317 usage(cmd); in main()
318 cmd = getcmd("binary"); in main()
324 if (cmd != NULL) in main()
325 usage(cmd); in main()
326 cmd = getcmd("arguments"); in main()
329 if (cmd != NULL) in main()
330 usage(cmd); in main()
331 cmd = getcmd("environment"); in main()
334 if (cmd != NULL) in main()
335 usage(cmd); in main()
336 cmd = getcmd("files"); in main()
345 if (cmd != NULL) in main()
346 usage(cmd); in main()
347 cmd = getcmd("signals"); in main()
350 if (cmd != NULL) in main()
351 usage(cmd); in main()
352 cmd = getcmd("tsignals"); in main()
355 if (cmd != NULL && cmd->cmd == procstat_kstack) { in main()
357 usage(cmd); in main()
360 if (cmd != NULL) in main()
361 usage(cmd); in main()
362 cmd = getcmd("kstack"); in main()
366 if (cmd != NULL) in main()
367 usage(cmd); in main()
368 cmd = getcmd("ptlwpinfo"); in main()
371 if (cmd != NULL) in main()
372 usage(cmd); in main()
373 cmd = getcmd("rlimit"); in main()
385 if (cmd != NULL) in main()
386 usage(cmd); in main()
387 cmd = getcmd("rusage"); in main()
390 if (cmd != NULL) in main()
391 usage(cmd); in main()
392 cmd = getcmd("cpuset"); in main()
395 if (cmd != NULL) in main()
396 usage(cmd); in main()
397 cmd = getcmd("credentials"); in main()
400 if (cmd != NULL) in main()
401 usage(cmd); in main()
402 cmd = getcmd("threads"); in main()
405 if (cmd != NULL) in main()
406 usage(cmd); in main()
407 cmd = getcmd("vm"); in main()
412 usage(cmd); in main()
414 usage(cmd); in main()
418 if (cmd != NULL) in main()
419 usage(cmd); in main()
420 cmd = getcmd("auxv"); in main()
424 usage(cmd); in main()
428 argc -= optind; in main()
431 if (cmd == NULL && argv[0] != NULL && (cmd = getcmd(argv[0])) != NULL) { in main()
433 usage(cmd); in main()
434 if (cmd->opt != NULL) { in main()
437 cmd->opt(argc, argv); in main()
438 if ((cmd->cmp & PS_MODE_COMPAT) == 0) { in main()
439 argc -= optind; in main()
443 argc -= 1; in main()
447 if (cmd == NULL) in main()
448 cmd = getcmd("basic"); in main()
449 if (cmd->cmd != procstat_files && in main()
451 (cmd->cmp & PS_MODE_COMPAT) == 0) in main()
452 usage(cmd); in main()
455 /* Must specify either the -a flag or a list of pids. */ in main()
457 (cmd->cmp & PS_MODE_NO_KINFO_PROC) == 0) in main()
458 usage(cmd); in main()
467 xocontainer = cmd->xocontainer != NULL ? cmd->xocontainer : in main()
468 cmd->command; in main()
473 if ((cmd->cmp & PS_MODE_NO_KINFO_PROC) != 0) { in main()
474 cmd->cmd(prstat, NULL); in main()
479 p = procstat_getprocs(prstat, KERN_PROC_PROC, 0, &cnt); in main()
482 kinfo_proc_sort(p, cnt); in main()
483 for (i = 0; i < cnt; i++) { in main()
484 procstat(cmd, prstat, &p[i]); in main()
496 usage(cmd); in main()
500 pid, &cnt); in main()
503 if (cnt != 0) in main()
504 procstat(cmd, prstat, p); in main()
507 if ((cmd->cmp & PS_MODE_COMPAT) == 0) { in main()
514 KERN_PROC_PID, -1, &cnt); in main()
519 if (cnt != 0) in main()
520 procstat(cmd, cprstat, p); in main()
524 usage(cmd); in main()
527 if ((cmd->cmp & PS_MODE_COMPAT) == 0) { in main()
551 while ((ch = getopt(argc, argv, "")) != -1) { in cmdopt_none()
565 while ((ch = getopt(argc, argv, "v")) != -1) { in cmdopt_verbose()
582 while ((ch = getopt(argc, argv, "n")) != -1) { in cmdopt_signals()
599 while ((ch = getopt(argc, argv, "Ht")) != -1) { in cmdopt_rusage()
618 while ((ch = getopt(argc, argv, "C")) != -1) { in cmdopt_files()
643 while ((ch = getopt(argc, argv, "v")) != -1) { in cmdopt_kqueue()