• Jiri Olsa's avatar
    perf tools: Add kmod_path__parse function · 3c8a67f5
    Jiri Olsa authored
    Provides united way of parsing kernel module path
    into several components.
    
    The new kmod_path__parse function and few defines:
    
      int __kmod_path__parse(struct kmod_path *m, const char *path,
                             bool alloc_name, bool alloc_ext);
    
      #define kmod_path__parse(__m, __p)      __kmod_path__parse(__m, __p, false, false)
      #define kmod_path__parse_name(__m, __p) __kmod_path__parse(__m, __p, true , false)
      #define kmod_path__parse_ext(__m, __p)  __kmod_path__parse(__m, __p, false, true)
    
    parse kernel module @path and updates @M argument like:
    
      @comp - true if @path contains supported compression suffix,
              false otherwise
      @kmod - true if @path contains '.ko' suffix in right position,
              false otherwise
      @name - if (@alloc_name && @kmod) is true, it contains strdup-ed base name
              of the kernel module without suffixes, otherwise strudup-ed
              base name of @path
      @ext  - if (@alloc_ext && @comp) is true, it contains strdup-ed string
              the compression suffix
    
    It returns 0 if there's no strdup error, -ENOMEM otherwise.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/n/tip-9t6eqg8j610r94l743hkntiv@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    3c8a67f5
builtin-test.c 6.67 KB