aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/data.c17
-rw-r--r--tools/perf/util/data.h6
2 files changed, 18 insertions, 5 deletions
diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
index 5d0f26aef77f..b71c441cafbb 100644
--- a/tools/perf/util/data.c
+++ b/tools/perf/util/data.c
@@ -393,3 +393,20 @@ out:
393 free(new_filepath); 393 free(new_filepath);
394 return ret; 394 return ret;
395} 395}
396
397unsigned long perf_data__size(struct perf_data *data)
398{
399 u64 size = data->file.size;
400 int i;
401
402 if (!data->is_dir)
403 return size;
404
405 for (i = 0; i < data->dir.nr; i++) {
406 struct perf_data_file *file = &data->dir.files[i];
407
408 size += file->size;
409 }
410
411 return size;
412}
diff --git a/tools/perf/util/data.h b/tools/perf/util/data.h
index 0deeb1af9f54..d342469bdfda 100644
--- a/tools/perf/util/data.h
+++ b/tools/perf/util/data.h
@@ -54,11 +54,6 @@ static inline int perf_data__fd(struct perf_data *data)
54 return data->file.fd; 54 return data->file.fd;
55} 55}
56 56
57static inline unsigned long perf_data__size(struct perf_data *data)
58{
59 return data->file.size;
60}
61
62int perf_data__open(struct perf_data *data); 57int perf_data__open(struct perf_data *data);
63void perf_data__close(struct perf_data *data); 58void perf_data__close(struct perf_data *data);
64ssize_t perf_data__write(struct perf_data *data, 59ssize_t perf_data__write(struct perf_data *data,
@@ -80,4 +75,5 @@ int perf_data__create_dir(struct perf_data *data, int nr);
80int perf_data__open_dir(struct perf_data *data); 75int perf_data__open_dir(struct perf_data *data);
81void perf_data__close_dir(struct perf_data *data); 76void perf_data__close_dir(struct perf_data *data);
82int perf_data__update_dir(struct perf_data *data); 77int perf_data__update_dir(struct perf_data *data);
78unsigned long perf_data__size(struct perf_data *data);
83#endif /* __PERF_DATA_H */ 79#endif /* __PERF_DATA_H */