Lines Matching refs:dbe
33 static int db_export__deferred(struct db_export *dbe) in db_export__deferred() argument
38 while (!list_empty(&dbe->deferred)) { in db_export__deferred()
39 de = list_entry(dbe->deferred.next, struct deferred_export, in db_export__deferred()
41 err = dbe->export_comm(dbe, de->comm); in db_export__deferred()
51 static void db_export__free_deferred(struct db_export *dbe) in db_export__free_deferred() argument
55 while (!list_empty(&dbe->deferred)) { in db_export__free_deferred()
56 de = list_entry(dbe->deferred.next, struct deferred_export, in db_export__free_deferred()
63 static int db_export__defer_comm(struct db_export *dbe, struct comm *comm) in db_export__defer_comm() argument
72 list_add_tail(&de->node, &dbe->deferred); in db_export__defer_comm()
77 int db_export__init(struct db_export *dbe) in db_export__init() argument
79 memset(dbe, 0, sizeof(struct db_export)); in db_export__init()
80 INIT_LIST_HEAD(&dbe->deferred); in db_export__init()
84 int db_export__flush(struct db_export *dbe) in db_export__flush() argument
86 return db_export__deferred(dbe); in db_export__flush()
89 void db_export__exit(struct db_export *dbe) in db_export__exit() argument
91 db_export__free_deferred(dbe); in db_export__exit()
92 call_return_processor__free(dbe->crp); in db_export__exit()
93 dbe->crp = NULL; in db_export__exit()
96 int db_export__evsel(struct db_export *dbe, struct perf_evsel *evsel) in db_export__evsel() argument
101 evsel->db_id = ++dbe->evsel_last_db_id; in db_export__evsel()
103 if (dbe->export_evsel) in db_export__evsel()
104 return dbe->export_evsel(dbe, evsel); in db_export__evsel()
109 int db_export__machine(struct db_export *dbe, struct machine *machine) in db_export__machine() argument
114 machine->db_id = ++dbe->machine_last_db_id; in db_export__machine()
116 if (dbe->export_machine) in db_export__machine()
117 return dbe->export_machine(dbe, machine); in db_export__machine()
122 int db_export__thread(struct db_export *dbe, struct thread *thread, in db_export__thread() argument
131 thread->db_id = ++dbe->thread_last_db_id; in db_export__thread()
144 err = db_export__thread(dbe, main_thread, machine, in db_export__thread()
149 err = db_export__comm_thread(dbe, comm, thread); in db_export__thread()
157 if (dbe->export_thread) in db_export__thread()
158 return dbe->export_thread(dbe, thread, main_thread_db_id, in db_export__thread()
164 int db_export__comm(struct db_export *dbe, struct comm *comm, in db_export__comm() argument
172 comm->db_id = ++dbe->comm_last_db_id; in db_export__comm()
174 if (dbe->export_comm) { in db_export__comm()
176 err = dbe->export_comm(dbe, comm); in db_export__comm()
178 err = db_export__defer_comm(dbe, comm); in db_export__comm()
183 return db_export__comm_thread(dbe, comm, main_thread); in db_export__comm()
186 int db_export__comm_thread(struct db_export *dbe, struct comm *comm, in db_export__comm_thread() argument
191 db_id = ++dbe->comm_thread_last_db_id; in db_export__comm_thread()
193 if (dbe->export_comm_thread) in db_export__comm_thread()
194 return dbe->export_comm_thread(dbe, db_id, comm, thread); in db_export__comm_thread()
199 int db_export__dso(struct db_export *dbe, struct dso *dso, in db_export__dso() argument
205 dso->db_id = ++dbe->dso_last_db_id; in db_export__dso()
207 if (dbe->export_dso) in db_export__dso()
208 return dbe->export_dso(dbe, dso, machine); in db_export__dso()
213 int db_export__symbol(struct db_export *dbe, struct symbol *sym, in db_export__symbol() argument
221 *sym_db_id = ++dbe->symbol_last_db_id; in db_export__symbol()
223 if (dbe->export_symbol) in db_export__symbol()
224 return dbe->export_symbol(dbe, sym, dso); in db_export__symbol()
240 static int db_ids_from_al(struct db_export *dbe, struct addr_location *al, in db_ids_from_al() argument
248 err = db_export__dso(dbe, dso, al->machine); in db_ids_from_al()
263 err = db_export__symbol(dbe, al->sym, dso); in db_ids_from_al()
274 int db_export__branch_type(struct db_export *dbe, u32 branch_type, in db_export__branch_type() argument
277 if (dbe->export_branch_type) in db_export__branch_type()
278 return dbe->export_branch_type(dbe, branch_type, name); in db_export__branch_type()
283 int db_export__sample(struct db_export *dbe, union perf_event *event, in db_export__sample() argument
298 err = db_export__evsel(dbe, evsel); in db_export__sample()
302 err = db_export__machine(dbe, al->machine); in db_export__sample()
310 err = db_export__thread(dbe, thread, al->machine, comm); in db_export__sample()
315 err = db_export__comm(dbe, comm, main_thread); in db_export__sample()
321 es.db_id = ++dbe->sample_last_db_id; in db_export__sample()
323 err = db_ids_from_al(dbe, al, &es.dso_db_id, &es.sym_db_id, &es.offset); in db_export__sample()
332 err = db_ids_from_al(dbe, &addr_al, &es.addr_dso_db_id, in db_export__sample()
336 if (dbe->crp) { in db_export__sample()
339 dbe->crp); in db_export__sample()
345 if (dbe->export_sample) in db_export__sample()
346 return dbe->export_sample(dbe, &es); in db_export__sample()
377 int db_export__branch_types(struct db_export *dbe) in db_export__branch_types() argument
382 err = db_export__branch_type(dbe, branch_types[i].branch_type, in db_export__branch_types()
390 int db_export__call_path(struct db_export *dbe, struct call_path *cp) in db_export__call_path() argument
398 err = db_export__call_path(dbe, cp->parent); in db_export__call_path()
403 cp->db_id = ++dbe->call_path_last_db_id; in db_export__call_path()
405 if (dbe->export_call_path) in db_export__call_path()
406 return dbe->export_call_path(dbe, cp); in db_export__call_path()
411 int db_export__call_return(struct db_export *dbe, struct call_return *cr) in db_export__call_return() argument
418 err = db_export__call_path(dbe, cr->cp); in db_export__call_return()
422 cr->db_id = ++dbe->call_return_last_db_id; in db_export__call_return()
424 if (dbe->export_call_return) in db_export__call_return()
425 return dbe->export_call_return(dbe, cr); in db_export__call_return()