Lines Matching refs:iter
347 static struct gcov_fn_info *get_func(struct gcov_iterator *iter) in get_func() argument
349 return get_fn_info(iter->info, iter->function); in get_func()
352 static struct type_info *get_type(struct gcov_iterator *iter) in get_type() argument
354 return &iter->type_info[iter->type]; in get_type()
365 struct gcov_iterator *iter; in gcov_iter_new() local
367 iter = kzalloc(sizeof(struct gcov_iterator) + in gcov_iter_new()
370 if (iter) in gcov_iter_new()
371 iter->info = info; in gcov_iter_new()
373 return iter; in gcov_iter_new()
380 void gcov_iter_free(struct gcov_iterator *iter) in gcov_iter_free() argument
382 kfree(iter); in gcov_iter_free()
389 struct gcov_info *gcov_iter_get_info(struct gcov_iterator *iter) in gcov_iter_get_info() argument
391 return iter->info; in gcov_iter_get_info()
398 void gcov_iter_start(struct gcov_iterator *iter) in gcov_iter_start() argument
402 iter->record = 0; in gcov_iter_start()
403 iter->function = 0; in gcov_iter_start()
404 iter->type = 0; in gcov_iter_start()
405 iter->count = 0; in gcov_iter_start()
406 iter->num_types = 0; in gcov_iter_start()
408 if (counter_active(iter->info, i)) { in gcov_iter_start()
409 iter->type_info[iter->num_types].ctr_type = i; in gcov_iter_start()
410 iter->type_info[iter->num_types++].offset = 0; in gcov_iter_start()
433 int gcov_iter_next(struct gcov_iterator *iter) in gcov_iter_next() argument
435 switch (iter->record) { in gcov_iter_next()
443 iter->record++; in gcov_iter_next()
447 iter->count++; in gcov_iter_next()
450 if (iter->count < get_func(iter)->n_ctrs[iter->type]) { in gcov_iter_next()
451 iter->record = 9; in gcov_iter_next()
455 get_type(iter)->offset += iter->count; in gcov_iter_next()
456 iter->count = 0; in gcov_iter_next()
457 iter->type++; in gcov_iter_next()
460 if (iter->type < iter->num_types) { in gcov_iter_next()
461 iter->record = 7; in gcov_iter_next()
465 iter->type = 0; in gcov_iter_next()
466 iter->function++; in gcov_iter_next()
469 if (iter->function < iter->info->n_functions) in gcov_iter_next()
470 iter->record = 3; in gcov_iter_next()
472 iter->record = -1; in gcov_iter_next()
476 if (iter->record == -1) in gcov_iter_next()
522 int gcov_iter_write(struct gcov_iterator *iter, struct seq_file *seq) in gcov_iter_write() argument
526 switch (iter->record) { in gcov_iter_write()
531 rc = seq_write_gcov_u32(seq, iter->info->version); in gcov_iter_write()
534 rc = seq_write_gcov_u32(seq, iter->info->stamp); in gcov_iter_write()
543 rc = seq_write_gcov_u32(seq, get_func(iter)->ident); in gcov_iter_write()
546 rc = seq_write_gcov_u32(seq, get_func(iter)->checksum); in gcov_iter_write()
550 GCOV_TAG_FOR_COUNTER(get_type(iter)->ctr_type)); in gcov_iter_write()
554 get_func(iter)->n_ctrs[iter->type] * 2); in gcov_iter_write()
558 iter->info->counts[iter->type]. in gcov_iter_write()
559 values[iter->count + get_type(iter)->offset]); in gcov_iter_write()