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> | |
20 | ||
21 | struct perf_evsel; | |
22 | struct machine; | |
23 | struct thread; | |
24 | struct comm; | |
25 | struct dso; | |
26 | struct perf_sample; | |
27 | struct addr_location; | |
28 | ||
29 | struct export_sample { | |
30 | union perf_event *event; | |
31 | struct perf_sample *sample; | |
32 | struct perf_evsel *evsel; | |
33 | struct thread *thread; | |
34 | struct addr_location *al; | |
35 | u64 db_id; | |
36 | u64 comm_db_id; | |
37 | u64 dso_db_id; | |
38 | u64 sym_db_id; | |
39 | u64 offset; /* ip offset from symbol start */ | |
40 | u64 addr_dso_db_id; | |
41 | u64 addr_sym_db_id; | |
42 | u64 addr_offset; /* addr offset from symbol start */ | |
43 | }; | |
44 | ||
45 | struct db_export { | |
46 | int (*export_evsel)(struct db_export *dbe, struct perf_evsel *evsel); | |
47 | int (*export_machine)(struct db_export *dbe, struct machine *machine); | |
48 | int (*export_thread)(struct db_export *dbe, struct thread *thread, | |
49 | u64 main_thread_db_id, struct machine *machine); | |
50 | int (*export_comm)(struct db_export *dbe, struct comm *comm); | |
51 | int (*export_comm_thread)(struct db_export *dbe, u64 db_id, | |
52 | struct comm *comm, struct thread *thread); | |
53 | int (*export_dso)(struct db_export *dbe, struct dso *dso, | |
54 | struct machine *machine); | |
55 | int (*export_symbol)(struct db_export *dbe, struct symbol *sym, | |
56 | struct dso *dso); | |
f2bff007 AH |
57 | int (*export_branch_type)(struct db_export *dbe, u32 branch_type, |
58 | const char *name); | |
0db15b1e AH |
59 | int (*export_sample)(struct db_export *dbe, struct export_sample *es); |
60 | u64 evsel_last_db_id; | |
61 | u64 machine_last_db_id; | |
62 | u64 thread_last_db_id; | |
63 | u64 comm_last_db_id; | |
64 | u64 comm_thread_last_db_id; | |
65 | u64 dso_last_db_id; | |
66 | u64 symbol_last_db_id; | |
67 | u64 sample_last_db_id; | |
68 | }; | |
69 | ||
70 | int db_export__init(struct db_export *dbe); | |
71 | void db_export__exit(struct db_export *dbe); | |
72 | int db_export__evsel(struct db_export *dbe, struct perf_evsel *evsel); | |
73 | int db_export__machine(struct db_export *dbe, struct machine *machine); | |
74 | int db_export__thread(struct db_export *dbe, struct thread *thread, | |
75 | struct machine *machine, struct comm *comm); | |
76 | int db_export__comm(struct db_export *dbe, struct comm *comm, | |
77 | struct thread *main_thread); | |
78 | int db_export__comm_thread(struct db_export *dbe, struct comm *comm, | |
79 | struct thread *thread); | |
80 | int db_export__dso(struct db_export *dbe, struct dso *dso, | |
81 | struct machine *machine); | |
82 | int db_export__symbol(struct db_export *dbe, struct symbol *sym, | |
83 | struct dso *dso); | |
f2bff007 AH |
84 | int db_export__branch_type(struct db_export *dbe, u32 branch_type, |
85 | const char *name); | |
0db15b1e AH |
86 | int db_export__sample(struct db_export *dbe, union perf_event *event, |
87 | struct perf_sample *sample, struct perf_evsel *evsel, | |
88 | struct thread *thread, struct addr_location *al); | |
89 | ||
f2bff007 AH |
90 | int db_export__branch_types(struct db_export *dbe); |
91 | ||
0db15b1e | 92 | #endif |