]>
Commit | Line | Data |
---|---|---|
0db15b1e AH |
1 | /* |
2 | * db-export.h: Support for exporting data suitable for import to a database | |
3 | * Copyright (c) 2014, Intel Corporation. | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms and conditions of the GNU General Public License, | |
7 | * version 2, as published by the Free Software Foundation. | |
8 | * | |
9 | * This program is distributed in the hope it will be useful, but WITHOUT | |
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
12 | * more details. | |
13 | * | |
14 | */ | |
15 | ||
16 | #ifndef __PERF_DB_EXPORT_H | |
17 | #define __PERF_DB_EXPORT_H | |
18 | ||
19 | #include <linux/types.h> | |
758008b2 | 20 | #include <linux/list.h> |
0db15b1e AH |
21 | |
22 | struct perf_evsel; | |
23 | struct machine; | |
24 | struct thread; | |
25 | struct comm; | |
26 | struct dso; | |
27 | struct perf_sample; | |
28 | struct addr_location; | |
88f50d60 AH |
29 | struct call_return_processor; |
30 | struct call_path; | |
31 | struct call_return; | |
0db15b1e AH |
32 | |
33 | struct export_sample { | |
34 | union perf_event *event; | |
35 | struct perf_sample *sample; | |
36 | struct perf_evsel *evsel; | |
0db15b1e AH |
37 | struct addr_location *al; |
38 | u64 db_id; | |
39 | u64 comm_db_id; | |
40 | u64 dso_db_id; | |
41 | u64 sym_db_id; | |
42 | u64 offset; /* ip offset from symbol start */ | |
43 | u64 addr_dso_db_id; | |
44 | u64 addr_sym_db_id; | |
45 | u64 addr_offset; /* addr offset from symbol start */ | |
46 | }; | |
47 | ||
48 | struct db_export { | |
49 | int (*export_evsel)(struct db_export *dbe, struct perf_evsel *evsel); | |
50 | int (*export_machine)(struct db_export *dbe, struct machine *machine); | |
51 | int (*export_thread)(struct db_export *dbe, struct thread *thread, | |
52 | u64 main_thread_db_id, struct machine *machine); | |
53 | int (*export_comm)(struct db_export *dbe, struct comm *comm); | |
54 | int (*export_comm_thread)(struct db_export *dbe, u64 db_id, | |
55 | struct comm *comm, struct thread *thread); | |
56 | int (*export_dso)(struct db_export *dbe, struct dso *dso, | |
57 | struct machine *machine); | |
58 | int (*export_symbol)(struct db_export *dbe, struct symbol *sym, | |
59 | struct dso *dso); | |
f2bff007 AH |
60 | int (*export_branch_type)(struct db_export *dbe, u32 branch_type, |
61 | const char *name); | |
0db15b1e | 62 | int (*export_sample)(struct db_export *dbe, struct export_sample *es); |
88f50d60 AH |
63 | int (*export_call_path)(struct db_export *dbe, struct call_path *cp); |
64 | int (*export_call_return)(struct db_export *dbe, | |
65 | struct call_return *cr); | |
66 | struct call_return_processor *crp; | |
0db15b1e AH |
67 | u64 evsel_last_db_id; |
68 | u64 machine_last_db_id; | |
69 | u64 thread_last_db_id; | |
70 | u64 comm_last_db_id; | |
71 | u64 comm_thread_last_db_id; | |
72 | u64 dso_last_db_id; | |
73 | u64 symbol_last_db_id; | |
74 | u64 sample_last_db_id; | |
88f50d60 AH |
75 | u64 call_path_last_db_id; |
76 | u64 call_return_last_db_id; | |
758008b2 | 77 | struct list_head deferred; |
0db15b1e AH |
78 | }; |
79 | ||
80 | int db_export__init(struct db_export *dbe); | |
758008b2 | 81 | int db_export__flush(struct db_export *dbe); |
0db15b1e AH |
82 | void db_export__exit(struct db_export *dbe); |
83 | int db_export__evsel(struct db_export *dbe, struct perf_evsel *evsel); | |
84 | int db_export__machine(struct db_export *dbe, struct machine *machine); | |
85 | int db_export__thread(struct db_export *dbe, struct thread *thread, | |
86 | struct machine *machine, struct comm *comm); | |
87 | int db_export__comm(struct db_export *dbe, struct comm *comm, | |
88 | struct thread *main_thread); | |
89 | int db_export__comm_thread(struct db_export *dbe, struct comm *comm, | |
90 | struct thread *thread); | |
91 | int db_export__dso(struct db_export *dbe, struct dso *dso, | |
92 | struct machine *machine); | |
93 | int db_export__symbol(struct db_export *dbe, struct symbol *sym, | |
94 | struct dso *dso); | |
f2bff007 AH |
95 | int db_export__branch_type(struct db_export *dbe, u32 branch_type, |
96 | const char *name); | |
0db15b1e AH |
97 | int db_export__sample(struct db_export *dbe, union perf_event *event, |
98 | struct perf_sample *sample, struct perf_evsel *evsel, | |
7327259d | 99 | struct addr_location *al); |
0db15b1e | 100 | |
f2bff007 AH |
101 | int db_export__branch_types(struct db_export *dbe); |
102 | ||
88f50d60 AH |
103 | int db_export__call_path(struct db_export *dbe, struct call_path *cp); |
104 | int db_export__call_return(struct db_export *dbe, struct call_return *cr); | |
105 | ||
0db15b1e | 106 | #endif |