hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/tools/perf/util/data.h
....@@ -3,23 +3,37 @@
33 #define __PERF_DATA_H
44
55 #include <stdbool.h>
6
+#include <linux/types.h>
67
78 enum perf_data_mode {
89 PERF_DATA_MODE_WRITE,
910 PERF_DATA_MODE_READ,
1011 };
1112
13
+enum perf_dir_version {
14
+ PERF_DIR_SINGLE_FILE = 0,
15
+ PERF_DIR_VERSION = 1,
16
+};
17
+
1218 struct perf_data_file {
13
- const char *path;
19
+ char *path;
1420 int fd;
21
+ unsigned long size;
1522 };
1623
1724 struct perf_data {
25
+ const char *path;
1826 struct perf_data_file file;
1927 bool is_pipe;
28
+ bool is_dir;
2029 bool force;
21
- unsigned long size;
2230 enum perf_data_mode mode;
31
+
32
+ struct {
33
+ u64 version;
34
+ struct perf_data_file *files;
35
+ int nr;
36
+ } dir;
2337 };
2438
2539 static inline bool perf_data__is_read(struct perf_data *data)
....@@ -37,14 +51,19 @@
3751 return data->is_pipe;
3852 }
3953
54
+static inline bool perf_data__is_dir(struct perf_data *data)
55
+{
56
+ return data->is_dir;
57
+}
58
+
59
+static inline bool perf_data__is_single_file(struct perf_data *data)
60
+{
61
+ return data->dir.version == PERF_DIR_SINGLE_FILE;
62
+}
63
+
4064 static inline int perf_data__fd(struct perf_data *data)
4165 {
4266 return data->file.fd;
43
-}
44
-
45
-static inline unsigned long perf_data__size(struct perf_data *data)
46
-{
47
- return data->size;
4867 }
4968
5069 int perf_data__open(struct perf_data *data);
....@@ -62,5 +81,13 @@
6281 */
6382 int perf_data__switch(struct perf_data *data,
6483 const char *postfix,
65
- size_t pos, bool at_exit);
84
+ size_t pos, bool at_exit, char **new_filepath);
85
+
86
+int perf_data__create_dir(struct perf_data *data, int nr);
87
+int perf_data__open_dir(struct perf_data *data);
88
+void perf_data__close_dir(struct perf_data *data);
89
+int perf_data__update_dir(struct perf_data *data);
90
+unsigned long perf_data__size(struct perf_data *data);
91
+int perf_data__make_kcore_dir(struct perf_data *data, char *buf, size_t buf_sz);
92
+char *perf_data__kallsyms_name(struct perf_data *data);
6693 #endif /* __PERF_DATA_H */