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)util/stat.o
|
||||||
|
|
||||||
LIB_OBJS += $(OUTPUT)ui/helpline.o
|
LIB_OBJS += $(OUTPUT)ui/helpline.o
|
||||||
|
LIB_OBJS += $(OUTPUT)ui/progress.o
|
||||||
LIB_OBJS += $(OUTPUT)ui/hist.o
|
LIB_OBJS += $(OUTPUT)ui/hist.o
|
||||||
LIB_OBJS += $(OUTPUT)ui/stdio/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,
|
.warning = perf_gtk__warning_statusbar,
|
||||||
#endif
|
#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>
|
#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);
|
void ui_progress__update(u64 curr, u64 total, const char *title);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include "../ui.h"
|
#include "../ui.h"
|
||||||
#include "../browser.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;
|
int bar, y;
|
||||||
/*
|
/*
|
||||||
|
@ -30,3 +30,13 @@ void ui_progress__update(u64 curr, u64 total, const char *title)
|
||||||
SLsmg_refresh();
|
SLsmg_refresh();
|
||||||
pthread_mutex_unlock(&ui__lock);
|
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);
|
newtSetSuspendCallback(newt_suspend, NULL);
|
||||||
ui_helpline__init();
|
ui_helpline__init();
|
||||||
ui_browser__init();
|
ui_browser__init();
|
||||||
|
ui_progress__init();
|
||||||
|
|
||||||
signal(SIGSEGV, ui__signal);
|
signal(SIGSEGV, ui__signal);
|
||||||
signal(SIGFPE, ui__signal);
|
signal(SIGFPE, ui__signal);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче