tools lib traceevent: Add pevent_unregister_print_function()
When a plugin unloaded it needs to unregister its print handler from pevent. So add an unregister function to do it. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Reviewed-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung.kim@lge.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/1389839478-5887-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
ad13701d49
commit
20c7e5abbd
2 changed files with 25 additions and 0 deletions
|
@ -5560,6 +5560,29 @@ int pevent_register_print_function(struct pevent *pevent,
|
|||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* pevent_unregister_print_function - unregister a helper function
|
||||
* @pevent: the handle to the pevent
|
||||
* @func: the function to process the helper function
|
||||
* @name: the name of the helper function
|
||||
*
|
||||
* This function removes existing print handler for function @name.
|
||||
*
|
||||
* Returns 0 if the handler was removed successully, -1 otherwise.
|
||||
*/
|
||||
int pevent_unregister_print_function(struct pevent *pevent,
|
||||
pevent_func_handler func, char *name)
|
||||
{
|
||||
struct pevent_function_handler *func_handle;
|
||||
|
||||
func_handle = find_func_handler(pevent, name);
|
||||
if (func_handle && func_handle->func == func) {
|
||||
remove_func_handler(pevent, name);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static struct event_format *pevent_search_event(struct pevent *pevent, int id,
|
||||
const char *sys_name,
|
||||
const char *event_name)
|
||||
|
|
|
@ -631,6 +631,8 @@ int pevent_register_print_function(struct pevent *pevent,
|
|||
pevent_func_handler func,
|
||||
enum pevent_func_arg_type ret_type,
|
||||
char *name, ...);
|
||||
int pevent_unregister_print_function(struct pevent *pevent,
|
||||
pevent_func_handler func, char *name);
|
||||
|
||||
struct format_field *pevent_find_common_field(struct event_format *event, const char *name);
|
||||
struct format_field *pevent_find_field(struct event_format *event, const char *name);
|
||||
|
|
Loading…
Reference in a new issue