perf data: Add is_perf_data function
authorJiri Olsa <jolsa@kernel.org>
Thu, 26 Nov 2020 17:00:21 +0000 (18:00 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 27 Nov 2020 11:37:15 +0000 (08:37 -0300)
Adding is_perf_data function that returns true if the given path is perf
data file. It will be used in following patches.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20201126170026.2619053-21-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/data.c
tools/perf/util/data.h

index 05bbcb6..f29af4f 100644 (file)
@@ -492,3 +492,22 @@ char *perf_data__kallsyms_name(struct perf_data *data)
 
        return kallsyms_name;
 }
+
+bool is_perf_data(const char *path)
+{
+       bool ret = false;
+       FILE *file;
+       u64 magic;
+
+       file = fopen(path, "r");
+       if (!file)
+               return false;
+
+       if (fread(&magic, 1, 8, file) < 8)
+               goto out;
+
+       ret = is_perf_magic(magic);
+out:
+       fclose(file);
+       return ret;
+}
index c563fcb..62a3e66 100644 (file)
@@ -98,4 +98,5 @@ int perf_data__update_dir(struct perf_data *data);
 unsigned long perf_data__size(struct perf_data *data);
 int perf_data__make_kcore_dir(struct perf_data *data, char *buf, size_t buf_sz);
 char *perf_data__kallsyms_name(struct perf_data *data);
+bool is_perf_data(const char *path);
 #endif /* __PERF_DATA_H */