perf ui: Introduce generic ui_progress helper
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>
This commit is contained in:
Родитель
7da5c85dd3
Коммит
688f2f5b99
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
/*
|
||||
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче