aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2011-03-10 04:58:01 -0500
committerSteven Rostedt <rostedt@goodmis.org>2011-03-11 15:57:36 -0500
commitca7abd20cfe0f71337cd5170e9f3b52a130b4c5c (patch)
tree323509f9c8e419712f6fae7eaa4540883e87c5f3
parent96651c4917bb38ed015d5595d50212761289375a (diff)
trace-cmd: Fold long option parsing
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> LKML-Reference: <4D78A0A9.40000@cn.fujitsu.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-listen.c12
-rw-r--r--trace-read.c35
-rw-r--r--trace-record.c14
-rw-r--r--trace-stack.c32
4 files changed, 40 insertions, 53 deletions
diff --git a/trace-listen.c b/trace-listen.c
index e60c96b..daaffca 100644
--- a/trace-listen.c
+++ b/trace-listen.c
@@ -647,6 +647,8 @@ static void start_daemon(void)
647 die("starting daemon"); 647 die("starting daemon");
648} 648}
649 649
650#define OPT_debug 255
651
650void trace_listen(int argc, char **argv) 652void trace_listen(int argc, char **argv)
651{ 653{
652 char *logfile = NULL; 654 char *logfile = NULL;
@@ -666,7 +668,7 @@ void trace_listen(int argc, char **argv)
666 static struct option long_options[] = { 668 static struct option long_options[] = {
667 {"port", required_argument, NULL, 'p'}, 669 {"port", required_argument, NULL, 'p'},
668 {"help", no_argument, NULL, '?'}, 670 {"help", no_argument, NULL, '?'},
669 {"debug", no_argument, NULL, 0}, 671 {"debug", no_argument, NULL, OPT_debug},
670 {NULL, 0, NULL, 0} 672 {NULL, 0, NULL, 0}
671 }; 673 };
672 674
@@ -696,12 +698,8 @@ void trace_listen(int argc, char **argv)
696 case 'D': 698 case 'D':
697 daemon = 1; 699 daemon = 1;
698 break; 700 break;
699 case 0: 701 case OPT_debug:
700 switch (option_index) { 702 debug = 1;
701 case 2:
702 debug = 1;
703 break;
704 }
705 break; 703 break;
706 default: 704 default:
707 usage(argv); 705 usage(argv);
diff --git a/trace-read.c b/trace-read.c
index 932f5aa..018476d 100644
--- a/trace-read.c
+++ b/trace-read.c
@@ -812,6 +812,10 @@ static void add_functions(struct pevent *pevent, const char *file)
812 free(buf); 812 free(buf);
813} 813}
814 814
815#define OPT_cpu 255
816#define OPT_events 254
817#define OPT_kallsyms 253
818
815void trace_report (int argc, char **argv) 819void trace_report (int argc, char **argv)
816{ 820{
817 struct tracecmd_input *handle; 821 struct tracecmd_input *handle;
@@ -845,10 +849,10 @@ void trace_report (int argc, char **argv)
845 for (;;) { 849 for (;;) {
846 int option_index = 0; 850 int option_index = 0;
847 static struct option long_options[] = { 851 static struct option long_options[] = {
848 {"cpu", required_argument, NULL, 0}, 852 {"cpu", required_argument, NULL, OPT_cpu},
849 {"events", no_argument, NULL, 0}, 853 {"events", no_argument, NULL, OPT_events},
850 {"filter-test", no_argument, NULL, 'T'}, 854 {"filter-test", no_argument, NULL, 'T'},
851 {"kallsyms", required_argument, NULL, 0}, 855 {"kallsyms", required_argument, NULL, OPT_kallsyms},
852 {"help", no_argument, NULL, '?'}, 856 {"help", no_argument, NULL, '?'},
853 {NULL, 0, NULL, 0} 857 {NULL, 0, NULL, 0}
854 }; 858 };
@@ -917,23 +921,14 @@ void trace_report (int argc, char **argv)
917 case 'q': 921 case 'q':
918 silence_warnings = 1; 922 silence_warnings = 1;
919 break; 923 break;
920 case 0: 924 case OPT_cpu:
921 switch(option_index) { 925 parse_cpulist(optarg);
922 case 0: /* cpu */ 926 break;
923 parse_cpulist(optarg); 927 case OPT_events:
924 break; 928 print_events = 1;
925 case 1: /* events */ 929 break;
926 print_events = 1; 930 case OPT_kallsyms:
927 break; 931 functions = optarg;
928 case 2: /* filter-test */
929 test_filters = 1;
930 break;
931 case 3: /* kallsyms */
932 functions = optarg;
933 break;
934 default:
935 usage(argv);
936 }
937 break; 932 break;
938 default: 933 default:
939 usage(argv); 934 usage(argv);
diff --git a/trace-record.c b/trace-record.c
index a4642bf..740b744 100644
--- a/trace-record.c
+++ b/trace-record.c
@@ -1809,6 +1809,8 @@ static void record_all_events(void)
1809 listed_events = list; 1809 listed_events = list;
1810} 1810}
1811 1811
1812#define OPT_date 255
1813
1812void trace_record (int argc, char **argv) 1814void trace_record (int argc, char **argv)
1813{ 1815{
1814 const char *plugin = NULL; 1816 const char *plugin = NULL;
@@ -1862,7 +1864,7 @@ void trace_record (int argc, char **argv)
1862 for (;;) { 1864 for (;;) {
1863 int option_index = 0; 1865 int option_index = 0;
1864 static struct option long_options[] = { 1866 static struct option long_options[] = {
1865 {"date", no_argument, NULL, 0}, 1867 {"date", no_argument, NULL, OPT_date},
1866 {"help", no_argument, NULL, '?'}, 1868 {"help", no_argument, NULL, '?'},
1867 {NULL, 0, NULL, 0} 1869 {NULL, 0, NULL, 0}
1868 }; 1870 };
@@ -2005,14 +2007,8 @@ void trace_record (int argc, char **argv)
2005 case 'i': 2007 case 'i':
2006 ignore_event_not_found = 1; 2008 ignore_event_not_found = 1;
2007 break; 2009 break;
2008 case 0: 2010 case OPT_date:
2009 switch (option_index) { 2011 date = 1;
2010 case 0: /* date */
2011 date = 1;
2012 break;
2013 default:
2014 usage(argv);
2015 }
2016 break; 2012 break;
2017 default: 2013 default:
2018 usage(argv); 2014 usage(argv);
diff --git a/trace-stack.c b/trace-stack.c
index 3d9f392..24ba194 100644
--- a/trace-stack.c
+++ b/trace-stack.c
@@ -153,6 +153,10 @@ static void read_trace(void)
153 fclose(fp); 153 fclose(fp);
154} 154}
155 155
156#define OPT_start 255
157#define OPT_stop 254
158#define OPT_reset 253
159
156void trace_stack (int argc, char **argv) 160void trace_stack (int argc, char **argv)
157{ 161{
158 enum stack_type trace_type = STACK_REPORT; 162 enum stack_type trace_type = STACK_REPORT;
@@ -167,9 +171,9 @@ void trace_stack (int argc, char **argv)
167 for (;;) { 171 for (;;) {
168 int option_index = 0; 172 int option_index = 0;
169 static struct option long_options[] = { 173 static struct option long_options[] = {
170 {"start", no_argument, NULL, 0}, 174 {"start", no_argument, NULL, OPT_start},
171 {"stop", no_argument, NULL, 0}, 175 {"stop", no_argument, NULL, OPT_stop},
172 {"reset", no_argument, NULL, 0}, 176 {"reset", no_argument, NULL, OPT_reset},
173 {"help", no_argument, NULL, '?'}, 177 {"help", no_argument, NULL, '?'},
174 {NULL, 0, NULL, 0} 178 {NULL, 0, NULL, 0}
175 }; 179 };
@@ -183,20 +187,14 @@ void trace_stack (int argc, char **argv)
183 case 'h': 187 case 'h':
184 usage(argv); 188 usage(argv);
185 break; 189 break;
186 case 0: 190 case OPT_start:
187 switch(option_index) { 191 trace_type = STACK_START;
188 case 0: 192 break;
189 trace_type = STACK_START; 193 case OPT_stop:
190 break; 194 trace_type = STACK_STOP;
191 case 1: 195 break;
192 trace_type = STACK_STOP; 196 case OPT_reset:
193 break; 197 trace_type = STACK_RESET;
194 case 2:
195 trace_type = STACK_RESET;
196 break;
197 default:
198 usage(argv);
199 }
200 break; 198 break;
201 default: 199 default:
202 usage(argv); 200 usage(argv);