• Jiri Olsa's avatar
    tools lib traceevent: Add plugin support · c877bbd8
    Jiri Olsa authored
    Backporting plugin support for traceevent lib.
    
    Backported from Steven Rostedt's trace-cmd repo (HEAD 0f2c2fb):
    git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git
    
    It's now possible to use following interface to load plugins
    (shared objects) to enhance pevent object functionality.
    
    The plugin interface/hooks are as follows:
    (taken from event-parse.h comments)
    
    - 'pevent_plugin_loader' (required)
        The function name to initialized the plugin.
    
        int pevent_plugin_loader(struct pevent *pevent)
    
    - 'pevent_plugin_unloader' (optional)
        The function called just before unloading
    
        int pevent_plugin_unloader(void)
    
    - 'pevent_plugin_options'  (optional)
        Plugin options that can be set before loading
    
        struct plugin_option pevent_plugin_options[] = {
           {
                   .name = "option-name",
                   .plugin_alias = "overide-file-name", (optional)
                   .description = "description of option to show users",
           },
           {
                   .name = NULL,
           },
        };
    
        Array must end with .name = NULL;
    
        The plugin_alias (below) can be used to give a shorter
        name to access the variable. Useful if a plugin handles
        more than one event.
    
        NOTE options support is not backported yet.
    
    - 'pevent_plugin_alias' (optional)
        The name to use for finding options (uses filename if not defined)
    
    New traceevent functions are added to search and load
    available plugins:
    
      struct plugin_list*
      traceevent_load_plugins(struct pevent *pevent)
        - loads plusing for 'struct pevent' object and returns
          loaded plugins list
    
      void traceevent_unload_plugins(struct plugin_list *plugin_list);
        - unload plugin list
    Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/1386076182-14484-3-git-send-email-jolsa@redhat.comSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    c877bbd8
event-plugin.c 4.41 KB