• Home
  • Raw
  • Download

Lines Matching refs:event

91 static bool synth_event_match(const char *system, const char *event,
114 struct synth_event *event = to_synth_event(ev); in synth_event_is_busy() local
116 return event->ref != 0; in synth_event_is_busy()
119 static bool synth_event_match(const char *system, const char *event, in synth_event_match() argument
124 return strcmp(sev->name, event) == 0 && in synth_event_match()
137 struct synth_event *event = call->data; in synth_event_define_fields() local
143 for (i = 0, n_u64 = 0; i < event->n_fields; i++) { in synth_event_define_fields()
144 size = event->fields[i]->size; in synth_event_define_fields()
145 is_signed = event->fields[i]->is_signed; in synth_event_define_fields()
146 type = event->fields[i]->type; in synth_event_define_fields()
147 name = event->fields[i]->name; in synth_event_define_fields()
153 event->fields[i]->offset = n_u64; in synth_event_define_fields()
155 if (event->fields[i]->is_string && !event->fields[i]->is_dynamic) { in synth_event_define_fields()
164 event->n_u64 = n_u64; in synth_event_define_fields()
347 struct trace_event *event) in print_synth_event() argument
358 se = container_of(event, struct synth_event, call.event); in print_synth_event()
446 struct synth_event *event, in trace_string() argument
460 data_offset += event->n_u64 * sizeof(u64); in trace_string()
491 struct synth_event *event, in trace_stack() argument
500 data_offset = struct_size(entry, fields, event->n_u64); in trace_stack()
536 struct synth_event *event; in trace_event_raw_event_synth() local
539 event = trace_file->event_call->data; in trace_event_raw_event_synth()
544 fields_size = event->n_u64 * sizeof(u64); in trace_event_raw_event_synth()
546 for (i = 0; i < event->n_dynamic_fields; i++) { in trace_event_raw_event_synth()
547 unsigned int field_pos = event->dynamic_fields[i]->field_pos; in trace_event_raw_event_synth()
570 for (i = 0, n_u64 = 0; i < event->n_fields; i++) { in trace_event_raw_event_synth()
572 if (event->fields[i]->is_string) { in trace_event_raw_event_synth()
575 len = trace_string(entry, event, str_val, in trace_event_raw_event_synth()
576 event->fields[i]->is_dynamic, in trace_event_raw_event_synth()
579 } else if (event->fields[i]->is_stack) { in trace_event_raw_event_synth()
582 len = trace_stack(entry, event, stack, in trace_event_raw_event_synth()
586 struct synth_field *field = event->fields[i]; in trace_event_raw_event_synth()
623 static int __set_synth_event_print_fmt(struct synth_event *event, in __set_synth_event_print_fmt() argument
634 for (i = 0; i < event->n_fields; i++) { in __set_synth_event_print_fmt()
635 fmt = synth_field_fmt(event->fields[i]->type); in __set_synth_event_print_fmt()
637 event->fields[i]->name, fmt, in __set_synth_event_print_fmt()
638 i == event->n_fields - 1 ? "" : ", "); in __set_synth_event_print_fmt()
642 for (i = 0; i < event->n_fields; i++) { in __set_synth_event_print_fmt()
643 if (event->fields[i]->is_string && in __set_synth_event_print_fmt()
644 event->fields[i]->is_dynamic) in __set_synth_event_print_fmt()
646 ", __get_str(%s)", event->fields[i]->name); in __set_synth_event_print_fmt()
647 else if (event->fields[i]->is_stack) in __set_synth_event_print_fmt()
649 ", __get_stacktrace(%s)", event->fields[i]->name); in __set_synth_event_print_fmt()
652 ", REC->%s", event->fields[i]->name); in __set_synth_event_print_fmt()
663 struct synth_event *event = call->data; in set_synth_event_print_fmt() local
668 len = __set_synth_event_print_fmt(event, NULL, 0); in set_synth_event_print_fmt()
675 __set_synth_event_print_fmt(event, print_fmt, len + 1); in set_synth_event_print_fmt()
859 struct synth_event *event; in find_synth_event() local
864 event = to_synth_event(pos); in find_synth_event()
865 if (strcmp(event->name, name) == 0) in find_synth_event()
866 return event; in find_synth_event()
878 static int register_synth_event(struct synth_event *event) in register_synth_event() argument
880 struct trace_event_call *call = &event->call; in register_synth_event()
883 event->call.class = &event->class; in register_synth_event()
884 event->class.system = kstrdup(SYNTH_SYSTEM, GFP_KERNEL); in register_synth_event()
885 if (!event->class.system) { in register_synth_event()
890 event->tp = alloc_synth_tracepoint(event->name); in register_synth_event()
891 if (IS_ERR(event->tp)) { in register_synth_event()
892 ret = PTR_ERR(event->tp); in register_synth_event()
893 event->tp = NULL; in register_synth_event()
898 call->event.funcs = &synth_event_funcs; in register_synth_event()
901 ret = register_trace_event(&call->event); in register_synth_event()
909 call->data = event; in register_synth_event()
910 call->tp = event->tp; in register_synth_event()
926 unregister_trace_event(&call->event); in register_synth_event()
930 static int unregister_synth_event(struct synth_event *event) in unregister_synth_event() argument
932 struct trace_event_call *call = &event->call; in unregister_synth_event()
940 static void free_synth_event(struct synth_event *event) in free_synth_event() argument
944 if (!event) in free_synth_event()
947 for (i = 0; i < event->n_fields; i++) in free_synth_event()
948 free_synth_field(event->fields[i]); in free_synth_event()
950 kfree(event->fields); in free_synth_event()
951 kfree(event->dynamic_fields); in free_synth_event()
952 kfree(event->name); in free_synth_event()
953 kfree(event->class.system); in free_synth_event()
954 free_synth_tracepoint(event->tp); in free_synth_event()
955 free_synth_event_print_fmt(&event->call); in free_synth_event()
956 kfree(event); in free_synth_event()
963 struct synth_event *event; in alloc_synth_event() local
965 event = kzalloc(sizeof(*event), GFP_KERNEL); in alloc_synth_event()
966 if (!event) { in alloc_synth_event()
967 event = ERR_PTR(-ENOMEM); in alloc_synth_event()
971 event->name = kstrdup(name, GFP_KERNEL); in alloc_synth_event()
972 if (!event->name) { in alloc_synth_event()
973 kfree(event); in alloc_synth_event()
974 event = ERR_PTR(-ENOMEM); in alloc_synth_event()
978 event->fields = kcalloc(n_fields, sizeof(*event->fields), GFP_KERNEL); in alloc_synth_event()
979 if (!event->fields) { in alloc_synth_event()
980 free_synth_event(event); in alloc_synth_event()
981 event = ERR_PTR(-ENOMEM); in alloc_synth_event()
990 event->dynamic_fields = kcalloc(n_dynamic_fields, in alloc_synth_event()
991 sizeof(*event->dynamic_fields), in alloc_synth_event()
993 if (!event->dynamic_fields) { in alloc_synth_event()
994 free_synth_event(event); in alloc_synth_event()
995 event = ERR_PTR(-ENOMEM); in alloc_synth_event()
1000 dyn_event_init(&event->devent, &synth_event_ops); in alloc_synth_event()
1004 event->fields[i] = fields[i]; in alloc_synth_event()
1007 event->dynamic_fields[j++] = fields[i]; in alloc_synth_event()
1009 event->n_dynamic_fields = j; in alloc_synth_event()
1010 event->n_fields = n_fields; in alloc_synth_event()
1012 return event; in alloc_synth_event()
1292 struct synth_event *event = NULL; in __create_synth_event() local
1313 event = find_synth_event(name); in __create_synth_event()
1314 if (event) { in __create_synth_event()
1399 event = alloc_synth_event(name, n_fields, fields); in __create_synth_event()
1400 if (IS_ERR(event)) { in __create_synth_event()
1401 ret = PTR_ERR(event); in __create_synth_event()
1402 event = NULL; in __create_synth_event()
1405 ret = register_synth_event(event); in __create_synth_event()
1407 dyn_event_add(&event->devent, &event->call); in __create_synth_event()
1409 free_synth_event(event); in __create_synth_event()
1667 trace_state->event = file->event_call->data; in __synth_event_trace_init()
1680 fields_size = trace_state->event->n_u64 * sizeof(u64); in __synth_event_trace_start()
1743 if (state.event->n_dynamic_fields) { in synth_event_trace()
1746 for (i = 0; i < state.event->n_fields; i++) { in synth_event_trace()
1749 if (state.event->fields[i]->is_string && in synth_event_trace()
1750 state.event->fields[i]->is_dynamic) { in synth_event_trace()
1764 if (n_vals != state.event->n_fields) { in synth_event_trace()
1772 for (i = 0, n_u64 = 0; i < state.event->n_fields; i++) { in synth_event_trace()
1777 if (state.event->fields[i]->is_string) { in synth_event_trace()
1780 len = trace_string(state.entry, state.event, str_val, in synth_event_trace()
1781 state.event->fields[i]->is_dynamic, in synth_event_trace()
1785 struct synth_field *field = state.event->fields[i]; in synth_event_trace()
1848 if (state.event->n_dynamic_fields) { in synth_event_trace_array()
1849 for (i = 0; i < state.event->n_dynamic_fields; i++) { in synth_event_trace_array()
1850 field_pos = state.event->dynamic_fields[i]->field_pos; in synth_event_trace_array()
1861 if (n_vals != state.event->n_fields) { in synth_event_trace_array()
1868 for (i = 0, n_u64 = 0; i < state.event->n_fields; i++) { in synth_event_trace_array()
1869 if (state.event->fields[i]->is_string) { in synth_event_trace_array()
1872 len = trace_string(state.entry, state.event, str_val, in synth_event_trace_array()
1873 state.event->fields[i]->is_dynamic, in synth_event_trace_array()
1877 struct synth_field *field = state.event->fields[i]; in synth_event_trace_array()
1950 if (trace_state->event->n_dynamic_fields) in synth_event_trace_start()
1964 struct synth_event *event; in __synth_event_add_val() local
1990 event = trace_state->event; in __synth_event_add_val()
1992 for (i = 0; i < event->n_fields; i++) { in __synth_event_add_val()
1993 field = event->fields[i]; in __synth_event_add_val()
2002 if (trace_state->cur_field >= event->n_fields) { in __synth_event_add_val()
2006 field = event->fields[trace_state->cur_field++]; in __synth_event_add_val()
2208 struct synth_event *event = to_synth_event(ev); in synth_event_release() local
2211 if (event->ref) in synth_event_release()
2214 if (trace_event_dyn_busy(&event->call)) in synth_event_release()
2217 ret = unregister_synth_event(event); in synth_event_release()
2222 free_synth_event(event); in synth_event_release()
2226 static int __synth_event_show(struct seq_file *m, struct synth_event *event) in __synth_event_show() argument
2232 seq_printf(m, "%s\t", event->name); in __synth_event_show()
2234 for (i = 0; i < event->n_fields; i++) { in __synth_event_show()
2235 field = event->fields[i]; in __synth_event_show()
2246 i == event->n_fields - 1 ? "" : "; "); in __synth_event_show()
2256 struct synth_event *event = to_synth_event(ev); in synth_event_show() local
2258 seq_printf(m, "s:%s/", event->class.system); in synth_event_show()
2260 return __synth_event_show(m, event); in synth_event_show()