aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2017-09-08 08:05:09 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2017-09-13 08:49:15 -0400
commit25cc4eb44b0c840eff0e5a46a85b9ccbde77401b (patch)
tree060c4b3ee2a7fddc4a4763842ba3b4044d61fbe6
parent80f873557112fc163f011cd131d4cfe4959100a6 (diff)
perf ui progress: Add ui specific init function
Adding ui specific init function allowing to setup the progress bar width based on current screen scales. Adding TUI init function to get more grained update of the progress bar. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: David Ahern <dsahern@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20170908120510.22515-4-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/ui/progress.c2
-rw-r--r--tools/perf/ui/progress.h1
-rw-r--r--tools/perf/ui/tui/progress.c9
3 files changed, 10 insertions, 2 deletions
diff --git a/tools/perf/ui/progress.c b/tools/perf/ui/progress.c
index ae91c8148edf..3e2b5d64c55e 100644
--- a/tools/perf/ui/progress.c
+++ b/tools/perf/ui/progress.c
@@ -34,6 +34,8 @@ void ui_progress__init(struct ui_progress *p, u64 total, const char *title)
34 p->total = total; 34 p->total = total;
35 p->title = title; 35 p->title = title;
36 36
37 if (ui_progress__ops->init)
38 ui_progress__ops->init(p);
37} 39}
38 40
39void ui_progress__finish(void) 41void ui_progress__finish(void)
diff --git a/tools/perf/ui/progress.h b/tools/perf/ui/progress.h
index 717d39d3052b..e5f434a2070b 100644
--- a/tools/perf/ui/progress.h
+++ b/tools/perf/ui/progress.h
@@ -14,6 +14,7 @@ void ui_progress__init(struct ui_progress *p, u64 total, const char *title);
14void ui_progress__update(struct ui_progress *p, u64 adv); 14void ui_progress__update(struct ui_progress *p, u64 adv);
15 15
16struct ui_progress_ops { 16struct ui_progress_ops {
17 void (*init)(struct ui_progress *p);
17 void (*update)(struct ui_progress *p); 18 void (*update)(struct ui_progress *p);
18 void (*finish)(void); 19 void (*finish)(void);
19}; 20};
diff --git a/tools/perf/ui/tui/progress.c b/tools/perf/ui/tui/progress.c
index c4b99008e2c9..f6b8f52aad7e 100644
--- a/tools/perf/ui/tui/progress.c
+++ b/tools/perf/ui/tui/progress.c
@@ -5,6 +5,11 @@
5#include "tui.h" 5#include "tui.h"
6#include "../browser.h" 6#include "../browser.h"
7 7
8static void __tui_progress__init(struct ui_progress *p)
9{
10 p->next = p->step = p->total / (SLtt_Screen_Cols - 2) ?: 1;
11}
12
8static void tui_progress__update(struct ui_progress *p) 13static void tui_progress__update(struct ui_progress *p)
9{ 14{
10 int bar, y; 15 int bar, y;
@@ -49,8 +54,8 @@ static void tui_progress__finish(void)
49 pthread_mutex_unlock(&ui__lock); 54 pthread_mutex_unlock(&ui__lock);
50} 55}
51 56
52static struct ui_progress_ops tui_progress__ops = 57static struct ui_progress_ops tui_progress__ops = {
53{ 58 .init = __tui_progress__init,
54 .update = tui_progress__update, 59 .update = tui_progress__update,
55 .finish = tui_progress__finish, 60 .finish = tui_progress__finish,
56}; 61};