Lines Matching full:fields
28 C(TOO_MANY_FIELDS, "Too many fields"), \
108 u64 fields[]; member
114 int offset = offsetof(typeof(trace), fields); in synth_event_define_fields()
122 size = event->fields[i]->size; in synth_event_define_fields()
123 is_signed = event->fields[i]->is_signed; in synth_event_define_fields()
124 type = event->fields[i]->type; in synth_event_define_fields()
125 name = event->fields[i]->name; in synth_event_define_fields()
131 event->fields[i]->offset = n_u64; in synth_event_define_fields()
133 if (event->fields[i]->is_string && !event->fields[i]->is_dynamic) { in synth_event_define_fields()
332 fmt = synth_field_fmt(se->fields[i]->type); in print_synth_event()
341 if (se->fields[i]->is_string) { in print_synth_event()
342 if (se->fields[i]->is_dynamic) { in print_synth_event()
346 offset = (u32)entry->fields[n_u64]; in print_synth_event()
351 trace_seq_printf(s, print_fmt, se->fields[i]->name, in print_synth_event()
357 trace_seq_printf(s, print_fmt, se->fields[i]->name, in print_synth_event()
359 (char *)&entry->fields[n_u64], in print_synth_event()
369 se->fields[i]->name, in print_synth_event()
370 se->fields[i]->size, in print_synth_event()
371 entry->fields[n_u64], in print_synth_event()
374 if (strcmp(se->fields[i]->type, "gfp_t") == 0) { in print_synth_event()
377 entry->fields[n_u64], in print_synth_event()
407 data_offset = offsetof(typeof(*entry), fields); in trace_string()
417 *(u32 *)&entry->fields[*n_u64] = data_offset; in trace_string()
421 str_field = (char *)&entry->fields[*n_u64]; in trace_string()
475 if (event->fields[i]->is_string) { in trace_event_raw_event_synth()
479 event->fields[i]->is_dynamic, in trace_event_raw_event_synth()
483 struct synth_field *field = event->fields[i]; in trace_event_raw_event_synth()
488 *(u8 *)&entry->fields[n_u64] = (u8)val; in trace_event_raw_event_synth()
492 *(u16 *)&entry->fields[n_u64] = (u16)val; in trace_event_raw_event_synth()
496 *(u32 *)&entry->fields[n_u64] = (u32)val; in trace_event_raw_event_synth()
500 entry->fields[n_u64] = val; in trace_event_raw_event_synth()
532 fmt = synth_field_fmt(event->fields[i]->type); in __set_synth_event_print_fmt()
534 event->fields[i]->name, fmt, in __set_synth_event_print_fmt()
540 if (event->fields[i]->is_string && in __set_synth_event_print_fmt()
541 event->fields[i]->is_dynamic) in __set_synth_event_print_fmt()
543 ", __get_str(%s)", event->fields[i]->name); in __set_synth_event_print_fmt()
546 ", REC->%s", event->fields[i]->name); in __set_synth_event_print_fmt()
771 INIT_LIST_HEAD(&call->class->fields); in register_synth_event()
823 free_synth_field(event->fields[i]); in free_synth_event()
825 kfree(event->fields); in free_synth_event()
835 struct synth_field **fields) in alloc_synth_event() argument
853 event->fields = kcalloc(n_fields, sizeof(*event->fields), GFP_KERNEL); in alloc_synth_event()
854 if (!event->fields) { in alloc_synth_event()
861 if (fields[i]->is_dynamic) in alloc_synth_event()
878 event->fields[i] = fields[i]; in alloc_synth_event()
880 if (fields[i]->is_dynamic) { in alloc_synth_event()
881 event->dynamic_fields[j] = fields[i]; in alloc_synth_event()
883 event->dynamic_fields[j++] = fields[i]; in alloc_synth_event()
913 * the same order the fields are added.
957 * ordering is in the same order the fields are added.
991 * synth_event_add_fields - Add multiple fields to a synthetic event cmd
993 * @fields: An array of type/name field descriptions
994 * @n_fields: The number of field descriptions contained in the fields array
996 * Add a new set of fields to a synthetic event cmd object. The event
997 * fields that will be defined for the event should be passed in as an
1000 * ordering given in the fields array.
1008 struct synth_field_desc *fields, in synth_event_add_fields() argument
1015 if (fields[i].type == NULL || fields[i].name == NULL) { in synth_event_add_fields()
1020 ret = synth_event_add_field(cmd, fields[i].type, fields[i].name); in synth_event_add_fields()
1046 * synth_event_add_fields() can be used to add more fields following
1106 * @fields: An array of type/name field descriptions
1107 * @n_fields: The number of field descriptions contained in the fields array
1113 * synth_event_add_fields() can be used to add more fields following
1116 * The event fields that will be defined for the event should be
1119 * retain the ordering given in the fields array.
1128 struct synth_field_desc *fields, in synth_event_gen_cmd_array_start() argument
1151 if (fields[i].type == NULL || fields[i].name == NULL) in synth_event_gen_cmd_array_start()
1154 ret = synth_event_add_field(cmd, fields[i].type, fields[i].name); in synth_event_gen_cmd_array_start()
1196 struct synth_field *field, *fields[SYNTH_FIELDS_MAX]; in __create_synth_event() local
1245 fields[n_fields++] = field; in __create_synth_event()
1255 event = alloc_synth_event(name, n_fields, fields); in __create_synth_event()
1272 free_synth_field(fields[i]); in __create_synth_event()
1280 * @fields: An array of type/name field descriptions
1281 * @n_fields: The number of field descriptions contained in the fields array
1285 * trace/events/synthetic/ directory. The event fields that will be
1289 * fields array.
1301 int synth_event_create(const char *name, struct synth_field_desc *fields, in synth_event_create() argument
1315 fields, n_fields); in synth_event_create()
1513 * must be in the same order as the synthetic event fields.
1541 if (state.event->fields[i]->is_string && in synth_event_trace()
1542 state.event->fields[i]->is_dynamic) { in synth_event_trace()
1569 if (state.event->fields[i]->is_string) { in synth_event_trace()
1573 state.event->fields[i]->is_dynamic, in synth_event_trace()
1577 struct synth_field *field = state.event->fields[i]; in synth_event_trace()
1581 *(u8 *)&state.entry->fields[n_u64] = (u8)val; in synth_event_trace()
1585 *(u16 *)&state.entry->fields[n_u64] = (u16)val; in synth_event_trace()
1589 *(u32 *)&state.entry->fields[n_u64] = (u32)val; in synth_event_trace()
1593 state.entry->fields[n_u64] = val; in synth_event_trace()
1617 * must be in the same order as the synthetic event fields.
1661 if (state.event->fields[i]->is_string) { in synth_event_trace_array()
1665 state.event->fields[i]->is_dynamic, in synth_event_trace_array()
1669 struct synth_field *field = state.event->fields[i]; in synth_event_trace_array()
1674 *(u8 *)&state.entry->fields[n_u64] = (u8)val; in synth_event_trace_array()
1678 *(u16 *)&state.entry->fields[n_u64] = (u16)val; in synth_event_trace_array()
1682 *(u32 *)&state.entry->fields[n_u64] = (u32)val; in synth_event_trace_array()
1686 state.entry->fields[n_u64] = val; in synth_event_trace_array()
1721 * Note also that for a given event trace, all fields must be added
1785 field = event->fields[i]; in __synth_event_add_val()
1798 field = event->fields[trace_state->cur_field++]; in __synth_event_add_val()
1816 str_field = (char *)&entry->fields[field->offset]; in __synth_event_add_val()
1821 *(u8 *)&trace_state->entry->fields[field->offset] = (u8)val; in __synth_event_add_val()
1825 *(u16 *)&trace_state->entry->fields[field->offset] = (u16)val; in __synth_event_add_val()
1829 *(u32 *)&trace_state->entry->fields[field->offset] = (u32)val; in __synth_event_add_val()
1833 trace_state->entry->fields[field->offset] = val; in __synth_event_add_val()
1852 * This function assumes all the fields in an event are to be set one
1854 * each field, in the order of the fields in the event, until all
1855 * fields have been set. If you'd rather set each field individually
1987 field = event->fields[i]; in __synth_event_show()