Lines Matching refs:iter

2357 	struct ftrace_rec_iter *iter = &ftrace_rec_iter;  in ftrace_rec_iter_start()  local
2359 iter->pg = ftrace_pages_start; in ftrace_rec_iter_start()
2360 iter->index = 0; in ftrace_rec_iter_start()
2363 while (iter->pg && !iter->pg->index) in ftrace_rec_iter_start()
2364 iter->pg = iter->pg->next; in ftrace_rec_iter_start()
2366 if (!iter->pg) in ftrace_rec_iter_start()
2369 return iter; in ftrace_rec_iter_start()
2378 struct ftrace_rec_iter *ftrace_rec_iter_next(struct ftrace_rec_iter *iter) in ftrace_rec_iter_next() argument
2380 iter->index++; in ftrace_rec_iter_next()
2382 if (iter->index >= iter->pg->index) { in ftrace_rec_iter_next()
2383 iter->pg = iter->pg->next; in ftrace_rec_iter_next()
2384 iter->index = 0; in ftrace_rec_iter_next()
2387 while (iter->pg && !iter->pg->index) in ftrace_rec_iter_next()
2388 iter->pg = iter->pg->next; in ftrace_rec_iter_next()
2391 if (!iter->pg) in ftrace_rec_iter_next()
2394 return iter; in ftrace_rec_iter_next()
2403 struct dyn_ftrace *ftrace_rec_iter_record(struct ftrace_rec_iter *iter) in ftrace_rec_iter_record() argument
2405 return &iter->pg->records[iter->index]; in ftrace_rec_iter_record()
3006 struct ftrace_iterator *iter = m->private; in t_hash_next() local
3011 iter->pos = *pos; in t_hash_next()
3013 if (iter->probe) in t_hash_next()
3014 hnd = &iter->probe->node; in t_hash_next()
3016 if (iter->hidx >= FTRACE_FUNC_HASHSIZE) in t_hash_next()
3019 hhd = &ftrace_func_hash[iter->hidx]; in t_hash_next()
3022 iter->hidx++; in t_hash_next()
3032 iter->hidx++; in t_hash_next()
3040 iter->probe = hlist_entry(hnd, struct ftrace_func_probe, node); in t_hash_next()
3042 return iter; in t_hash_next()
3047 struct ftrace_iterator *iter = m->private; in t_hash_start() local
3051 if (!(iter->flags & FTRACE_ITER_DO_HASH)) in t_hash_start()
3054 if (iter->func_pos > *pos) in t_hash_start()
3057 iter->hidx = 0; in t_hash_start()
3058 for (l = 0; l <= (*pos - iter->func_pos); ) { in t_hash_start()
3067 iter->flags |= FTRACE_ITER_HASH; in t_hash_start()
3069 return iter; in t_hash_start()
3073 t_hash_show(struct seq_file *m, struct ftrace_iterator *iter) in t_hash_show() argument
3077 rec = iter->probe; in t_hash_show()
3096 struct ftrace_iterator *iter = m->private; in t_next() local
3097 struct ftrace_ops *ops = iter->ops; in t_next()
3103 if (iter->flags & FTRACE_ITER_HASH) in t_next()
3107 iter->pos = iter->func_pos = *pos; in t_next()
3109 if (iter->flags & FTRACE_ITER_PRINTALL) in t_next()
3113 if (iter->idx >= iter->pg->index) { in t_next()
3114 if (iter->pg->next) { in t_next()
3115 iter->pg = iter->pg->next; in t_next()
3116 iter->idx = 0; in t_next()
3120 rec = &iter->pg->records[iter->idx++]; in t_next()
3121 if (((iter->flags & FTRACE_ITER_FILTER) && in t_next()
3124 ((iter->flags & FTRACE_ITER_NOTRACE) && in t_next()
3127 ((iter->flags & FTRACE_ITER_ENABLED) && in t_next()
3138 iter->func = rec; in t_next()
3140 return iter; in t_next()
3143 static void reset_iter_read(struct ftrace_iterator *iter) in reset_iter_read() argument
3145 iter->pos = 0; in reset_iter_read()
3146 iter->func_pos = 0; in reset_iter_read()
3147 iter->flags &= ~(FTRACE_ITER_PRINTALL | FTRACE_ITER_HASH); in reset_iter_read()
3152 struct ftrace_iterator *iter = m->private; in t_start() local
3153 struct ftrace_ops *ops = iter->ops; in t_start()
3165 if (*pos < iter->pos) in t_start()
3166 reset_iter_read(iter); in t_start()
3173 if ((iter->flags & FTRACE_ITER_FILTER && in t_start()
3175 (iter->flags & FTRACE_ITER_NOTRACE && in t_start()
3179 iter->flags |= FTRACE_ITER_PRINTALL; in t_start()
3181 iter->flags &= ~FTRACE_ITER_HASH; in t_start()
3182 return iter; in t_start()
3185 if (iter->flags & FTRACE_ITER_HASH) in t_start()
3193 iter->pg = ftrace_pages_start; in t_start()
3194 iter->idx = 0; in t_start()
3204 return iter; in t_start()
3230 struct ftrace_iterator *iter = m->private; in t_show() local
3233 if (iter->flags & FTRACE_ITER_HASH) in t_show()
3234 return t_hash_show(m, iter); in t_show()
3236 if (iter->flags & FTRACE_ITER_PRINTALL) { in t_show()
3237 if (iter->flags & FTRACE_ITER_NOTRACE) in t_show()
3244 rec = iter->func; in t_show()
3250 if (iter->flags & FTRACE_ITER_ENABLED) { in t_show()
3284 struct ftrace_iterator *iter; in ftrace_avail_open() local
3289 iter = __seq_open_private(file, &show_ftrace_seq_ops, sizeof(*iter)); in ftrace_avail_open()
3290 if (iter) { in ftrace_avail_open()
3291 iter->pg = ftrace_pages_start; in ftrace_avail_open()
3292 iter->ops = &global_ops; in ftrace_avail_open()
3295 return iter ? 0 : -ENOMEM; in ftrace_avail_open()
3301 struct ftrace_iterator *iter; in ftrace_enabled_open() local
3303 iter = __seq_open_private(file, &show_ftrace_seq_ops, sizeof(*iter)); in ftrace_enabled_open()
3304 if (iter) { in ftrace_enabled_open()
3305 iter->pg = ftrace_pages_start; in ftrace_enabled_open()
3306 iter->flags = FTRACE_ITER_ENABLED; in ftrace_enabled_open()
3307 iter->ops = &global_ops; in ftrace_enabled_open()
3310 return iter ? 0 : -ENOMEM; in ftrace_enabled_open()
3333 struct ftrace_iterator *iter; in ftrace_regex_open() local
3342 iter = kzalloc(sizeof(*iter), GFP_KERNEL); in ftrace_regex_open()
3343 if (!iter) in ftrace_regex_open()
3346 if (trace_parser_get_init(&iter->parser, FTRACE_BUFF_MAX)) { in ftrace_regex_open()
3347 kfree(iter); in ftrace_regex_open()
3351 iter->ops = ops; in ftrace_regex_open()
3352 iter->flags = flag; in ftrace_regex_open()
3365 iter->hash = alloc_ftrace_hash(size_bits); in ftrace_regex_open()
3367 iter->hash = alloc_and_copy_ftrace_hash(size_bits, hash); in ftrace_regex_open()
3369 if (!iter->hash) { in ftrace_regex_open()
3370 trace_parser_put(&iter->parser); in ftrace_regex_open()
3371 kfree(iter); in ftrace_regex_open()
3378 iter->pg = ftrace_pages_start; in ftrace_regex_open()
3383 m->private = iter; in ftrace_regex_open()
3386 free_ftrace_hash(iter->hash); in ftrace_regex_open()
3387 trace_parser_put(&iter->parser); in ftrace_regex_open()
3388 kfree(iter); in ftrace_regex_open()
3391 file->private_data = iter; in ftrace_regex_open()
4000 struct ftrace_iterator *iter; in ftrace_regex_write() local
4009 iter = m->private; in ftrace_regex_write()
4011 iter = file->private_data; in ftrace_regex_write()
4018 parser = &iter->parser; in ftrace_regex_write()
4023 ret = ftrace_process_regex(iter->hash, parser->buffer, in ftrace_regex_write()
4358 struct ftrace_iterator *iter; in ftrace_regex_release() local
4366 iter = m->private; in ftrace_regex_release()
4369 iter = file->private_data; in ftrace_regex_release()
4371 parser = &iter->parser; in ftrace_regex_release()
4374 ftrace_match_records(iter->hash, parser->buffer, parser->idx); in ftrace_regex_release()
4379 mutex_lock(&iter->ops->func_hash->regex_lock); in ftrace_regex_release()
4382 filter_hash = !!(iter->flags & FTRACE_ITER_FILTER); in ftrace_regex_release()
4385 orig_hash = &iter->ops->func_hash->filter_hash; in ftrace_regex_release()
4387 orig_hash = &iter->ops->func_hash->notrace_hash; in ftrace_regex_release()
4391 old_hash_ops.filter_hash = iter->ops->func_hash->filter_hash; in ftrace_regex_release()
4392 old_hash_ops.notrace_hash = iter->ops->func_hash->notrace_hash; in ftrace_regex_release()
4393 ret = ftrace_hash_move(iter->ops, filter_hash, in ftrace_regex_release()
4394 orig_hash, iter->hash); in ftrace_regex_release()
4396 ftrace_ops_update_code(iter->ops, &old_hash_ops); in ftrace_regex_release()
4402 mutex_unlock(&iter->ops->func_hash->regex_lock); in ftrace_regex_release()
4403 free_ftrace_hash(iter->hash); in ftrace_regex_release()
4404 kfree(iter); in ftrace_regex_release()