]>
git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - tools/perf/util/annotate.h
1 #ifndef __PERF_ANNOTATE_H
2 #define __PERF_ANNOTATE_H
7 #include <linux/list.h>
8 #include <linux/rbtree.h>
11 struct list_head node
;
16 void objdump_line__free(struct objdump_line
*self
);
17 struct objdump_line
*objdump__get_next_ip_line(struct list_head
*head
,
18 struct objdump_line
*pos
);
31 /** struct annotation - symbols with hits have this attached as in sannotation
33 * @histogram: Array of addr hit histograms per event being monitored
34 * @src_line: If 'print_lines' is specified, per source code line percentages
36 * src_line is allocated, percentages calculated and all sorted by percentage
37 * when the annotation is about to be presented, so the percentages are for
38 * one of the entries in the histogram array, i.e. for the event/counter being
39 * presented. It is deallocated right after symbol__{tui,tty,etc}_annotate
43 struct source_line
*src_line
;
44 struct sym_hist
*histograms
;
49 struct annotation annotation
;
53 static inline struct sym_hist
*annotation__histogram(struct annotation
*notes
, int idx
)
55 return ((void *)notes
->histograms
) + (notes
->sizeof_sym_hist
* idx
);
58 static inline struct annotation
*symbol__annotation(struct symbol
*sym
)
60 struct sannotation
*a
= container_of(sym
, struct sannotation
, symbol
);
61 return &a
->annotation
;
64 int symbol__inc_addr_samples(struct symbol
*sym
, struct map
*map
,
66 int symbol__alloc_hist(struct symbol
*sym
, int nevents
);
68 int symbol__annotate(struct symbol
*sym
, struct map
*map
,
69 struct list_head
*head
, size_t privsize
);
71 int symbol__tty_annotate(struct symbol
*sym
, struct map
*map
, int evidx
,
72 bool print_lines
, bool full_paths
);
74 #ifdef NO_NEWT_SUPPORT
75 static inline int symbol__tui_annotate(symbol
*sym __used
,
76 struct map
*map __used
, int evidx __used
)
81 int symbol__tui_annotate(struct symbol
*sym
, struct map
*map
, int evidx
);
84 #endif /* __PERF_ANNOTATE_H */