Blame view

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

f2bff0076   Adrian Hunter   perf tools: Add b...
104
  int db_export__branch_types(struct db_export *dbe);
88f50d602   Adrian Hunter   perf tools: Add c...
105
106
  int db_export__call_path(struct db_export *dbe, struct call_path *cp);
  int db_export__call_return(struct db_export *dbe, struct call_return *cr);
0db15b1e8   Adrian Hunter   perf tools: Add f...
107
  #endif