Lines Matching refs:call

98 trace_find_event_field(struct trace_event_call *call, char *name)  in trace_find_event_field()  argument
103 head = trace_get_fields(call); in trace_find_event_field()
145 int trace_define_field(struct trace_event_call *call, const char *type, in trace_define_field() argument
151 if (WARN_ON(!call->class)) in trace_define_field()
154 head = trace_get_fields(call); in trace_define_field()
160 static int trace_define_field_ext(struct trace_event_call *call, const char *type, in trace_define_field_ext() argument
166 if (WARN_ON(!call->class)) in trace_define_field_ext()
169 head = trace_get_fields(call); in trace_define_field_ext()
220 static void trace_destroy_fields(struct trace_event_call *call) in trace_destroy_fields() argument
225 head = trace_get_fields(call); in trace_destroy_fields()
236 int trace_event_get_offsets(struct trace_event_call *call) in trace_event_get_offsets() argument
241 head = trace_get_fields(call); in trace_event_get_offsets()
252 struct trace_event_call *call) in find_event_field() argument
254 struct trace_event_fields *field = call->class->fields_array; in find_event_field()
280 static bool test_field(const char *fmt, struct trace_event_call *call) in test_field() argument
284 field = find_event_field(fmt, call); in test_field()
302 static bool process_pointer(const char *fmt, int len, struct trace_event_call *call) in process_pointer() argument
317 if ((a && (a < r)) || test_field(r, call)) in process_pointer()
336 static bool process_string(const char *fmt, int len, struct trace_event_call *call) in process_string() argument
388 if (process_pointer(fmt, len, call)) in process_string()
392 field = find_event_field(fmt, call); in process_string()
397 call->flags |= TRACE_EVENT_FL_TEST_STR; in process_string()
405 struct trace_event_call *call) in handle_dereference_arg() argument
408 if (process_string(arg_str, len, call)) in handle_dereference_arg()
410 } else if (process_pointer(arg_str, len, call)) in handle_dereference_arg()
423 static void test_event_printk(struct trace_event_call *call) in test_event_printk() argument
435 fmt = call->print_fmt; in test_event_printk()
499 trace_event_name(call))) in test_event_printk()
529 trace_event_name(call))) in test_event_printk()
553 trace_event_name(call), in test_event_printk()
582 &dereference_flags, arg, call); in test_event_printk()
595 &dereference_flags, arg, call); in test_event_printk()
613 trace_event_name(call), arg); in test_event_printk()
618 int trace_event_raw_init(struct trace_event_call *call) in trace_event_raw_init() argument
622 id = register_trace_event(&call->event); in trace_event_raw_init()
626 test_event_printk(call); in trace_event_raw_init()
684 int trace_event_reg(struct trace_event_call *call, in trace_event_reg() argument
689 WARN_ON(!(call->flags & TRACE_EVENT_FL_TRACEPOINT)); in trace_event_reg()
692 return tracepoint_probe_register(call->tp, in trace_event_reg()
693 call->class->probe, in trace_event_reg()
696 tracepoint_probe_unregister(call->tp, in trace_event_reg()
697 call->class->probe, in trace_event_reg()
703 return tracepoint_probe_register(call->tp, in trace_event_reg()
704 call->class->perf_probe, in trace_event_reg()
705 call); in trace_event_reg()
707 tracepoint_probe_unregister(call->tp, in trace_event_reg()
708 call->class->perf_probe, in trace_event_reg()
709 call); in trace_event_reg()
769 struct trace_event_call *call = file->event_call; in __ftrace_event_enable_disable() local
812 ret = call->class->reg(call, TRACE_REG_UNREGISTER, file); in __ftrace_event_enable_disable()
860 ret = call->class->reg(call, TRACE_REG_REGISTER, file); in __ftrace_event_enable_disable()
867 "%s\n", trace_event_name(call)); in __ftrace_event_enable_disable()
1308 struct trace_event_call *call; in __ftrace_set_clr_event_nolock() local
1328 call = file->event_call; in __ftrace_set_clr_event_nolock()
1331 if (module && (!call->module || strcmp(module_name(call->module), module))) in __ftrace_set_clr_event_nolock()
1334 name = trace_event_name(call); in __ftrace_set_clr_event_nolock()
1336 if (!name || !call->class || !call->class->reg) in __ftrace_set_clr_event_nolock()
1339 if (call->flags & TRACE_EVENT_FL_IGNORE_ENABLE) in __ftrace_set_clr_event_nolock()
1344 strcmp(match, call->class->system) != 0) in __ftrace_set_clr_event_nolock()
1347 if (sub && strcmp(sub, call->class->system) != 0) in __ftrace_set_clr_event_nolock()
1538 struct trace_event_call *call; in t_next() local
1544 call = file->event_call; in t_next()
1549 if (call->class && call->class->reg && in t_next()
1550 !(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) in t_next()
1651 struct trace_event_call *call = file->event_call; in t_show() local
1653 if (strcmp(call->class->system, TRACE_SYSTEM) != 0) in t_show()
1654 seq_printf(m, "%s:", call->class->system); in t_show()
1655 seq_printf(m, "%s\n", trace_event_name(call)); in t_show()
1850 struct trace_event_call *call; in trace_events_enabled() local
1857 call = file->event_call; in trace_events_enabled()
1858 if ((call->flags & TRACE_EVENT_FL_IGNORE_ENABLE) || in trace_events_enabled()
1859 !trace_event_name(call) || !call->class || !call->class->reg) in trace_events_enabled()
1862 if (system && strcmp(call->class->system, system) != 0) in trace_events_enabled()
1953 struct trace_event_call *call = file->event_call; in f_next() local
1955 struct list_head *head = trace_get_fields(call); in f_next()
1986 struct trace_event_call *call = file->event_call; in f_show() local
1992 seq_printf(m, "name: %s\n", trace_event_name(call)); in f_show()
1993 seq_printf(m, "ID: %d\n", call->event.type); in f_show()
2003 call->print_fmt); in f_show()
2855 event_define_fields(struct trace_event_call *call) in event_define_fields() argument
2864 head = trace_get_fields(call); in event_define_fields()
2866 struct trace_event_fields *field = call->class->fields_array; in event_define_fields()
2871 field->define_fields(call); in event_define_fields()
2876 ret = trace_define_field_ext(call, field->type, field->name, in event_define_fields()
2896 struct trace_event_call *call = file->event_call; in event_callback() local
2909 if (!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE)) { in event_callback()
2910 if (call->class->reg && strcmp(name, "enable") == 0) { in event_callback()
2923 if (!(call->flags & TRACE_EVENT_FL_IGNORE_ENABLE) || in event_callback()
2924 strcmp(trace_event_name(call), "print") == 0) { in event_callback()
2933 if (call->event.type && call->class->reg && in event_callback()
2936 *data = (void *)(long)call->event.type; in event_callback()
2957 if (call->event.type && call->class->reg && in event_callback()
2978 struct trace_event_call *call = file->event_call; in event_create_dir() local
3034 if (WARN_ON_ONCE(strcmp(call->class->system, TRACE_SYSTEM) == 0)) in event_create_dir()
3037 e_events = event_subsystem_dir(tr, call->class->system, file, parent); in event_create_dir()
3043 name = trace_event_name(call); in event_create_dir()
3052 ret = event_define_fields(call); in event_create_dir()
3064 static void remove_event_from_tracers(struct trace_event_call *call) in remove_event_from_tracers() argument
3070 if (file->event_call != call) in remove_event_from_tracers()
3084 static void event_remove(struct trace_event_call *call) in event_remove() argument
3090 if (file->event_call != call) in event_remove()
3106 if (call->event.funcs) in event_remove()
3107 __unregister_trace_event(&call->event); in event_remove()
3108 remove_event_from_tracers(call); in event_remove()
3109 list_del(&call->list); in event_remove()
3112 static int event_init(struct trace_event_call *call) in event_init() argument
3117 name = trace_event_name(call); in event_init()
3121 if (call->class->raw_init) { in event_init()
3122 ret = call->class->raw_init(call); in event_init()
3131 __register_event(struct trace_event_call *call, struct module *mod) in __register_event() argument
3135 ret = event_init(call); in __register_event()
3140 list_add(&call->list, &ftrace_events); in __register_event()
3143 if (call->flags & TRACE_EVENT_FL_DYNAMIC) in __register_event()
3144 atomic_set(&call->refcnt, 0); in __register_event()
3146 call->module = mod; in __register_event()
3173 static void update_event_printk(struct trace_event_call *call, in update_event_printk() argument
3180 for (ptr = call->print_fmt; *ptr; ptr++) { in update_event_printk()
3340 static void update_event_fields(struct trace_event_call *call, in update_event_fields() argument
3351 if (call->flags & TRACE_EVENT_FL_DYNAMIC) in update_event_fields()
3359 head = trace_get_fields(call); in update_event_fields()
3389 if (call->module) in update_event_fields()
3390 add_str_to_module(call->module, str); in update_event_fields()
3401 struct trace_event_call *call, *p; in trace_event_update_all() local
3409 list_for_each_entry_safe(call, p, &ftrace_events, list) { in trace_event_update_all()
3411 if (!last_system || call->class->system != last_system) { in trace_event_update_all()
3414 last_system = call->class->system; in trace_event_update_all()
3429 if (call->class->system == map[i]->system) { in trace_event_update_all()
3435 update_event_printk(call, map[i]); in trace_event_update_all()
3436 update_event_fields(call, map[i]); in trace_event_update_all()
3442 update_event_fields(call, NULL); in trace_event_update_all()
3448 static bool event_in_systems(struct trace_event_call *call, in event_in_systems() argument
3457 system = call->class->system; in event_in_systems()
3484 trace_create_new_event(struct trace_event_call *call, in trace_create_new_event() argument
3492 if (!event_in_systems(call, tr->system_names)) in trace_create_new_event()
3508 file->event_call = call; in trace_create_new_event()
3557 __trace_add_new_event(struct trace_event_call *call, struct trace_array *tr) in __trace_add_new_event() argument
3561 file = trace_create_new_event(call, tr); in __trace_add_new_event()
3577 return event_define_fields(call); in __trace_add_new_event()
3604 __trace_early_add_new_event(struct trace_event_call *call, in __trace_early_add_new_event() argument
3610 file = trace_create_new_event(call, tr); in __trace_early_add_new_event()
3623 ret = event_define_fields(call); in __trace_early_add_new_event()
3627 trace_early_triggers(file, trace_event_name(call)); in __trace_early_add_new_event()
3633 static void __add_event_to_tracers(struct trace_event_call *call);
3636 int trace_add_event_call(struct trace_event_call *call) in trace_add_event_call() argument
3643 ret = __register_event(call, NULL); in trace_add_event_call()
3647 __add_event_to_tracers(call); in trace_add_event_call()
3656 static void __trace_remove_event_call(struct trace_event_call *call) in __trace_remove_event_call() argument
3658 event_remove(call); in __trace_remove_event_call()
3659 trace_destroy_fields(call); in __trace_remove_event_call()
3662 static int probe_remove_event_call(struct trace_event_call *call) in probe_remove_event_call() argument
3668 if (call->perf_refcount) in probe_remove_event_call()
3672 if (file->event_call != call) in probe_remove_event_call()
3693 __trace_remove_event_call(call); in probe_remove_event_call()
3705 int trace_remove_event_call(struct trace_event_call *call) in trace_remove_event_call() argument
3713 ret = probe_remove_event_call(call); in trace_remove_event_call()
3752 struct trace_event_call **call, **start, **end; in trace_module_add_events() local
3767 for_each_event(call, start, end) { in trace_module_add_events()
3768 __register_event(*call, mod); in trace_module_add_events()
3769 __add_event_to_tracers(*call); in trace_module_add_events()
3777 struct trace_event_call *call, *p; in trace_module_remove_events() local
3781 list_for_each_entry_safe(call, p, &ftrace_events, list) { in trace_module_remove_events()
3782 if ((call->flags & TRACE_EVENT_FL_DYNAMIC) || !call->module) in trace_module_remove_events()
3784 if (call->module == mod) in trace_module_remove_events()
3785 __trace_remove_event_call(call); in trace_module_remove_events()
3839 struct trace_event_call *call; in __trace_add_event_dirs() local
3844 list_for_each_entry(call, &ftrace_events, list) { in __trace_add_event_dirs()
3845 ret = __trace_add_new_event(call, tr); in __trace_add_event_dirs()
3848 trace_event_name(call)); in __trace_add_event_dirs()
3857 struct trace_event_call *call; in __find_event_file() local
3862 call = file->event_call; in __find_event_file()
3863 name = trace_event_name(call); in __find_event_file()
3865 if (!name || !call->class) in __find_event_file()
3869 strcmp(system, call->class->system) == 0) in __find_event_file()
4305 struct trace_event_call *call; in __trace_early_add_events() local
4308 list_for_each_entry(call, &ftrace_events, list) { in __trace_early_add_events()
4310 if (!(call->flags & TRACE_EVENT_FL_DYNAMIC) && in __trace_early_add_events()
4311 WARN_ON_ONCE(call->module)) in __trace_early_add_events()
4314 ret = __trace_early_add_new_event(call, tr); in __trace_early_add_events()
4317 trace_event_name(call)); in __trace_early_add_events()
4331 static void __add_event_to_tracers(struct trace_event_call *call) in __add_event_to_tracers() argument
4336 __trace_add_new_event(call, tr); in __add_event_to_tracers()
4548 struct trace_event_call **iter, *call; in event_trace_enable() local
4556 call = *iter; in event_trace_enable()
4557 ret = event_init(call); in event_trace_enable()
4559 list_add(&call->list, &ftrace_events); in event_trace_enable()
4715 struct trace_event_call *call; in event_trace_self_tests() local
4728 call = file->event_call; in event_trace_self_tests()
4731 if (!call->class || !call->class->probe) in event_trace_self_tests()
4741 if (call->class->system && in event_trace_self_tests()
4742 strcmp(call->class->system, "syscalls") == 0) in event_trace_self_tests()
4746 pr_info("Testing event %s: ", trace_event_name(call)); in event_trace_self_tests()