Lines Matching refs:file

64 #define do_for_each_event_file(tr, file)			\  argument
66 list_for_each_entry(file, &tr->events, list)
68 #define do_for_each_event_file_safe(tr, file) \ argument
71 list_for_each_entry_safe(file, ___n, &tr->events, list)
497 struct trace_event_file *file = data; in trace_event_reg() local
504 file); in trace_event_reg()
508 file); in trace_event_reg()
534 struct trace_event_file *file; in trace_event_enable_cmd_record() local
539 do_for_each_event_file(tr, file) { in trace_event_enable_cmd_record()
541 if (!(file->flags & EVENT_FILE_FL_ENABLED)) in trace_event_enable_cmd_record()
546 set_bit(EVENT_FILE_FL_RECORDED_CMD_BIT, &file->flags); in trace_event_enable_cmd_record()
549 clear_bit(EVENT_FILE_FL_RECORDED_CMD_BIT, &file->flags); in trace_event_enable_cmd_record()
556 struct trace_event_file *file; in trace_event_enable_tgid_record() local
561 do_for_each_event_file(tr, file) { in trace_event_enable_tgid_record()
562 if (!(file->flags & EVENT_FILE_FL_ENABLED)) in trace_event_enable_tgid_record()
567 set_bit(EVENT_FILE_FL_RECORDED_TGID_BIT, &file->flags); in trace_event_enable_tgid_record()
571 &file->flags); in trace_event_enable_tgid_record()
576 static int __ftrace_event_enable_disable(struct trace_event_file *file, in __ftrace_event_enable_disable() argument
579 struct trace_event_call *call = file->event_call; in __ftrace_event_enable_disable()
580 struct trace_array *tr = file->tr; in __ftrace_event_enable_disable()
581 unsigned long file_flags = file->flags; in __ftrace_event_enable_disable()
601 if (atomic_dec_return(&file->sm_ref) > 0) in __ftrace_event_enable_disable()
603 disable = file->flags & EVENT_FILE_FL_SOFT_DISABLED; in __ftrace_event_enable_disable()
604 clear_bit(EVENT_FILE_FL_SOFT_MODE_BIT, &file->flags); in __ftrace_event_enable_disable()
606 disable = !(file->flags & EVENT_FILE_FL_SOFT_MODE); in __ftrace_event_enable_disable()
608 if (disable && (file->flags & EVENT_FILE_FL_ENABLED)) { in __ftrace_event_enable_disable()
609 clear_bit(EVENT_FILE_FL_ENABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
610 if (file->flags & EVENT_FILE_FL_RECORDED_CMD) { in __ftrace_event_enable_disable()
612 clear_bit(EVENT_FILE_FL_RECORDED_CMD_BIT, &file->flags); in __ftrace_event_enable_disable()
615 if (file->flags & EVENT_FILE_FL_RECORDED_TGID) { in __ftrace_event_enable_disable()
617 clear_bit(EVENT_FILE_FL_RECORDED_TGID_BIT, &file->flags); in __ftrace_event_enable_disable()
620 call->class->reg(call, TRACE_REG_UNREGISTER, file); in __ftrace_event_enable_disable()
623 if (file->flags & EVENT_FILE_FL_SOFT_MODE) in __ftrace_event_enable_disable()
624 set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
626 clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
638 clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
640 if (atomic_inc_return(&file->sm_ref) > 1) in __ftrace_event_enable_disable()
642 set_bit(EVENT_FILE_FL_SOFT_MODE_BIT, &file->flags); in __ftrace_event_enable_disable()
645 if (!(file->flags & EVENT_FILE_FL_ENABLED)) { in __ftrace_event_enable_disable()
650 set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
655 set_bit(EVENT_FILE_FL_RECORDED_CMD_BIT, &file->flags); in __ftrace_event_enable_disable()
661 set_bit(EVENT_FILE_FL_RECORDED_TGID_BIT, &file->flags); in __ftrace_event_enable_disable()
664 ret = call->class->reg(call, TRACE_REG_REGISTER, file); in __ftrace_event_enable_disable()
674 set_bit(EVENT_FILE_FL_ENABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
677 set_bit(EVENT_FILE_FL_WAS_ENABLED_BIT, &file->flags); in __ftrace_event_enable_disable()
684 (file->flags & EVENT_FILE_FL_SOFT_DISABLED)) { in __ftrace_event_enable_disable()
685 if (file->flags & EVENT_FILE_FL_SOFT_DISABLED) in __ftrace_event_enable_disable()
694 int trace_event_enable_disable(struct trace_event_file *file, in trace_event_enable_disable() argument
697 return __ftrace_event_enable_disable(file, enable, soft_disable); in trace_event_enable_disable()
700 static int ftrace_event_enable_disable(struct trace_event_file *file, in ftrace_event_enable_disable() argument
703 return __ftrace_event_enable_disable(file, enable, 0); in ftrace_event_enable_disable()
708 struct trace_event_file *file; in ftrace_clear_events() local
711 list_for_each_entry(file, &tr->events, list) { in ftrace_clear_events()
712 ftrace_event_enable_disable(file, 0); in ftrace_clear_events()
855 struct trace_event_file *file; in __ftrace_clear_event_pids() local
870 list_for_each_entry(file, &tr->events, list) { in __ftrace_clear_event_pids()
871 clear_bit(EVENT_FILE_FL_PID_FILTER_BIT, &file->flags); in __ftrace_clear_event_pids()
962 static void remove_event_file_dir(struct trace_event_file *file) in remove_event_file_dir() argument
964 struct dentry *dir = file->dir; in remove_event_file_dir()
978 list_del(&file->list); in remove_event_file_dir()
979 remove_subsystem(file->system); in remove_event_file_dir()
980 free_event_filter(file->filter); in remove_event_file_dir()
981 kmem_cache_free(file_cachep, file); in remove_event_file_dir()
991 struct trace_event_file *file; in __ftrace_set_clr_event_nolock() local
997 list_for_each_entry(file, &tr->events, list) { in __ftrace_set_clr_event_nolock()
999 call = file->event_call; in __ftrace_set_clr_event_nolock()
1019 ret = ftrace_event_enable_disable(file, set); in __ftrace_set_clr_event_nolock()
1140 ftrace_event_write(struct file *file, const char __user *ubuf, in ftrace_event_write() argument
1144 struct seq_file *m = file->private_data; in ftrace_event_write()
1182 struct trace_event_file *file = v; in t_next() local
1188 list_for_each_entry_continue(file, &tr->events, list) { in t_next()
1189 call = file->event_call; in t_next()
1196 return file; in t_next()
1204 struct trace_event_file *file; in t_start() local
1210 file = list_entry(&tr->events, struct trace_event_file, list); in t_start()
1212 file = t_next(m, file, &l); in t_start()
1213 if (!file) in t_start()
1216 return file; in t_start()
1222 struct trace_event_file *file = v; in s_next() local
1227 list_for_each_entry_continue(file, &tr->events, list) { in s_next()
1228 if (file->flags & EVENT_FILE_FL_ENABLED) in s_next()
1229 return file; in s_next()
1237 struct trace_event_file *file; in s_start() local
1243 file = list_entry(&tr->events, struct trace_event_file, list); in s_start()
1245 file = s_next(m, file, &l); in s_start()
1246 if (!file) in s_start()
1249 return file; in s_start()
1254 struct trace_event_file *file = v; in t_show() local
1255 struct trace_event_call *call = file->event_call; in t_show()
1341 event_enable_read(struct file *filp, char __user *ubuf, size_t cnt, in event_enable_read()
1344 struct trace_event_file *file; in event_enable_read() local
1349 file = event_file_data(filp); in event_enable_read()
1350 if (likely(file)) in event_enable_read()
1351 flags = file->flags; in event_enable_read()
1354 if (!file) in event_enable_read()
1371 event_enable_write(struct file *filp, const char __user *ubuf, size_t cnt, in event_enable_write()
1374 struct trace_event_file *file; in event_enable_write() local
1391 file = event_file_data(filp); in event_enable_write()
1392 if (likely(file)) in event_enable_write()
1393 ret = ftrace_event_enable_disable(file, val); in event_enable_write()
1407 system_enable_read(struct file *filp, char __user *ubuf, size_t cnt, in system_enable_read()
1414 struct trace_event_file *file; in system_enable_read() local
1421 list_for_each_entry(file, &tr->events, list) { in system_enable_read()
1422 call = file->event_call; in system_enable_read()
1435 set |= (1 << !!(file->flags & EVENT_FILE_FL_ENABLED)); in system_enable_read()
1454 system_enable_write(struct file *filp, const char __user *ubuf, size_t cnt, in system_enable_write()
1609 static int trace_format_open(struct inode *inode, struct file *file) in trace_format_open() argument
1616 ret = seq_open(file, &trace_format_seq_ops); in trace_format_open()
1620 m = file->private_data; in trace_format_open()
1621 m->private = file; in trace_format_open()
1627 event_id_read(struct file *filp, char __user *ubuf, size_t cnt, loff_t *ppos) in event_id_read()
1642 event_filter_read(struct file *filp, char __user *ubuf, size_t cnt, in event_filter_read()
1645 struct trace_event_file *file; in event_filter_read() local
1660 file = event_file_data(filp); in event_filter_read()
1661 if (file) in event_filter_read()
1662 print_event_filter(file, s); in event_filter_read()
1665 if (file) in event_filter_read()
1675 event_filter_write(struct file *filp, const char __user *ubuf, size_t cnt, in event_filter_write()
1678 struct trace_event_file *file; in event_filter_write() local
1690 file = event_file_data(filp); in event_filter_write()
1691 if (file) in event_filter_write()
1692 err = apply_event_filter(file, buf); in event_filter_write()
1706 static int subsystem_open(struct inode *inode, struct file *filp) in subsystem_open()
1756 static int system_tr_open(struct inode *inode, struct file *filp) in system_tr_open()
1778 static int subsystem_release(struct inode *inode, struct file *file) in subsystem_release() argument
1780 struct trace_subsystem_dir *dir = file->private_data; in subsystem_release()
1798 subsystem_filter_read(struct file *filp, char __user *ubuf, size_t cnt, in subsystem_filter_read()
1825 subsystem_filter_write(struct file *filp, const char __user *ubuf, size_t cnt, in subsystem_filter_write()
1850 show_header(struct file *filp, char __user *ubuf, size_t cnt, loff_t *ppos) in show_header()
1923 event_pid_write(struct file *filp, const char __user *ubuf, in event_pid_write()
1931 struct trace_event_file *file; in event_pid_write() local
1964 list_for_each_entry(file, &tr->events, list) { in event_pid_write()
1965 set_bit(EVENT_FILE_FL_PID_FILTER_BIT, &file->flags); in event_pid_write()
1992 ftrace_event_pid_write(struct file *filp, const char __user *ubuf, in ftrace_event_pid_write()
1999 ftrace_event_npid_write(struct file *filp, const char __user *ubuf, in ftrace_event_npid_write()
2005 static int ftrace_event_avail_open(struct inode *inode, struct file *file);
2006 static int ftrace_event_set_open(struct inode *inode, struct file *file);
2007 static int ftrace_event_set_pid_open(struct inode *inode, struct file *file);
2008 static int ftrace_event_set_npid_open(struct inode *inode, struct file *file);
2009 static int ftrace_event_release(struct inode *inode, struct file *file);
2127 ftrace_event_open(struct inode *inode, struct file *file, in ftrace_event_open() argument
2137 ret = seq_open(file, seq_ops); in ftrace_event_open()
2140 m = file->private_data; in ftrace_event_open()
2147 static int ftrace_event_release(struct inode *inode, struct file *file) in ftrace_event_release() argument
2153 return seq_release(inode, file); in ftrace_event_release()
2157 ftrace_event_avail_open(struct inode *inode, struct file *file) in ftrace_event_avail_open() argument
2162 return ftrace_event_open(inode, file, seq_ops); in ftrace_event_avail_open()
2166 ftrace_event_set_open(struct inode *inode, struct file *file) in ftrace_event_set_open() argument
2176 if ((file->f_mode & FMODE_WRITE) && in ftrace_event_set_open()
2177 (file->f_flags & O_TRUNC)) in ftrace_event_set_open()
2180 ret = ftrace_event_open(inode, file, seq_ops); in ftrace_event_set_open()
2187 ftrace_event_set_pid_open(struct inode *inode, struct file *file) in ftrace_event_set_pid_open() argument
2197 if ((file->f_mode & FMODE_WRITE) && in ftrace_event_set_pid_open()
2198 (file->f_flags & O_TRUNC)) in ftrace_event_set_pid_open()
2201 ret = ftrace_event_open(inode, file, seq_ops); in ftrace_event_set_pid_open()
2208 ftrace_event_set_npid_open(struct inode *inode, struct file *file) in ftrace_event_set_npid_open() argument
2218 if ((file->f_mode & FMODE_WRITE) && in ftrace_event_set_npid_open()
2219 (file->f_flags & O_TRUNC)) in ftrace_event_set_npid_open()
2222 ret = ftrace_event_open(inode, file, seq_ops); in ftrace_event_set_npid_open()
2263 struct trace_event_file *file, struct dentry *parent) in event_subsystem_dir() argument
2274 file->system = dir; in event_subsystem_dir()
2310 file->system = dir; in event_subsystem_dir()
2379 event_create_dir(struct dentry *parent, struct trace_event_file *file) in event_create_dir() argument
2381 struct trace_event_call *call = file->event_call; in event_create_dir()
2382 struct trace_array *tr = file->tr; in event_create_dir()
2392 d_events = event_subsystem_dir(tr, call->class->system, file, parent); in event_create_dir()
2399 file->dir = tracefs_create_dir(name, d_events); in event_create_dir()
2400 if (!file->dir) { in event_create_dir()
2406 trace_create_file("enable", TRACE_MODE_WRITE, file->dir, file, in event_create_dir()
2411 trace_create_file("id", TRACE_MODE_READ, file->dir, in event_create_dir()
2427 trace_create_file("filter", TRACE_MODE_WRITE, file->dir, in event_create_dir()
2428 file, &ftrace_event_filter_fops); in event_create_dir()
2430 trace_create_file("trigger", TRACE_MODE_WRITE, file->dir, in event_create_dir()
2431 file, &event_trigger_fops); in event_create_dir()
2435 trace_create_file("hist", TRACE_MODE_READ, file->dir, file, in event_create_dir()
2439 trace_create_file("hist_debug", TRACE_MODE_READ, file->dir, file, in event_create_dir()
2442 trace_create_file("format", TRACE_MODE_READ, file->dir, call, in event_create_dir()
2447 trace_create_file("inject", 0200, file->dir, file, in event_create_dir()
2456 struct trace_event_file *file; in remove_event_from_tracers() local
2459 do_for_each_event_file_safe(tr, file) { in remove_event_from_tracers()
2460 if (file->event_call != call) in remove_event_from_tracers()
2463 remove_event_file_dir(file); in remove_event_from_tracers()
2477 struct trace_event_file *file; in event_remove() local
2479 do_for_each_event_file(tr, file) { in event_remove()
2480 if (file->event_call != call) in event_remove()
2483 if (file->flags & EVENT_FILE_FL_WAS_ENABLED) in event_remove()
2486 ftrace_event_enable_disable(file, 0); in event_remove()
2683 struct trace_event_file *file; in trace_create_new_event() local
2686 file = kmem_cache_alloc(file_cachep, GFP_TRACE); in trace_create_new_event()
2687 if (!file) in trace_create_new_event()
2697 file->flags |= EVENT_FILE_FL_PID_FILTER; in trace_create_new_event()
2699 file->event_call = call; in trace_create_new_event()
2700 file->tr = tr; in trace_create_new_event()
2701 atomic_set(&file->sm_ref, 0); in trace_create_new_event()
2702 atomic_set(&file->tm_ref, 0); in trace_create_new_event()
2703 INIT_LIST_HEAD(&file->triggers); in trace_create_new_event()
2704 list_add(&file->list, &tr->events); in trace_create_new_event()
2706 return file; in trace_create_new_event()
2713 struct trace_event_file *file; in __trace_add_new_event() local
2715 file = trace_create_new_event(call, tr); in __trace_add_new_event()
2716 if (!file) in __trace_add_new_event()
2720 return event_create_dir(tr->event_dir, file); in __trace_add_new_event()
2734 struct trace_event_file *file; in __trace_early_add_new_event() local
2736 file = trace_create_new_event(call, tr); in __trace_early_add_new_event()
2737 if (!file) in __trace_early_add_new_event()
2777 struct trace_event_file *file; in probe_remove_event_call() local
2783 do_for_each_event_file(tr, file) { in probe_remove_event_call()
2784 if (file->event_call != call) in probe_remove_event_call()
2791 if (file->flags & EVENT_FILE_FL_ENABLED) in probe_remove_event_call()
2923 struct trace_event_file *file; in __find_event_file() local
2927 list_for_each_entry(file, &tr->events, list) { in __find_event_file()
2929 call = file->event_call; in __find_event_file()
2937 return file; in __find_event_file()
2946 struct trace_event_file *file; in find_event_file() local
2948 file = __find_event_file(tr, system, event); in find_event_file()
2949 if (!file || !file->event_call->class->reg || in find_event_file()
2950 file->event_call->flags & TRACE_EVENT_FL_IGNORE_ENABLE) in find_event_file()
2953 return file; in find_event_file()
2981 struct trace_event_file *file = NULL; in trace_get_event_file() local
2996 file = find_event_file(tr, system, event); in trace_get_event_file()
2997 if (!file) { in trace_get_event_file()
3004 ret = trace_event_try_get_ref(file->event_call); in trace_get_event_file()
3016 file = ERR_PTR(ret); in trace_get_event_file()
3018 return file; in trace_get_event_file()
3031 void trace_put_event_file(struct trace_event_file *file) in trace_put_event_file() argument
3034 trace_event_put_ref(file->event_call); in trace_put_event_file()
3037 trace_array_put(file->tr); in trace_put_event_file()
3048 struct trace_event_file *file; member
3057 clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &data->file->flags); in update_event_probe()
3059 set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &data->file->flags); in update_event_probe()
3098 if (edata->enable == !(edata->file->flags & EVENT_FILE_FL_SOFT_DISABLED)) in event_enable_count_probe()
3126 edata->file->event_call->class->system, in event_enable_print()
3127 trace_event_name(edata->file->event_call)); in event_enable_print()
3168 __ftrace_event_enable_disable(edata->file, 0, 1); in free_probe_data()
3169 trace_event_put_ref(edata->file->event_call); in free_probe_data()
3232 struct trace_event_file *file; in event_enable_func() local
3257 file = find_event_file(tr, system, event); in event_enable_func()
3258 if (!file) in event_enable_func()
3281 data->file = file; in event_enable_func()
3302 ret = trace_event_try_get_ref(file->event_call); in event_enable_func()
3308 ret = __ftrace_event_enable_disable(file, 1, 1); in event_enable_func()
3330 __ftrace_event_enable_disable(file, 0, 1); in event_enable_func()
3332 trace_event_put_ref(file->event_call); in event_enable_func()
3373 struct trace_event_file *file; in __trace_early_add_event_dirs() local
3377 list_for_each_entry(file, &tr->events, list) { in __trace_early_add_event_dirs()
3378 ret = event_create_dir(tr->event_dir, file); in __trace_early_add_event_dirs()
3381 trace_event_name(file->event_call)); in __trace_early_add_event_dirs()
3413 struct trace_event_file *file, *next; in __trace_remove_event_dirs() local
3415 list_for_each_entry_safe(file, next, &tr->events, list) in __trace_remove_event_dirs()
3416 remove_event_file_dir(file); in __trace_remove_event_dirs()
3794 struct trace_event_file *file; in event_trace_self_tests() local
3806 list_for_each_entry(file, &tr->events, list) { in event_trace_self_tests()
3808 call = file->event_call; in event_trace_self_tests()
3832 if (file->flags & EVENT_FILE_FL_ENABLED) { in event_trace_self_tests()
3838 ftrace_event_enable_disable(file, 1); in event_trace_self_tests()
3840 ftrace_event_enable_disable(file, 0); in event_trace_self_tests()