Lines Matching refs:field

874 		free(arg->field.name);  in free_arg()
877 free_arg(arg->flags.field); in free_arg()
882 free_arg(arg->symbol.field); in free_arg()
887 free_arg(arg->hex.field); in free_arg()
891 free_arg(arg->int_array.field); in free_arg()
1352 static int field_is_string(struct tep_format_field *field) in field_is_string() argument
1354 if ((field->flags & TEP_FIELD_IS_ARRAY) && in field_is_string()
1355 (strstr(field->type, "char") || strstr(field->type, "u8") || in field_is_string()
1356 strstr(field->type, "s8"))) in field_is_string()
1362 static int field_is_dynamic(struct tep_format_field *field) in field_is_dynamic() argument
1364 if (strncmp(field->type, "__data_loc", 10) == 0) in field_is_dynamic()
1370 static int field_is_relative_dynamic(struct tep_format_field *field) in field_is_relative_dynamic() argument
1372 if (strncmp(field->type, "__rel_loc", 9) == 0) in field_is_relative_dynamic()
1378 static int field_is_long(struct tep_format_field *field) in field_is_long() argument
1381 if (strstr(field->type, "long")) in field_is_long()
1430 struct tep_format_field *field = NULL; in event_read_fields() local
1473 field = calloc(1, sizeof(*field)); in event_read_fields()
1474 if (!field) in event_read_fields()
1477 field->event = event; in event_read_fields()
1492 field->flags |= TEP_FIELD_IS_POINTER; in event_read_fields()
1494 if (field->type) { in event_read_fields()
1495 ret = append(&field->type, delim, last_token); in event_read_fields()
1500 field->type = last_token; in event_read_fields()
1513 ret = append(&field->type, " ", last_token); in event_read_fields()
1514 ret |= append(&field->type, "", "("); in event_read_fields()
1527 ret = append(&field->type, "", token); in event_read_fields()
1530 ret = append(&field->type, delim, token); in event_read_fields()
1543 if (!field->type) { in event_read_fields()
1547 field->name = field->alias = last_token; in event_read_fields()
1556 field->flags |= TEP_FIELD_IS_ARRAY; in event_read_fields()
1561 field->arraylen = strtoul(token, NULL, 0); in event_read_fields()
1563 field->arraylen = 0; in event_read_fields()
1582 field->arraylen = strtoul(token, NULL, 0); in event_read_fields()
1608 ret = append(&field->type, " ", field->name); in event_read_fields()
1613 ret = append(&field->type, "", brackets); in event_read_fields()
1615 size_dynamic = type_size(field->name); in event_read_fields()
1616 free_token(field->name); in event_read_fields()
1617 field->name = field->alias = token; in event_read_fields()
1620 ret = append(&field->type, "", brackets); in event_read_fields()
1629 if (field_is_string(field)) in event_read_fields()
1630 field->flags |= TEP_FIELD_IS_STRING; in event_read_fields()
1631 if (field_is_dynamic(field)) in event_read_fields()
1632 field->flags |= TEP_FIELD_IS_DYNAMIC; in event_read_fields()
1633 if (field_is_relative_dynamic(field)) in event_read_fields()
1634 field->flags |= TEP_FIELD_IS_DYNAMIC | TEP_FIELD_IS_RELATIVE; in event_read_fields()
1635 if (field_is_long(field)) in event_read_fields()
1636 field->flags |= TEP_FIELD_IS_LONG; in event_read_fields()
1650 field->offset = strtoul(token, NULL, 0); in event_read_fields()
1664 field->size = strtoul(token, NULL, 0); in event_read_fields()
1685 field->flags |= TEP_FIELD_IS_SIGNED; in event_read_fields()
1697 if (field->flags & TEP_FIELD_IS_ARRAY) { in event_read_fields()
1698 if (field->arraylen) in event_read_fields()
1699 field->elementsize = field->size / field->arraylen; in event_read_fields()
1700 else if (field->flags & TEP_FIELD_IS_DYNAMIC) in event_read_fields()
1701 field->elementsize = size_dynamic; in event_read_fields()
1702 else if (field->flags & TEP_FIELD_IS_STRING) in event_read_fields()
1703 field->elementsize = 1; in event_read_fields()
1704 else if (field->flags & TEP_FIELD_IS_LONG) in event_read_fields()
1705 field->elementsize = event->tep ? in event_read_fields()
1709 field->elementsize = field->size; in event_read_fields()
1711 *fields = field; in event_read_fields()
1712 fields = &field->next; in event_read_fields()
1721 if (field) { in event_read_fields()
1722 free(field->type); in event_read_fields()
1723 free(field->name); in event_read_fields()
1724 free(field); in event_read_fields()
2159 char *field; in process_entry() local
2167 field = token; in process_entry()
2170 arg->field.name = field; in process_entry()
2173 arg->field.field = tep_find_any_field(event, arg->field.name); in process_entry()
2174 arg->field.field->flags |= TEP_FIELD_IS_FLAG; in process_entry()
2177 arg->field.field = tep_find_any_field(event, arg->field.name); in process_entry()
2178 arg->field.field->flags |= TEP_FIELD_IS_SYMBOLIC; in process_entry()
2197 struct tep_print_arg *field; in alloc_and_process_delim() local
2202 field = alloc_arg(); in alloc_and_process_delim()
2203 if (!field) { in alloc_and_process_delim()
2209 type = process_arg(event, field, &token); in alloc_and_process_delim()
2214 free_arg(field); in alloc_and_process_delim()
2218 *print_arg = field; in alloc_and_process_delim()
2533 struct tep_print_flag_sym *field; in process_fields() local
2559 field = calloc(1, sizeof(*field)); in process_fields()
2560 if (!field) in process_fields()
2566 field->value = strdup(value); in process_fields()
2567 if (field->value == NULL) in process_fields()
2583 field->str = strdup(value); in process_fields()
2584 if (field->str == NULL) in process_fields()
2589 *list = field; in process_fields()
2590 list = &field->next; in process_fields()
2600 free_flag_sym(field); in process_fields()
2612 struct tep_print_arg *field; in process_flags() local
2619 field = alloc_arg(); in process_flags()
2620 if (!field) { in process_flags()
2625 type = process_field_arg(event, field, &token); in process_flags()
2629 type = process_op(event, field, &token); in process_flags()
2635 arg->flags.field = field; in process_flags()
2655 free_arg(field); in process_flags()
2665 struct tep_print_arg *field; in process_symbols() local
2672 field = alloc_arg(); in process_symbols()
2673 if (!field) { in process_symbols()
2678 type = process_field_arg(event, field, &token); in process_symbols()
2683 arg->symbol.field = field; in process_symbols()
2694 free_arg(field); in process_symbols()
2708 if (alloc_and_process_delim(event, ",", &arg->hex.field)) in process_hex_common()
2717 free_arg(arg->hex.field); in process_hex_common()
2718 arg->hex.field = NULL; in process_hex_common()
2743 if (alloc_and_process_delim(event, ",", &arg->int_array.field)) in process_int_array()
2758 free_arg(arg->int_array.field); in process_int_array()
2759 arg->int_array.field = NULL; in process_int_array()
2768 struct tep_format_field *field; in process_dynamic_array() local
2786 field = tep_find_field(event, token); in process_dynamic_array()
2787 if (!field) in process_dynamic_array()
2790 arg->dynarray.field = field; in process_dynamic_array()
2833 struct tep_format_field *field; in process_dynamic_array_len() local
2843 field = tep_find_field(event, token); in process_dynamic_array_len()
2844 if (!field) in process_dynamic_array_len()
2847 arg->dynarray.field = field; in process_dynamic_array_len()
2941 arg->string.field = NULL; in process_str()
2970 arg->bitmask.field = NULL; in process_bitmask()
3478 int tep_read_number_field(struct tep_format_field *field, const void *data, in tep_read_number_field() argument
3481 if (!field) in tep_read_number_field()
3483 switch (field->size) { in tep_read_number_field()
3488 *value = tep_read_number(field->event->tep, in tep_read_number_field()
3489 data + field->offset, field->size); in tep_read_number_field()
3500 struct tep_format_field *field; in get_common_info() local
3512 field = tep_find_common_field(event, type); in get_common_info()
3513 if (!field) in get_common_info()
3516 *offset = field->offset; in get_common_info()
3517 *size = field->size; in get_common_info()
3664 if (!arg->field.field) { in eval_num_arg()
3665 arg->field.field = tep_find_any_field(event, arg->field.name); in eval_num_arg()
3666 if (!arg->field.field) in eval_num_arg()
3671 val = tep_read_number(tep, data + arg->field.field->offset, in eval_num_arg()
3672 arg->field.field->size); in eval_num_arg()
3716 data + larg->dynarray.field->offset, in eval_num_arg()
3717 larg->dynarray.field->size); in eval_num_arg()
3718 if (larg->dynarray.field->elementsize) in eval_num_arg()
3719 field_size = larg->dynarray.field->elementsize; in eval_num_arg()
3729 if (!larg->field.field) { in eval_num_arg()
3730 larg->field.field = in eval_num_arg()
3731 tep_find_any_field(event, larg->field.name); in eval_num_arg()
3732 if (!larg->field.field) { in eval_num_arg()
3737 field_size = larg->field.field->elementsize; in eval_num_arg()
3738 offset = larg->field.field->offset + in eval_num_arg()
3739 right * larg->field.field->elementsize; in eval_num_arg()
3846 data + arg->dynarray.field->offset, in eval_num_arg()
3847 arg->dynarray.field->size); in eval_num_arg()
3858 data + arg->dynarray.field->offset, in eval_num_arg()
3859 arg->dynarray.field->size); in eval_num_arg()
3879 __func__, arg->field.name); in eval_num_arg()
3992 struct tep_format_field *field; in print_str_arg() local
4009 field = arg->field.field; in print_str_arg()
4010 if (!field) { in print_str_arg()
4011 field = tep_find_any_field(event, arg->field.name); in print_str_arg()
4012 if (!field) { in print_str_arg()
4013 str = arg->field.name; in print_str_arg()
4016 arg->field.field = field; in print_str_arg()
4019 len = field->size ? : size - field->offset; in print_str_arg()
4026 if (!(field->flags & TEP_FIELD_IS_ARRAY) && in print_str_arg()
4027 field->size == tep->long_size) { in print_str_arg()
4043 *(unsigned long long *)(data + field->offset) : in print_str_arg()
4044 (unsigned long long)*(unsigned int *)(data + field->offset); in print_str_arg()
4060 memcpy(str, data + field->offset, len); in print_str_arg()
4066 val = eval_num_arg(data, size, event, arg->flags.field); in print_str_arg()
4089 val = eval_num_arg(data, size, event, arg->symbol.field); in print_str_arg()
4102 if (arg->hex.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4105 data + arg->hex.field->dynarray.field->offset, in print_str_arg()
4106 arg->hex.field->dynarray.field->size); in print_str_arg()
4109 field = arg->hex.field->field.field; in print_str_arg()
4110 if (!field) { in print_str_arg()
4111 str = arg->hex.field->field.name; in print_str_arg()
4112 field = tep_find_any_field(event, str); in print_str_arg()
4113 if (!field) in print_str_arg()
4115 arg->hex.field->field.field = field; in print_str_arg()
4117 hex = data + field->offset; in print_str_arg()
4131 if (arg->int_array.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4133 struct tep_format_field *field = in print_str_arg() local
4134 arg->int_array.field->dynarray.field; in print_str_arg()
4136 data + field->offset, in print_str_arg()
4137 field->size); in print_str_arg()
4140 field = arg->int_array.field->field.field; in print_str_arg()
4141 if (!field) { in print_str_arg()
4142 str = arg->int_array.field->field.name; in print_str_arg()
4143 field = tep_find_any_field(event, str); in print_str_arg()
4144 if (!field) in print_str_arg()
4146 arg->int_array.field->field.field = field; in print_str_arg()
4148 num = data + field->offset; in print_str_arg()
4180 if (!arg->string.field) in print_str_arg()
4181 arg->string.field = tep_find_any_field(event, arg->string.string); in print_str_arg()
4182 if (!arg->string.field) in print_str_arg()
4186 *(unsigned int *)(data + arg->string.field->offset)); in print_str_arg()
4188 if (arg->string.field->flags & TEP_FIELD_IS_RELATIVE) in print_str_arg()
4189 str_offset += arg->string.field->offset + arg->string.field->size; in print_str_arg()
4200 if (!arg->bitmask.field) in print_str_arg()
4201 arg->bitmask.field = tep_find_any_field(event, arg->bitmask.bitmask); in print_str_arg()
4202 if (!arg->bitmask.field) in print_str_arg()
4205 *(unsigned int *)(data + arg->bitmask.field->offset)); in print_str_arg()
4208 if (arg->bitmask.field->flags & TEP_FIELD_IS_RELATIVE) in print_str_arg()
4209 bitmask_offset += arg->bitmask.field->offset + arg->bitmask.field->size; in print_str_arg()
4240 __func__, arg->field.name); in print_str_arg()
4343 struct tep_format_field *field, *ip_field; in make_bprint_args() local
4350 field = tep->bprint_buf_field; in make_bprint_args()
4353 if (!field) { in make_bprint_args()
4354 field = tep_find_field(event, "buf"); in make_bprint_args()
4355 if (!field) { in make_bprint_args()
4364 tep->bprint_buf_field = field; in make_bprint_args()
4389 for (ptr = fmt + 5, bptr = data + field->offset; in make_bprint_args()
4534 struct tep_format_field *field; in get_bprint_format() local
4538 field = tep->bprint_fmt_field; in get_bprint_format()
4540 if (!field) { in get_bprint_format()
4541 field = tep_find_field(event, "fmt"); in get_bprint_format()
4542 if (!field) { in get_bprint_format()
4546 tep->bprint_fmt_field = field; in get_bprint_format()
4549 addr = tep_read_number(tep, data + field->offset, field->size); in get_bprint_format()
4595 if (!arg->field.field) { in print_mac_arg()
4596 arg->field.field = in print_mac_arg()
4597 tep_find_any_field(event, arg->field.name); in print_mac_arg()
4598 if (!arg->field.field) { in print_mac_arg()
4600 __func__, arg->field.name); in print_mac_arg()
4604 if (arg->field.field->size != 6) { in print_mac_arg()
4609 buf = data + arg->field.field->offset; in print_mac_arg()
4791 if (!arg->field.field) { in print_ipv4_arg()
4792 arg->field.field = in print_ipv4_arg()
4793 tep_find_any_field(event, arg->field.name); in print_ipv4_arg()
4794 if (!arg->field.field) { in print_ipv4_arg()
4796 __func__, arg->field.name); in print_ipv4_arg()
4801 buf = data + arg->field.field->offset; in print_ipv4_arg()
4803 if (arg->field.field->size != 4) { in print_ipv4_arg()
4838 if (!arg->field.field) { in print_ipv6_arg()
4839 arg->field.field = in print_ipv6_arg()
4840 tep_find_any_field(event, arg->field.name); in print_ipv6_arg()
4841 if (!arg->field.field) { in print_ipv6_arg()
4843 __func__, arg->field.name); in print_ipv6_arg()
4848 buf = data + arg->field.field->offset; in print_ipv6_arg()
4850 if (arg->field.field->size != 16) { in print_ipv6_arg()
4901 if (!arg->field.field) { in print_ipsa_arg()
4902 arg->field.field = in print_ipsa_arg()
4903 tep_find_any_field(event, arg->field.name); in print_ipsa_arg()
4904 if (!arg->field.field) { in print_ipsa_arg()
4906 __func__, arg->field.name); in print_ipsa_arg()
4911 sa = (struct sockaddr_storage *) (data + arg->field.field->offset); in print_ipsa_arg()
4916 if (arg->field.field->size < sizeof(struct sockaddr_in)) { in print_ipsa_arg()
4929 if (arg->field.field->size < sizeof(struct sockaddr_in6)) { in print_ipsa_arg()
5016 if (!arg->field.field) { in print_uuid_arg()
5017 arg->field.field = in print_uuid_arg()
5018 tep_find_any_field(event, arg->field.name); in print_uuid_arg()
5019 if (!arg->field.field) { in print_uuid_arg()
5021 __func__, arg->field.name); in print_uuid_arg()
5026 if (arg->field.field->size != 16) { in print_uuid_arg()
5031 buf = data + arg->field.field->offset; in print_uuid_arg()
5086 data + arg->dynarray.field->offset, in print_raw_buff_arg()
5087 arg->dynarray.field->size); in print_raw_buff_arg()
5115 struct tep_format_field *field) in tep_print_field() argument
5119 struct tep_handle *tep = field->event->tep; in tep_print_field()
5121 if (field->flags & TEP_FIELD_IS_ARRAY) { in tep_print_field()
5122 offset = field->offset; in tep_print_field()
5123 len = field->size; in tep_print_field()
5124 if (field->flags & TEP_FIELD_IS_DYNAMIC) { in tep_print_field()
5129 if (field->flags & TEP_FIELD_IS_RELATIVE) in tep_print_field()
5130 offset += field->offset + field->size; in tep_print_field()
5132 if (field->flags & TEP_FIELD_IS_STRING && in tep_print_field()
5144 field->flags &= ~TEP_FIELD_IS_STRING; in tep_print_field()
5147 val = tep_read_number(tep, data + field->offset, in tep_print_field()
5148 field->size); in tep_print_field()
5149 if (field->flags & TEP_FIELD_IS_POINTER) { in tep_print_field()
5151 } else if (field->flags & TEP_FIELD_IS_SIGNED) { in tep_print_field()
5152 switch (field->size) { in tep_print_field()
5158 if (field->flags & TEP_FIELD_IS_LONG) in tep_print_field()
5173 if (field->flags & TEP_FIELD_IS_LONG) in tep_print_field()
5184 struct tep_format_field *field; in tep_print_fields() local
5186 field = event->format.fields; in tep_print_fields()
5187 while (field) { in tep_print_fields()
5188 trace_seq_printf(s, " %s=", field->name); in tep_print_fields()
5189 tep_print_field(s, data, field); in tep_print_fields()
5190 field = field->next; in tep_print_fields()
6410 struct tep_format_field *field; in get_event_fields() local
6417 for (field = list; field; field = field->next) { in get_event_fields()
6418 fields[i++] = field; in get_event_fields()
6464 static void print_fields(struct trace_seq *s, struct tep_print_flag_sym *field) in print_fields() argument
6466 trace_seq_printf(s, "{ %s, %s }", field->value, field->str); in print_fields()
6467 if (field->next) { in print_fields()
6469 print_fields(s, field->next); in print_fields()
6487 printf("REC->%s", args->field.name); in print_args()
6491 print_args(args->flags.field); in print_args()
6501 print_args(args->symbol.field); in print_args()
6511 print_args(args->hex.field); in print_args()
6518 print_args(args->hex.field); in print_args()
6525 print_args(args->int_array.field); in print_args()
6564 static void parse_header_field(const char *field, in parse_header_field() argument
6589 if (read_expected(TEP_EVENT_ITEM, field) < 0) in parse_header_field()
6594 if (strcmp(token, field) != 0) in parse_header_field()
6831 struct tep_format_field *field; in parse_format() local
6836 for (field = event->format.fields; field; field = field->next) { in parse_format()
6843 arg->field.name = strdup(field->name); in parse_format()
6844 if (!arg->field.name) { in parse_format()
6849 arg->field.field = field; in parse_format()
6946 int get_field_val(struct trace_seq *s, struct tep_format_field *field, in get_field_val() argument
6950 if (!field) { in get_field_val()
6956 if (tep_read_number_field(field, record->data, val)) { in get_field_val()
6983 struct tep_format_field *field; in tep_get_field_raw() local
6991 field = tep_find_field(event, name); in tep_get_field_raw()
6993 if (!field) { in tep_get_field_raw()
7003 offset = field->offset; in tep_get_field_raw()
7004 if (field->flags & TEP_FIELD_IS_DYNAMIC) { in tep_get_field_raw()
7006 data + offset, field->size); in tep_get_field_raw()
7009 if (field->flags & TEP_FIELD_IS_RELATIVE) in tep_get_field_raw()
7010 offset += field->offset + field->size; in tep_get_field_raw()
7012 *len = field->size; in tep_get_field_raw()
7032 struct tep_format_field *field; in tep_get_field_val() local
7037 field = tep_find_field(event, name); in tep_get_field_val()
7039 return get_field_val(s, field, name, record, val, err); in tep_get_field_val()
7057 struct tep_format_field *field; in tep_get_common_field_val() local
7062 field = tep_find_common_field(event, name); in tep_get_common_field_val()
7064 return get_field_val(s, field, name, record, val, err); in tep_get_common_field_val()
7082 struct tep_format_field *field; in tep_get_any_field_val() local
7087 field = tep_find_any_field(event, name); in tep_get_any_field_val()
7089 return get_field_val(s, field, name, record, val, err); in tep_get_any_field_val()
7108 struct tep_format_field *field = tep_find_field(event, name); in tep_print_num_field() local
7111 if (!field) in tep_print_num_field()
7114 if (tep_read_number_field(field, record->data, &val)) in tep_print_num_field()
7141 struct tep_format_field *field = tep_find_field(event, name); in tep_print_func_field() local
7147 if (!field) in tep_print_func_field()
7150 if (tep_read_number_field(field, record->data, &val)) in tep_print_func_field()
7493 __hidden void free_tep_format_field(struct tep_format_field *field) in free_tep_format_field() argument
7495 free(field->type); in free_tep_format_field()
7496 if (field->alias != field->name) in free_tep_format_field()
7497 free(field->alias); in free_tep_format_field()
7498 free(field->name); in free_tep_format_field()
7499 free(field); in free_tep_format_field()
7502 static void free_format_fields(struct tep_format_field *field) in free_format_fields() argument
7506 while (field) { in free_format_fields()
7507 next = field->next; in free_format_fields()
7508 free_tep_format_field(field); in free_format_fields()
7509 field = next; in free_format_fields()