diff options
Diffstat (limited to 'tools/perf/util/header.c')
-rw-r--r-- | tools/perf/util/header.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 589c28028379..3f0d809d853a 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c | |||
@@ -869,11 +869,18 @@ static int write_branch_stack(int fd __maybe_unused, | |||
869 | return 0; | 869 | return 0; |
870 | } | 870 | } |
871 | 871 | ||
872 | static int write_auxtrace(int fd __maybe_unused, | 872 | static int write_auxtrace(int fd, struct perf_header *h, |
873 | struct perf_header *h __maybe_unused, | ||
874 | struct perf_evlist *evlist __maybe_unused) | 873 | struct perf_evlist *evlist __maybe_unused) |
875 | { | 874 | { |
876 | return 0; | 875 | struct perf_session *session; |
876 | int err; | ||
877 | |||
878 | session = container_of(h, struct perf_session, header); | ||
879 | |||
880 | err = auxtrace_index__write(fd, &session->auxtrace_index); | ||
881 | if (err < 0) | ||
882 | pr_err("Failed to write auxtrace index\n"); | ||
883 | return err; | ||
877 | } | 884 | } |
878 | 885 | ||
879 | static void print_hostname(struct perf_header *ph, int fd __maybe_unused, | 886 | static void print_hostname(struct perf_header *ph, int fd __maybe_unused, |
@@ -1834,6 +1841,22 @@ out_free: | |||
1834 | return ret; | 1841 | return ret; |
1835 | } | 1842 | } |
1836 | 1843 | ||
1844 | static int process_auxtrace(struct perf_file_section *section, | ||
1845 | struct perf_header *ph, int fd, | ||
1846 | void *data __maybe_unused) | ||
1847 | { | ||
1848 | struct perf_session *session; | ||
1849 | int err; | ||
1850 | |||
1851 | session = container_of(ph, struct perf_session, header); | ||
1852 | |||
1853 | err = auxtrace_index__process(fd, section->size, session, | ||
1854 | ph->needs_swap); | ||
1855 | if (err < 0) | ||
1856 | pr_err("Failed to process auxtrace index\n"); | ||
1857 | return err; | ||
1858 | } | ||
1859 | |||
1837 | struct feature_ops { | 1860 | struct feature_ops { |
1838 | int (*write)(int fd, struct perf_header *h, struct perf_evlist *evlist); | 1861 | int (*write)(int fd, struct perf_header *h, struct perf_evlist *evlist); |
1839 | void (*print)(struct perf_header *h, int fd, FILE *fp); | 1862 | void (*print)(struct perf_header *h, int fd, FILE *fp); |
@@ -1874,7 +1897,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = { | |||
1874 | FEAT_OPA(HEADER_BRANCH_STACK, branch_stack), | 1897 | FEAT_OPA(HEADER_BRANCH_STACK, branch_stack), |
1875 | FEAT_OPP(HEADER_PMU_MAPPINGS, pmu_mappings), | 1898 | FEAT_OPP(HEADER_PMU_MAPPINGS, pmu_mappings), |
1876 | FEAT_OPP(HEADER_GROUP_DESC, group_desc), | 1899 | FEAT_OPP(HEADER_GROUP_DESC, group_desc), |
1877 | FEAT_OPA(HEADER_AUXTRACE, auxtrace), | 1900 | FEAT_OPP(HEADER_AUXTRACE, auxtrace), |
1878 | }; | 1901 | }; |
1879 | 1902 | ||
1880 | struct header_print_data { | 1903 | struct header_print_data { |