Lines Matching refs:iter

410 	struct profile_iterator *iter;  in profile_node_iterator_create()  local
425 if ((iter = malloc(sizeof(struct profile_iterator))) == NULL) in profile_node_iterator_create()
428 iter->magic = PROF_MAGIC_ITERATOR; in profile_node_iterator_create()
429 iter->profile = profile; in profile_node_iterator_create()
430 iter->names = names; in profile_node_iterator_create()
431 iter->flags = flags; in profile_node_iterator_create()
432 iter->file = profile->first_file; in profile_node_iterator_create()
433 iter->done_idx = done_idx; in profile_node_iterator_create()
434 iter->node = 0; in profile_node_iterator_create()
435 iter->num = 0; in profile_node_iterator_create()
436 *ret_iter = iter; in profile_node_iterator_create()
442 struct profile_iterator *iter; in profile_node_iterator_free() local
446 iter = *iter_p; in profile_node_iterator_free()
447 if (!iter || iter->magic != PROF_MAGIC_ITERATOR) in profile_node_iterator_free()
449 free(iter); in profile_node_iterator_free()
463 struct profile_iterator *iter = *iter_p; in profile_node_iterator() local
469 if (!iter || iter->magic != PROF_MAGIC_ITERATOR) in profile_node_iterator()
471 if (iter->file && iter->file->magic != PROF_MAGIC_FILE) in profile_node_iterator()
473 if (iter->file && iter->file->data->magic != PROF_MAGIC_FILE_DATA) in profile_node_iterator()
479 if (iter->file) { in profile_node_iterator()
480 retval = k5_mutex_lock(&iter->file->data->lock); in profile_node_iterator()
484 if (iter->node && (iter->file->data->upd_serial != iter->file_serial)) { in profile_node_iterator()
485 iter->flags &= ~PROFILE_ITER_FINAL_SEEN; in profile_node_iterator()
486 skip_num = iter->num; in profile_node_iterator()
487 iter->node = 0; in profile_node_iterator()
489 if (iter->node && iter->node->magic != PROF_MAGIC_NODE) { in profile_node_iterator()
490 if (iter->file) in profile_node_iterator()
491 k5_mutex_unlock(&iter->file->data->lock); in profile_node_iterator()
495 if (iter->node == 0) { in profile_node_iterator()
496 if (iter->file == 0 || in profile_node_iterator()
497 (iter->flags & PROFILE_ITER_FINAL_SEEN)) { in profile_node_iterator()
498 if (iter->file) in profile_node_iterator()
499 k5_mutex_unlock(&iter->file->data->lock); in profile_node_iterator()
509 k5_mutex_unlock(&iter->file->data->lock); in profile_node_iterator()
510 if ((retval = profile_update_file(iter->file))) { in profile_node_iterator()
513 iter->file = iter->file->next; in profile_node_iterator()
514 if (iter->file) { in profile_node_iterator()
515 retval = k5_mutex_lock(&iter->file->data->lock); in profile_node_iterator()
529 retval = k5_mutex_lock(&iter->file->data->lock); in profile_node_iterator()
534 iter->file_serial = iter->file->data->upd_serial; in profile_node_iterator()
539 section = iter->file->data->root; in profile_node_iterator()
541 for (cpp = iter->names; cpp[iter->done_idx]; cpp++) { in profile_node_iterator()
552 iter->flags |= PROFILE_ITER_FINAL_SEEN; in profile_node_iterator()
555 k5_mutex_unlock(&iter->file->data->lock); in profile_node_iterator()
556 iter->file = iter->file->next; in profile_node_iterator()
557 if (iter->file) { in profile_node_iterator()
558 retval = k5_mutex_lock(&iter->file->data->lock); in profile_node_iterator()
567 iter->name = *cpp; in profile_node_iterator()
568 iter->node = section->first_child; in profile_node_iterator()
574 for (p = iter->node; p; p = p->next) { in profile_node_iterator()
575 if (iter->name && strcmp(p->name, iter->name)) in profile_node_iterator()
577 if ((iter->flags & PROFILE_ITER_SECTIONS_ONLY) && in profile_node_iterator()
580 if ((iter->flags & PROFILE_ITER_RELATIONS_ONLY) && in profile_node_iterator()
591 iter->num++; in profile_node_iterator()
593 k5_mutex_unlock(&iter->file->data->lock); in profile_node_iterator()
594 iter->file = iter->file->next; in profile_node_iterator()
595 if (iter->file) { in profile_node_iterator()
596 retval = k5_mutex_lock(&iter->file->data->lock); in profile_node_iterator()
602 iter->node = 0; in profile_node_iterator()
606 k5_mutex_unlock(&iter->file->data->lock); in profile_node_iterator()
607 if ((iter->node = p->next) == NULL) in profile_node_iterator()
608 iter->file = iter->file->next; in profile_node_iterator()