]> Git Repo - J-linux.git/blob - tools/tracing/rtla/src/timerlat.c
Merge tag 'kbuild-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy...
[J-linux.git] / tools / tracing / rtla / src / timerlat.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (C) 2021 Red Hat Inc, Daniel Bristot de Oliveira <[email protected]>
4  */
5 #include <sys/types.h>
6 #include <sys/stat.h>
7 #include <pthread.h>
8 #include <stdlib.h>
9 #include <string.h>
10 #include <unistd.h>
11 #include <errno.h>
12 #include <fcntl.h>
13 #include <stdio.h>
14
15 #include "timerlat.h"
16
17 static void timerlat_usage(int err)
18 {
19         int i;
20
21         static const char * const msg[] = {
22                 "",
23                 "timerlat version " VERSION,
24                 "",
25                 "  usage: [rtla] timerlat [MODE] ...",
26                 "",
27                 "  modes:",
28                 "     top   - prints the summary from timerlat tracer",
29                 "     hist  - prints a histogram of timer latencies",
30                 "",
31                 "if no MODE is given, the top mode is called, passing the arguments",
32                 NULL,
33         };
34
35         for (i = 0; msg[i]; i++)
36                 fprintf(stderr, "%s\n", msg[i]);
37         exit(err);
38 }
39
40 int timerlat_main(int argc, char *argv[])
41 {
42         if (argc == 0)
43                 goto usage;
44
45         /*
46          * if timerlat was called without any argument, run the
47          * default cmdline.
48          */
49         if (argc == 1) {
50                 timerlat_top_main(argc, argv);
51                 exit(0);
52         }
53
54         if ((strcmp(argv[1], "-h") == 0) || (strcmp(argv[1], "--help") == 0)) {
55                 timerlat_usage(0);
56         } else if (strncmp(argv[1], "-", 1) == 0) {
57                 /* the user skipped the tool, call the default one */
58                 timerlat_top_main(argc, argv);
59                 exit(0);
60         } else if (strcmp(argv[1], "top") == 0) {
61                 timerlat_top_main(argc-1, &argv[1]);
62                 exit(0);
63         } else if (strcmp(argv[1], "hist") == 0) {
64                 timerlat_hist_main(argc-1, &argv[1]);
65                 exit(0);
66         }
67
68 usage:
69         timerlat_usage(1);
70         exit(1);
71 }
This page took 0.037518 seconds and 4 git commands to generate.