Lines Matching refs:file
124 event_triggers_call(struct trace_event_file *file, in event_triggers_call() argument
132 if (list_empty(&file->triggers)) in event_triggers_call()
135 list_for_each_entry_rcu(data, &file->triggers, list) { in event_triggers_call()
155 bool __trace_trigger_soft_disabled(struct trace_event_file *file) in __trace_trigger_soft_disabled() argument
157 unsigned long eflags = file->flags; in __trace_trigger_soft_disabled()
160 event_triggers_call(file, NULL, NULL, NULL); in __trace_trigger_soft_disabled()
164 return trace_event_ignore_this_pid(file); in __trace_trigger_soft_disabled()
182 event_triggers_post_call(struct trace_event_file *file, in event_triggers_post_call() argument
187 list_for_each_entry_rcu(data, &file->triggers, list) { in event_triggers_post_call()
209 static bool check_user_trigger(struct trace_event_file *file) in check_user_trigger() argument
213 list_for_each_entry_rcu(data, &file->triggers, list, in check_user_trigger()
272 static int event_trigger_regex_open(struct inode *inode, struct file *file) in event_trigger_regex_open() argument
282 if (unlikely(!event_file_file(file))) in event_trigger_regex_open()
285 if ((file->f_mode & FMODE_WRITE) && in event_trigger_regex_open()
286 (file->f_flags & O_TRUNC)) { in event_trigger_regex_open()
290 event_file = event_file_data(file); in event_trigger_regex_open()
298 if (file->f_mode & FMODE_READ) { in event_trigger_regex_open()
299 ret = seq_open(file, &event_triggers_seq_ops); in event_trigger_regex_open()
301 struct seq_file *m = file->private_data; in event_trigger_regex_open()
302 m->private = file; in event_trigger_regex_open()
309 int trigger_process_regex(struct trace_event_file *file, char *buff) in trigger_process_regex() argument
328 return p->parse(p, file, buff, command, next); in trigger_process_regex()
334 static ssize_t event_trigger_regex_write(struct file *file, in event_trigger_regex_write() argument
354 event_file = event_file_file(file); in event_trigger_regex_write()
366 static int event_trigger_regex_release(struct inode *inode, struct file *file) in event_trigger_regex_release() argument
368 if (file->f_mode & FMODE_READ) in event_trigger_regex_release()
369 seq_release(inode, file); in event_trigger_regex_release()
375 event_trigger_write(struct file *filp, const char __user *ubuf, in event_trigger_write()
382 event_trigger_open(struct inode *inode, struct file *filp) in event_trigger_open()
389 event_trigger_release(struct inode *inode, struct file *file) in event_trigger_release() argument
391 return event_trigger_regex_release(inode, file); in event_trigger_release()
543 int trace_event_trigger_enable_disable(struct trace_event_file *file, in trace_event_trigger_enable_disable() argument
549 if (atomic_inc_return(&file->tm_ref) > 1) in trace_event_trigger_enable_disable()
551 set_bit(EVENT_FILE_FL_TRIGGER_MODE_BIT, &file->flags); in trace_event_trigger_enable_disable()
552 ret = trace_event_enable_disable(file, 1, 1); in trace_event_trigger_enable_disable()
554 if (atomic_dec_return(&file->tm_ref) > 0) in trace_event_trigger_enable_disable()
556 clear_bit(EVENT_FILE_FL_TRIGGER_MODE_BIT, &file->flags); in trace_event_trigger_enable_disable()
557 ret = trace_event_enable_disable(file, 0, 1); in trace_event_trigger_enable_disable()
579 struct trace_event_file *file; in clear_event_triggers() local
581 list_for_each_entry(file, &tr->events, list) { in clear_event_triggers()
583 list_for_each_entry_safe(data, n, &file->triggers, list) { in clear_event_triggers()
584 trace_event_trigger_enable_disable(file, 0); in clear_event_triggers()
602 void update_cond_flag(struct trace_event_file *file) in update_cond_flag() argument
609 list_for_each_entry(data, &file->triggers, list) { in update_cond_flag()
618 set_bit(EVENT_FILE_FL_TRIGGER_COND_BIT, &file->flags); in update_cond_flag()
620 clear_bit(EVENT_FILE_FL_TRIGGER_COND_BIT, &file->flags); in update_cond_flag()
638 struct trace_event_file *file) in register_trigger() argument
645 list_for_each_entry(test, &file->triggers, list) { in register_trigger()
656 list_add_rcu(&data->list, &file->triggers); in register_trigger()
658 update_cond_flag(file); in register_trigger()
659 ret = trace_event_trigger_enable_disable(file, 1); in register_trigger()
662 update_cond_flag(file); in register_trigger()
672 struct trace_event_file *file) in try_unregister_trigger() argument
678 list_for_each_entry(iter, &file->triggers, list) { in try_unregister_trigger()
682 trace_event_trigger_enable_disable(file, 0); in try_unregister_trigger()
683 update_cond_flag(file); in try_unregister_trigger()
711 struct trace_event_file *file) in unregister_trigger() argument
713 try_unregister_trigger(glob, test, file); in unregister_trigger()
982 struct trace_event_file *file, in event_trigger_set_filter() argument
987 return cmd_ops->set_filter(param, trigger_data, file); in event_trigger_set_filter()
1019 struct trace_event_file *file, in event_trigger_register() argument
1023 return cmd_ops->reg(glob, trigger_data, file); in event_trigger_register()
1037 struct trace_event_file *file, in event_trigger_unregister() argument
1041 cmd_ops->unreg(glob, trigger_data, file); in event_trigger_unregister()
1066 struct trace_event_file *file, in event_trigger_parse() argument
1081 trigger_data = trigger_data_alloc(cmd_ops, cmd, param, file); in event_trigger_parse()
1086 event_trigger_unregister(cmd_ops, file, glob+1, trigger_data); in event_trigger_parse()
1095 ret = event_trigger_set_filter(cmd_ops, file, filter, trigger_data); in event_trigger_parse()
1102 ret = event_trigger_register(cmd_ops, file, glob, trigger_data); in event_trigger_parse()
1134 struct trace_event_file *file) in set_trigger_filter() argument
1153 ret = create_event_filter(file->tr, file->event_call, in set_trigger_filter()
1351 struct trace_event_file *file = data->private_data; in traceon_trigger() local
1353 if (WARN_ON_ONCE(!file)) in traceon_trigger()
1356 if (tracer_tracing_is_on(file->tr)) in traceon_trigger()
1359 tracer_tracing_on(file->tr); in traceon_trigger()
1367 struct trace_event_file *file = data->private_data; in traceon_count_func() local
1369 if (WARN_ON_ONCE(!file)) in traceon_count_func()
1372 if (tracer_tracing_is_on(file->tr)) in traceon_count_func()
1389 struct trace_event_file *file = data->private_data; in traceoff_trigger() local
1391 if (WARN_ON_ONCE(!file)) in traceoff_trigger()
1394 if (!tracer_tracing_is_on(file->tr)) in traceoff_trigger()
1397 tracer_tracing_off(file->tr); in traceoff_trigger()
1405 struct trace_event_file *file = data->private_data; in traceoff_count_func() local
1407 if (WARN_ON_ONCE(!file)) in traceoff_count_func()
1410 if (!tracer_tracing_is_on(file->tr)) in traceoff_count_func()
1471 struct trace_event_file *file = data->private_data; in snapshot_trigger() local
1473 if (WARN_ON_ONCE(!file)) in snapshot_trigger()
1476 tracing_snapshot_instance(file->tr); in snapshot_trigger()
1482 struct trace_event_file *file) in register_snapshot_trigger() argument
1484 int ret = tracing_arm_snapshot(file->tr); in register_snapshot_trigger()
1489 ret = register_trigger(glob, data, file); in register_snapshot_trigger()
1491 tracing_disarm_snapshot(file->tr); in register_snapshot_trigger()
1497 struct trace_event_file *file) in unregister_snapshot_trigger() argument
1499 if (try_unregister_trigger(glob, data, file)) in unregister_snapshot_trigger()
1500 tracing_disarm_snapshot(file->tr); in unregister_snapshot_trigger()
1560 struct trace_event_file *file = data->private_data; in stacktrace_trigger() local
1562 if (WARN_ON_ONCE(!file)) in stacktrace_trigger()
1565 __trace_stack(file->tr, tracing_gen_ctx_dec(), STACK_SKIP); in stacktrace_trigger()
1617 clear_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &enable_data->file->flags); in event_enable_trigger()
1619 set_bit(EVENT_FILE_FL_SOFT_DISABLED_BIT, &enable_data->file->flags); in event_enable_trigger()
1633 if (enable_data->enable == !(enable_data->file->flags & EVENT_FILE_FL_SOFT_DISABLED)) in event_enable_count_func()
1651 enable_data->file->event_call->class->system, in event_enable_trigger_print()
1652 trace_event_name(enable_data->file->event_call)); in event_enable_trigger_print()
1677 trace_event_enable_disable(enable_data->file, 0, 1); in event_enable_trigger_free()
1678 trace_event_put_ref(enable_data->file->event_call); in event_enable_trigger_free()
1685 struct trace_event_file *file, in event_enable_trigger_parse() argument
1691 struct trace_array *tr = file->tr; in event_enable_trigger_parse()
1736 enable_data->file = event_enable_file; in event_enable_trigger_parse()
1745 event_trigger_unregister(cmd_ops, file, glob+1, trigger_data); in event_enable_trigger_parse()
1759 ret = event_trigger_set_filter(cmd_ops, file, filter, trigger_data); in event_enable_trigger_parse()
1774 ret = event_trigger_register(cmd_ops, file, glob, trigger_data); in event_enable_trigger_parse()
1794 struct trace_event_file *file) in event_enable_register_trigger() argument
1803 list_for_each_entry(test, &file->triggers, list) { in event_enable_register_trigger()
1808 (test_enable_data->file == enable_data->file)) { in event_enable_register_trigger()
1819 list_add_rcu(&data->list, &file->triggers); in event_enable_register_trigger()
1821 update_cond_flag(file); in event_enable_register_trigger()
1822 ret = trace_event_trigger_enable_disable(file, 1); in event_enable_register_trigger()
1825 update_cond_flag(file); in event_enable_register_trigger()
1832 struct trace_event_file *file) in event_enable_unregister_trigger() argument
1840 list_for_each_entry(iter, &file->triggers, list) { in event_enable_unregister_trigger()
1845 (enable_data->file == test_enable_data->file)) { in event_enable_unregister_trigger()
1848 trace_event_trigger_enable_disable(file, 0); in event_enable_unregister_trigger()
1849 update_cond_flag(file); in event_enable_unregister_trigger()