diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2012-04-30 00:55:05 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-05-02 15:17:20 -0400 |
commit | ca09b2e1b307724666577859eb460ac6d4c67330 (patch) | |
tree | 6516298b0c5926295143666a5c56fdc27199f438 | |
parent | 12864b31583bcbd26789ebe68c612688f9ee2e30 (diff) |
perf ui: Make setup_browser() generic
The setup_browser contained newt-related codes in it.
As gtk front-end added recently, it should be more generic to handle
both cases properly.
So move newt codes to the ui__init() for now.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Acked-by: Pekka Enberg <penberg@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1335761711-31403-2-git-send-email-namhyung.kim@lge.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/ui/setup.c | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/tools/perf/ui/setup.c b/tools/perf/ui/setup.c index 85a69faa09aa..becdcd0d9ce7 100644 --- a/tools/perf/ui/setup.c +++ b/tools/perf/ui/setup.c | |||
@@ -93,14 +93,37 @@ static void newt_suspend(void *d __used) | |||
93 | newtResume(); | 93 | newtResume(); |
94 | } | 94 | } |
95 | 95 | ||
96 | static void ui__exit(void); | ||
97 | |||
98 | static void ui__signal(int sig) | ||
99 | { | ||
100 | ui__exit(); | ||
101 | psignal(sig, "perf"); | ||
102 | exit(0); | ||
103 | } | ||
104 | |||
96 | static int ui__init(void) | 105 | static int ui__init(void) |
97 | { | 106 | { |
98 | int err = SLkp_init(); | 107 | int err; |
99 | 108 | ||
100 | if (err < 0) | 109 | newtInit(); |
110 | err = SLkp_init(); | ||
111 | if (err < 0) { | ||
112 | pr_err("TUI initialization failed.\n"); | ||
101 | goto out; | 113 | goto out; |
114 | } | ||
102 | 115 | ||
103 | SLkp_define_keysym((char *)"^(kB)", SL_KEY_UNTAB); | 116 | SLkp_define_keysym((char *)"^(kB)", SL_KEY_UNTAB); |
117 | |||
118 | newtSetSuspendCallback(newt_suspend, NULL); | ||
119 | ui_helpline__init(); | ||
120 | ui_browser__init(); | ||
121 | |||
122 | signal(SIGSEGV, ui__signal); | ||
123 | signal(SIGFPE, ui__signal); | ||
124 | signal(SIGINT, ui__signal); | ||
125 | signal(SIGQUIT, ui__signal); | ||
126 | signal(SIGTERM, ui__signal); | ||
104 | out: | 127 | out: |
105 | return err; | 128 | return err; |
106 | } | 129 | } |
@@ -113,13 +136,6 @@ static void ui__exit(void) | |||
113 | SLang_reset_tty(); | 136 | SLang_reset_tty(); |
114 | } | 137 | } |
115 | 138 | ||
116 | static void ui__signal(int sig) | ||
117 | { | ||
118 | ui__exit(); | ||
119 | psignal(sig, "perf"); | ||
120 | exit(0); | ||
121 | } | ||
122 | |||
123 | void setup_browser(bool fallback_to_pager) | 139 | void setup_browser(bool fallback_to_pager) |
124 | { | 140 | { |
125 | if (!isatty(1) || !use_browser || dump_trace) { | 141 | if (!isatty(1) || !use_browser || dump_trace) { |
@@ -130,17 +146,7 @@ void setup_browser(bool fallback_to_pager) | |||
130 | } | 146 | } |
131 | 147 | ||
132 | use_browser = 1; | 148 | use_browser = 1; |
133 | newtInit(); | ||
134 | ui__init(); | 149 | ui__init(); |
135 | newtSetSuspendCallback(newt_suspend, NULL); | ||
136 | ui_helpline__init(); | ||
137 | ui_browser__init(); | ||
138 | |||
139 | signal(SIGSEGV, ui__signal); | ||
140 | signal(SIGFPE, ui__signal); | ||
141 | signal(SIGINT, ui__signal); | ||
142 | signal(SIGQUIT, ui__signal); | ||
143 | signal(SIGTERM, ui__signal); | ||
144 | } | 150 | } |
145 | 151 | ||
146 | void exit_browser(bool wait_for_ok) | 152 | void exit_browser(bool wait_for_ok) |