Skip to content

Commit

Permalink
perf ui: Introduce generic ui_progress helper
Browse files Browse the repository at this point in the history
Make ui_progress functions generic so that UI frontend code will add its
callbacks.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1352813436-14173-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Namhyung Kim authored and Arnaldo Carvalho de Melo committed Nov 14, 2012
1 parent 7da5c85 commit 688f2f5
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 12 deletions.
1 change: 1 addition & 0 deletions tools/perf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,7 @@ LIB_OBJS += $(OUTPUT)util/vdso.o
LIB_OBJS += $(OUTPUT)util/stat.o

LIB_OBJS += $(OUTPUT)ui/helpline.o
LIB_OBJS += $(OUTPUT)ui/progress.o
LIB_OBJS += $(OUTPUT)ui/hist.o
LIB_OBJS += $(OUTPUT)ui/stdio/hist.o

Expand Down
11 changes: 0 additions & 11 deletions tools/perf/ui/gtk/util.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,3 @@ struct perf_error_ops perf_gtk_eops = {
.warning = perf_gtk__warning_statusbar,
#endif
};

/*
* FIXME: Functions below should be implemented properly.
* For now, just add stubs for NO_NEWT=1 build.
*/
#ifndef NEWT_SUPPORT
void ui_progress__update(u64 curr __maybe_unused, u64 total __maybe_unused,
const char *title __maybe_unused)
{
}
#endif
20 changes: 20 additions & 0 deletions tools/perf/ui/progress.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include "../cache.h"
#include "progress.h"

static void nop_progress_update(u64 curr __maybe_unused,
u64 total __maybe_unused,
const char *title __maybe_unused)
{
}

static struct ui_progress default_progress_fns =
{
.update = nop_progress_update,
};

struct ui_progress *progress_fns = &default_progress_fns;

void ui_progress__update(u64 curr, u64 total, const char *title)
{
return progress_fns->update(curr, total, title);
}
8 changes: 8 additions & 0 deletions tools/perf/ui/progress.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@

#include <../types.h>

struct ui_progress {
void (*update)(u64, u64, const char *);
};

extern struct ui_progress *progress_fns;

void ui_progress__init(void);

void ui_progress__update(u64 curr, u64 total, const char *title);

#endif
12 changes: 11 additions & 1 deletion tools/perf/ui/tui/progress.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include "../ui.h"
#include "../browser.h"

void ui_progress__update(u64 curr, u64 total, const char *title)
static void tui_progress__update(u64 curr, u64 total, const char *title)
{
int bar, y;
/*
Expand All @@ -30,3 +30,13 @@ void ui_progress__update(u64 curr, u64 total, const char *title)
SLsmg_refresh();
pthread_mutex_unlock(&ui__lock);
}

static struct ui_progress tui_progress_fns =
{
.update = tui_progress__update,
};

void ui_progress__init(void)
{
progress_fns = &tui_progress_fns;
}
1 change: 1 addition & 0 deletions tools/perf/ui/tui/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ int ui__init(void)
newtSetSuspendCallback(newt_suspend, NULL);
ui_helpline__init();
ui_browser__init();
ui_progress__init();

signal(SIGSEGV, ui__signal);
signal(SIGFPE, ui__signal);
Expand Down

0 comments on commit 688f2f5

Please sign in to comment.