Lines Matching refs:bi

46 struct block_info *block_info__get(struct block_info *bi)
48 if (bi)
49 refcount_inc(&bi->refcnt);
50 return bi;
53 void block_info__put(struct block_info *bi)
55 if (bi && refcount_dec_and_test(&bi->refcnt))
56 free(bi);
61 struct block_info *bi = zalloc(sizeof(*bi));
63 if (bi)
64 refcount_set(&bi->refcnt, 1);
65 return bi;
99 static void init_block_info(struct block_info *bi, struct symbol *sym,
103 bi->sym = sym;
104 bi->start = ch->start;
105 bi->end = offset;
106 bi->cycles = ch->cycles;
107 bi->cycles_aggr = ch->cycles_aggr;
108 bi->num = ch->num;
109 bi->num_aggr = ch->num_aggr;
110 bi->total_cycles = total_cycles;
112 memcpy(bi->cycles_spark, ch->cycles_spark,
137 struct block_info *bi;
140 bi = block_info__new();
141 if (!bi)
144 init_block_info(bi, he->ms.sym, &ch[i], i,
146 cycles += bi->cycles_aggr / bi->num_aggr;
149 &al, bi);
151 block_info__put(bi);
200 struct block_info *bi = he->block_info;
204 ratio = (double)bi->cycles_aggr / (double)block_fmt->total_cycles;
243 struct block_info *bi = he->block_info;
246 cycles_string(bi->cycles_aggr, cycles_buf, sizeof(cycles_buf));
256 struct block_info *bi = he->block_info;
260 if (block_fmt->block_cycles && bi->num_aggr) {
261 avg = bi->cycles_aggr / bi->num_aggr;
273 struct block_info *bi = he->block_info;
276 cycles_string(bi->cycles_aggr / bi->num_aggr, cycles_buf,
287 struct block_info *bi = he->block_info;
293 start_line = map__srcline(he->ms.map, bi->sym->start + bi->start,
296 end_line = map__srcline(he->ms.map, bi->sym->start + bi->end,
305 bi->start, bi->end);
490 struct block_info *bi = he->block_info;
492 if (bi->total_cycles)
493 return bi->cycles * 100.0 / bi->total_cycles;