Lines Matching refs:iter
358 static struct gcov_fn_info *get_func(struct gcov_iterator *iter) in get_func() argument
360 return get_fn_info(iter->info, iter->function); in get_func()
363 static struct type_info *get_type(struct gcov_iterator *iter) in get_type() argument
365 return &iter->type_info[iter->type]; in get_type()
376 struct gcov_iterator *iter; in gcov_iter_new() local
378 iter = kzalloc(struct_size(iter, type_info, num_counter_active(info)), in gcov_iter_new()
380 if (iter) in gcov_iter_new()
381 iter->info = info; in gcov_iter_new()
383 return iter; in gcov_iter_new()
390 void gcov_iter_free(struct gcov_iterator *iter) in gcov_iter_free() argument
392 kfree(iter); in gcov_iter_free()
399 struct gcov_info *gcov_iter_get_info(struct gcov_iterator *iter) in gcov_iter_get_info() argument
401 return iter->info; in gcov_iter_get_info()
408 void gcov_iter_start(struct gcov_iterator *iter) in gcov_iter_start() argument
412 iter->record = 0; in gcov_iter_start()
413 iter->function = 0; in gcov_iter_start()
414 iter->type = 0; in gcov_iter_start()
415 iter->count = 0; in gcov_iter_start()
416 iter->num_types = 0; in gcov_iter_start()
418 if (counter_active(iter->info, i)) { in gcov_iter_start()
419 iter->type_info[iter->num_types].ctr_type = i; in gcov_iter_start()
420 iter->type_info[iter->num_types++].offset = 0; in gcov_iter_start()
443 int gcov_iter_next(struct gcov_iterator *iter) in gcov_iter_next() argument
445 switch (iter->record) { in gcov_iter_next()
453 iter->record++; in gcov_iter_next()
457 iter->count++; in gcov_iter_next()
460 if (iter->count < get_func(iter)->n_ctrs[iter->type]) { in gcov_iter_next()
461 iter->record = 9; in gcov_iter_next()
465 get_type(iter)->offset += iter->count; in gcov_iter_next()
466 iter->count = 0; in gcov_iter_next()
467 iter->type++; in gcov_iter_next()
470 if (iter->type < iter->num_types) { in gcov_iter_next()
471 iter->record = 7; in gcov_iter_next()
475 iter->type = 0; in gcov_iter_next()
476 iter->function++; in gcov_iter_next()
479 if (iter->function < iter->info->n_functions) in gcov_iter_next()
480 iter->record = 3; in gcov_iter_next()
482 iter->record = -1; in gcov_iter_next()
486 if (iter->record == -1) in gcov_iter_next()
532 int gcov_iter_write(struct gcov_iterator *iter, struct seq_file *seq) in gcov_iter_write() argument
536 switch (iter->record) { in gcov_iter_write()
541 rc = seq_write_gcov_u32(seq, iter->info->version); in gcov_iter_write()
544 rc = seq_write_gcov_u32(seq, iter->info->stamp); in gcov_iter_write()
553 rc = seq_write_gcov_u32(seq, get_func(iter)->ident); in gcov_iter_write()
556 rc = seq_write_gcov_u32(seq, get_func(iter)->checksum); in gcov_iter_write()
560 GCOV_TAG_FOR_COUNTER(get_type(iter)->ctr_type)); in gcov_iter_write()
564 get_func(iter)->n_ctrs[iter->type] * 2); in gcov_iter_write()
568 iter->info->counts[iter->type]. in gcov_iter_write()
569 values[iter->count + get_type(iter)->offset]); in gcov_iter_write()