Lines Matching refs:iter
2367 struct ftrace_rec_iter *iter = &ftrace_rec_iter; in ftrace_rec_iter_start() local
2369 iter->pg = ftrace_pages_start; in ftrace_rec_iter_start()
2370 iter->index = 0; in ftrace_rec_iter_start()
2373 while (iter->pg && !iter->pg->index) in ftrace_rec_iter_start()
2374 iter->pg = iter->pg->next; in ftrace_rec_iter_start()
2376 if (!iter->pg) in ftrace_rec_iter_start()
2379 return iter; in ftrace_rec_iter_start()
2388 struct ftrace_rec_iter *ftrace_rec_iter_next(struct ftrace_rec_iter *iter) in ftrace_rec_iter_next() argument
2390 iter->index++; in ftrace_rec_iter_next()
2392 if (iter->index >= iter->pg->index) { in ftrace_rec_iter_next()
2393 iter->pg = iter->pg->next; in ftrace_rec_iter_next()
2394 iter->index = 0; in ftrace_rec_iter_next()
2397 while (iter->pg && !iter->pg->index) in ftrace_rec_iter_next()
2398 iter->pg = iter->pg->next; in ftrace_rec_iter_next()
2401 if (!iter->pg) in ftrace_rec_iter_next()
2404 return iter; in ftrace_rec_iter_next()
2413 struct dyn_ftrace *ftrace_rec_iter_record(struct ftrace_rec_iter *iter) in ftrace_rec_iter_record() argument
2415 return &iter->pg->records[iter->index]; in ftrace_rec_iter_record()
3016 struct ftrace_iterator *iter = m->private; in t_hash_next() local
3021 iter->pos = *pos; in t_hash_next()
3023 if (iter->probe) in t_hash_next()
3024 hnd = &iter->probe->node; in t_hash_next()
3026 if (iter->hidx >= FTRACE_FUNC_HASHSIZE) in t_hash_next()
3029 hhd = &ftrace_func_hash[iter->hidx]; in t_hash_next()
3032 iter->hidx++; in t_hash_next()
3042 iter->hidx++; in t_hash_next()
3050 iter->probe = hlist_entry(hnd, struct ftrace_func_probe, node); in t_hash_next()
3052 return iter; in t_hash_next()
3057 struct ftrace_iterator *iter = m->private; in t_hash_start() local
3061 if (!(iter->flags & FTRACE_ITER_DO_HASH)) in t_hash_start()
3064 if (iter->func_pos > *pos) in t_hash_start()
3067 iter->hidx = 0; in t_hash_start()
3068 for (l = 0; l <= (*pos - iter->func_pos); ) { in t_hash_start()
3077 iter->flags |= FTRACE_ITER_HASH; in t_hash_start()
3079 return iter; in t_hash_start()
3083 t_hash_show(struct seq_file *m, struct ftrace_iterator *iter) in t_hash_show() argument
3087 rec = iter->probe; in t_hash_show()
3106 struct ftrace_iterator *iter = m->private; in t_next() local
3107 struct ftrace_ops *ops = iter->ops; in t_next()
3113 if (iter->flags & FTRACE_ITER_HASH) in t_next()
3117 iter->pos = iter->func_pos = *pos; in t_next()
3119 if (iter->flags & FTRACE_ITER_PRINTALL) in t_next()
3123 if (iter->idx >= iter->pg->index) { in t_next()
3124 if (iter->pg->next) { in t_next()
3125 iter->pg = iter->pg->next; in t_next()
3126 iter->idx = 0; in t_next()
3130 rec = &iter->pg->records[iter->idx++]; in t_next()
3131 if (((iter->flags & FTRACE_ITER_FILTER) && in t_next()
3134 ((iter->flags & FTRACE_ITER_NOTRACE) && in t_next()
3137 ((iter->flags & FTRACE_ITER_ENABLED) && in t_next()
3148 iter->func = rec; in t_next()
3150 return iter; in t_next()
3153 static void reset_iter_read(struct ftrace_iterator *iter) in reset_iter_read() argument
3155 iter->pos = 0; in reset_iter_read()
3156 iter->func_pos = 0; in reset_iter_read()
3157 iter->flags &= ~(FTRACE_ITER_PRINTALL | FTRACE_ITER_HASH); in reset_iter_read()
3162 struct ftrace_iterator *iter = m->private; in t_start() local
3163 struct ftrace_ops *ops = iter->ops; in t_start()
3175 if (*pos < iter->pos) in t_start()
3176 reset_iter_read(iter); in t_start()
3183 if ((iter->flags & FTRACE_ITER_FILTER && in t_start()
3185 (iter->flags & FTRACE_ITER_NOTRACE && in t_start()
3189 iter->flags |= FTRACE_ITER_PRINTALL; in t_start()
3191 iter->flags &= ~FTRACE_ITER_HASH; in t_start()
3192 return iter; in t_start()
3195 if (iter->flags & FTRACE_ITER_HASH) in t_start()
3203 iter->pg = ftrace_pages_start; in t_start()
3204 iter->idx = 0; in t_start()
3214 return iter; in t_start()
3240 struct ftrace_iterator *iter = m->private; in t_show() local
3243 if (iter->flags & FTRACE_ITER_HASH) in t_show()
3244 return t_hash_show(m, iter); in t_show()
3246 if (iter->flags & FTRACE_ITER_PRINTALL) { in t_show()
3247 if (iter->flags & FTRACE_ITER_NOTRACE) in t_show()
3254 rec = iter->func; in t_show()
3260 if (iter->flags & FTRACE_ITER_ENABLED) { in t_show()
3294 struct ftrace_iterator *iter; in ftrace_avail_open() local
3299 iter = __seq_open_private(file, &show_ftrace_seq_ops, sizeof(*iter)); in ftrace_avail_open()
3300 if (iter) { in ftrace_avail_open()
3301 iter->pg = ftrace_pages_start; in ftrace_avail_open()
3302 iter->ops = &global_ops; in ftrace_avail_open()
3305 return iter ? 0 : -ENOMEM; in ftrace_avail_open()
3311 struct ftrace_iterator *iter; in ftrace_enabled_open() local
3313 iter = __seq_open_private(file, &show_ftrace_seq_ops, sizeof(*iter)); in ftrace_enabled_open()
3314 if (iter) { in ftrace_enabled_open()
3315 iter->pg = ftrace_pages_start; in ftrace_enabled_open()
3316 iter->flags = FTRACE_ITER_ENABLED; in ftrace_enabled_open()
3317 iter->ops = &global_ops; in ftrace_enabled_open()
3320 return iter ? 0 : -ENOMEM; in ftrace_enabled_open()
3343 struct ftrace_iterator *iter; in ftrace_regex_open() local
3352 iter = kzalloc(sizeof(*iter), GFP_KERNEL); in ftrace_regex_open()
3353 if (!iter) in ftrace_regex_open()
3356 if (trace_parser_get_init(&iter->parser, FTRACE_BUFF_MAX)) { in ftrace_regex_open()
3357 kfree(iter); in ftrace_regex_open()
3361 iter->ops = ops; in ftrace_regex_open()
3362 iter->flags = flag; in ftrace_regex_open()
3375 iter->hash = alloc_ftrace_hash(size_bits); in ftrace_regex_open()
3377 iter->hash = alloc_and_copy_ftrace_hash(size_bits, hash); in ftrace_regex_open()
3379 if (!iter->hash) { in ftrace_regex_open()
3380 trace_parser_put(&iter->parser); in ftrace_regex_open()
3381 kfree(iter); in ftrace_regex_open()
3388 iter->pg = ftrace_pages_start; in ftrace_regex_open()
3393 m->private = iter; in ftrace_regex_open()
3396 free_ftrace_hash(iter->hash); in ftrace_regex_open()
3397 trace_parser_put(&iter->parser); in ftrace_regex_open()
3398 kfree(iter); in ftrace_regex_open()
3401 file->private_data = iter; in ftrace_regex_open()
4017 struct ftrace_iterator *iter; in ftrace_regex_write() local
4026 iter = m->private; in ftrace_regex_write()
4028 iter = file->private_data; in ftrace_regex_write()
4035 parser = &iter->parser; in ftrace_regex_write()
4040 ret = ftrace_process_regex(iter->hash, parser->buffer, in ftrace_regex_write()
4375 struct ftrace_iterator *iter; in ftrace_regex_release() local
4383 iter = m->private; in ftrace_regex_release()
4386 iter = file->private_data; in ftrace_regex_release()
4388 parser = &iter->parser; in ftrace_regex_release()
4391 ftrace_match_records(iter->hash, parser->buffer, parser->idx); in ftrace_regex_release()
4396 mutex_lock(&iter->ops->func_hash->regex_lock); in ftrace_regex_release()
4399 filter_hash = !!(iter->flags & FTRACE_ITER_FILTER); in ftrace_regex_release()
4402 orig_hash = &iter->ops->func_hash->filter_hash; in ftrace_regex_release()
4404 orig_hash = &iter->ops->func_hash->notrace_hash; in ftrace_regex_release()
4408 old_hash_ops.filter_hash = iter->ops->func_hash->filter_hash; in ftrace_regex_release()
4409 old_hash_ops.notrace_hash = iter->ops->func_hash->notrace_hash; in ftrace_regex_release()
4410 ret = ftrace_hash_move(iter->ops, filter_hash, in ftrace_regex_release()
4411 orig_hash, iter->hash); in ftrace_regex_release()
4413 ftrace_ops_update_code(iter->ops, &old_hash_ops); in ftrace_regex_release()
4419 mutex_unlock(&iter->ops->func_hash->regex_lock); in ftrace_regex_release()
4420 free_ftrace_hash(iter->hash); in ftrace_regex_release()
4421 kfree(iter); in ftrace_regex_release()