diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2013-06-26 03:14:04 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-07-12 12:46:00 -0400 |
commit | 167aedc44e1743777e6aee71b0fe7ed94c6298cd (patch) | |
tree | b569ee7287d043bef618b4c6f86ab71ff9db8389 /tools/perf/util/util.c | |
parent | fa1531fdd7b6332aa61bcc9fda495583acba460d (diff) |
perf util: Move debugfs/tracing helper functions to util.c
Since they're generic helpers move them to util.c so that they can be
used by others.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1372230862-15861-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/util.c')
-rw-r--r-- | tools/perf/util/util.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c index 59d868add275..9a0658405760 100644 --- a/tools/perf/util/util.c +++ b/tools/perf/util/util.c | |||
@@ -269,3 +269,62 @@ void perf_debugfs_set_path(const char *mntpt) | |||
269 | snprintf(debugfs_mountpoint, strlen(debugfs_mountpoint), "%s", mntpt); | 269 | snprintf(debugfs_mountpoint, strlen(debugfs_mountpoint), "%s", mntpt); |
270 | set_tracing_events_path(mntpt); | 270 | set_tracing_events_path(mntpt); |
271 | } | 271 | } |
272 | |||
273 | static const char *find_debugfs(void) | ||
274 | { | ||
275 | const char *path = perf_debugfs_mount(NULL); | ||
276 | |||
277 | if (!path) | ||
278 | fprintf(stderr, "Your kernel does not support the debugfs filesystem"); | ||
279 | |||
280 | return path; | ||
281 | } | ||
282 | |||
283 | /* | ||
284 | * Finds the path to the debugfs/tracing | ||
285 | * Allocates the string and stores it. | ||
286 | */ | ||
287 | const char *find_tracing_dir(void) | ||
288 | { | ||
289 | static char *tracing; | ||
290 | static int tracing_found; | ||
291 | const char *debugfs; | ||
292 | |||
293 | if (tracing_found) | ||
294 | return tracing; | ||
295 | |||
296 | debugfs = find_debugfs(); | ||
297 | if (!debugfs) | ||
298 | return NULL; | ||
299 | |||
300 | tracing = malloc(strlen(debugfs) + 9); | ||
301 | if (!tracing) | ||
302 | return NULL; | ||
303 | |||
304 | sprintf(tracing, "%s/tracing", debugfs); | ||
305 | |||
306 | tracing_found = 1; | ||
307 | return tracing; | ||
308 | } | ||
309 | |||
310 | char *get_tracing_file(const char *name) | ||
311 | { | ||
312 | const char *tracing; | ||
313 | char *file; | ||
314 | |||
315 | tracing = find_tracing_dir(); | ||
316 | if (!tracing) | ||
317 | return NULL; | ||
318 | |||
319 | file = malloc(strlen(tracing) + strlen(name) + 2); | ||
320 | if (!file) | ||
321 | return NULL; | ||
322 | |||
323 | sprintf(file, "%s/%s", tracing, name); | ||
324 | return file; | ||
325 | } | ||
326 | |||
327 | void put_tracing_file(char *file) | ||
328 | { | ||
329 | free(file); | ||
330 | } | ||