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
132 thread->db_id = ++dbe->thread_last_db_id; in db_export__thread()
143 err = db_export__thread(dbe, main_thread, machine, in db_export__thread()
148 err = db_export__comm_thread(dbe, comm, thread); in db_export__thread()
158 if (dbe->export_thread) in db_export__thread()
159 return dbe->export_thread(dbe, thread, main_thread_db_id, in db_export__thread()
169 int db_export__comm(struct db_export *dbe, struct comm *comm, in db_export__comm() argument
177 comm->db_id = ++dbe->comm_last_db_id; in db_export__comm()
179 if (dbe->export_comm) { in db_export__comm()
181 err = dbe->export_comm(dbe, comm); in db_export__comm()
183 err = db_export__defer_comm(dbe, comm); in db_export__comm()
188 return db_export__comm_thread(dbe, comm, main_thread); in db_export__comm()
191 int db_export__comm_thread(struct db_export *dbe, struct comm *comm, in db_export__comm_thread() argument
196 db_id = ++dbe->comm_thread_last_db_id; in db_export__comm_thread()
198 if (dbe->export_comm_thread) in db_export__comm_thread()
199 return dbe->export_comm_thread(dbe, db_id, comm, thread); in db_export__comm_thread()
204 int db_export__dso(struct db_export *dbe, struct dso *dso, in db_export__dso() argument
210 dso->db_id = ++dbe->dso_last_db_id; in db_export__dso()
212 if (dbe->export_dso) in db_export__dso()
213 return dbe->export_dso(dbe, dso, machine); in db_export__dso()
218 int db_export__symbol(struct db_export *dbe, struct symbol *sym, in db_export__symbol() argument
226 *sym_db_id = ++dbe->symbol_last_db_id; in db_export__symbol()
228 if (dbe->export_symbol) in db_export__symbol()
229 return dbe->export_symbol(dbe, sym, dso); in db_export__symbol()
245 static int db_ids_from_al(struct db_export *dbe, struct addr_location *al, in db_ids_from_al() argument
253 err = db_export__dso(dbe, dso, al->machine); in db_ids_from_al()
268 err = db_export__symbol(dbe, al->sym, dso); in db_ids_from_al()
279 int db_export__branch_type(struct db_export *dbe, u32 branch_type, in db_export__branch_type() argument
282 if (dbe->export_branch_type) in db_export__branch_type()
283 return dbe->export_branch_type(dbe, branch_type, name); in db_export__branch_type()
288 int db_export__sample(struct db_export *dbe, union perf_event *event, in db_export__sample() argument
303 err = db_export__evsel(dbe, evsel); in db_export__sample()
307 err = db_export__machine(dbe, al->machine); in db_export__sample()
315 err = db_export__thread(dbe, thread, al->machine, comm); in db_export__sample()
320 err = db_export__comm(dbe, comm, main_thread); in db_export__sample()
326 es.db_id = ++dbe->sample_last_db_id; in db_export__sample()
328 err = db_ids_from_al(dbe, al, &es.dso_db_id, &es.sym_db_id, &es.offset); in db_export__sample()
337 err = db_ids_from_al(dbe, &addr_al, &es.addr_dso_db_id, in db_export__sample()
341 if (dbe->crp) { in db_export__sample()
344 dbe->crp); in db_export__sample()
350 if (dbe->export_sample) in db_export__sample()
351 err = dbe->export_sample(dbe, &es); in db_export__sample()
384 int db_export__branch_types(struct db_export *dbe) in db_export__branch_types() argument
389 err = db_export__branch_type(dbe, branch_types[i].branch_type, in db_export__branch_types()
397 int db_export__call_path(struct db_export *dbe, struct call_path *cp) in db_export__call_path() argument
405 err = db_export__call_path(dbe, cp->parent); in db_export__call_path()
410 cp->db_id = ++dbe->call_path_last_db_id; in db_export__call_path()
412 if (dbe->export_call_path) in db_export__call_path()
413 return dbe->export_call_path(dbe, cp); in db_export__call_path()
418 int db_export__call_return(struct db_export *dbe, struct call_return *cr) in db_export__call_return() argument
425 err = db_export__call_path(dbe, cr->cp); in db_export__call_return()
429 cr->db_id = ++dbe->call_return_last_db_id; in db_export__call_return()
431 if (dbe->export_call_return) in db_export__call_return()
432 return dbe->export_call_return(dbe, cr); in db_export__call_return()