Lines Matching refs:field
754 free(arg->field.name); in free_arg()
757 free_arg(arg->flags.field); in free_arg()
762 free_arg(arg->symbol.field); in free_arg()
766 free_arg(arg->hex.field); in free_arg()
770 free_arg(arg->int_array.field); in free_arg()
1245 static int field_is_string(struct format_field *field) in field_is_string() argument
1247 if ((field->flags & FIELD_IS_ARRAY) && in field_is_string()
1248 (strstr(field->type, "char") || strstr(field->type, "u8") || in field_is_string()
1249 strstr(field->type, "s8"))) in field_is_string()
1255 static int field_is_dynamic(struct format_field *field) in field_is_dynamic() argument
1257 if (strncmp(field->type, "__data_loc", 10) == 0) in field_is_dynamic()
1263 static int field_is_long(struct format_field *field) in field_is_long() argument
1266 if (strstr(field->type, "long")) in field_is_long()
1302 struct format_field *field = NULL; in event_read_fields() local
1343 field = calloc(1, sizeof(*field)); in event_read_fields()
1344 if (!field) in event_read_fields()
1347 field->event = event; in event_read_fields()
1362 field->flags |= FIELD_IS_POINTER; in event_read_fields()
1364 if (field->type) { in event_read_fields()
1366 new_type = realloc(field->type, in event_read_fields()
1367 strlen(field->type) + in event_read_fields()
1373 field->type = new_type; in event_read_fields()
1374 strcat(field->type, " "); in event_read_fields()
1375 strcat(field->type, last_token); in event_read_fields()
1378 field->type = last_token; in event_read_fields()
1386 if (!field->type) { in event_read_fields()
1390 field->name = last_token; in event_read_fields()
1401 field->flags |= FIELD_IS_ARRAY; in event_read_fields()
1406 field->arraylen = strtoul(token, NULL, 0); in event_read_fields()
1408 field->arraylen = 0; in event_read_fields()
1430 field->arraylen = strtoul(token, NULL, 0); in event_read_fields()
1458 new_type = realloc(field->type, in event_read_fields()
1459 strlen(field->type) + in event_read_fields()
1460 strlen(field->name) + in event_read_fields()
1466 field->type = new_type; in event_read_fields()
1467 strcat(field->type, " "); in event_read_fields()
1468 strcat(field->type, field->name); in event_read_fields()
1469 size_dynamic = type_size(field->name); in event_read_fields()
1470 free_token(field->name); in event_read_fields()
1471 strcat(field->type, brackets); in event_read_fields()
1472 field->name = token; in event_read_fields()
1476 new_type = realloc(field->type, in event_read_fields()
1477 strlen(field->type) + in event_read_fields()
1483 field->type = new_type; in event_read_fields()
1484 strcat(field->type, brackets); in event_read_fields()
1489 if (field_is_string(field)) in event_read_fields()
1490 field->flags |= FIELD_IS_STRING; in event_read_fields()
1491 if (field_is_dynamic(field)) in event_read_fields()
1492 field->flags |= FIELD_IS_DYNAMIC; in event_read_fields()
1493 if (field_is_long(field)) in event_read_fields()
1494 field->flags |= FIELD_IS_LONG; in event_read_fields()
1508 field->offset = strtoul(token, NULL, 0); in event_read_fields()
1522 field->size = strtoul(token, NULL, 0); in event_read_fields()
1543 field->flags |= FIELD_IS_SIGNED; in event_read_fields()
1555 if (field->flags & FIELD_IS_ARRAY) { in event_read_fields()
1556 if (field->arraylen) in event_read_fields()
1557 field->elementsize = field->size / field->arraylen; in event_read_fields()
1558 else if (field->flags & FIELD_IS_DYNAMIC) in event_read_fields()
1559 field->elementsize = size_dynamic; in event_read_fields()
1560 else if (field->flags & FIELD_IS_STRING) in event_read_fields()
1561 field->elementsize = 1; in event_read_fields()
1562 else if (field->flags & FIELD_IS_LONG) in event_read_fields()
1563 field->elementsize = event->pevent ? in event_read_fields()
1567 field->elementsize = field->size; in event_read_fields()
1569 *fields = field; in event_read_fields()
1570 fields = &field->next; in event_read_fields()
1579 if (field) { in event_read_fields()
1580 free(field->type); in event_read_fields()
1581 free(field->name); in event_read_fields()
1582 free(field); in event_read_fields()
2010 char *field; in process_entry() local
2018 field = token; in process_entry()
2021 arg->field.name = field; in process_entry()
2024 arg->field.field = pevent_find_any_field(event, arg->field.name); in process_entry()
2025 arg->field.field->flags |= FIELD_IS_FLAG; in process_entry()
2028 arg->field.field = pevent_find_any_field(event, arg->field.name); in process_entry()
2029 arg->field.field->flags |= FIELD_IS_SYMBOLIC; in process_entry()
2048 struct print_arg *field; in alloc_and_process_delim() local
2053 field = alloc_arg(); in alloc_and_process_delim()
2054 if (!field) { in alloc_and_process_delim()
2060 type = process_arg(event, field, &token); in alloc_and_process_delim()
2065 free_arg(field); in alloc_and_process_delim()
2069 *print_arg = field; in alloc_and_process_delim()
2378 struct print_flag_sym *field; in process_fields() local
2404 field = calloc(1, sizeof(*field)); in process_fields()
2405 if (!field) in process_fields()
2411 field->value = strdup(value); in process_fields()
2412 if (field->value == NULL) in process_fields()
2428 field->str = strdup(value); in process_fields()
2429 if (field->str == NULL) in process_fields()
2434 *list = field; in process_fields()
2435 list = &field->next; in process_fields()
2445 free_flag_sym(field); in process_fields()
2457 struct print_arg *field; in process_flags() local
2464 field = alloc_arg(); in process_flags()
2465 if (!field) { in process_flags()
2470 type = process_field_arg(event, field, &token); in process_flags()
2474 type = process_op(event, field, &token); in process_flags()
2480 arg->flags.field = field; in process_flags()
2500 free_arg(field); in process_flags()
2510 struct print_arg *field; in process_symbols() local
2517 field = alloc_arg(); in process_symbols()
2518 if (!field) { in process_symbols()
2523 type = process_field_arg(event, field, &token); in process_symbols()
2528 arg->symbol.field = field; in process_symbols()
2539 free_arg(field); in process_symbols()
2552 if (alloc_and_process_delim(event, ",", &arg->hex.field)) in process_hex()
2561 free_arg(arg->hex.field); in process_hex()
2573 if (alloc_and_process_delim(event, ",", &arg->int_array.field)) in process_int_array()
2587 free_arg(arg->int_array.field); in process_int_array()
2596 struct format_field *field; in process_dynamic_array() local
2614 field = pevent_find_field(event, token); in process_dynamic_array()
2615 if (!field) in process_dynamic_array()
2618 arg->dynarray.field = field; in process_dynamic_array()
3222 int pevent_read_number_field(struct format_field *field, const void *data, in pevent_read_number_field() argument
3225 if (!field) in pevent_read_number_field()
3227 switch (field->size) { in pevent_read_number_field()
3232 *value = pevent_read_number(field->event->pevent, in pevent_read_number_field()
3233 data + field->offset, field->size); in pevent_read_number_field()
3244 struct format_field *field; in get_common_info() local
3256 field = pevent_find_common_field(event, type); in get_common_info()
3257 if (!field) in get_common_info()
3260 *offset = field->offset; in get_common_info()
3261 *size = field->size; in get_common_info()
3408 if (!arg->field.field) { in eval_num_arg()
3409 arg->field.field = pevent_find_any_field(event, arg->field.name); in eval_num_arg()
3410 if (!arg->field.field) in eval_num_arg()
3415 val = pevent_read_number(pevent, data + arg->field.field->offset, in eval_num_arg()
3416 arg->field.field->size); in eval_num_arg()
3459 data + larg->dynarray.field->offset, in eval_num_arg()
3460 larg->dynarray.field->size); in eval_num_arg()
3461 if (larg->dynarray.field->elementsize) in eval_num_arg()
3462 field_size = larg->dynarray.field->elementsize; in eval_num_arg()
3472 if (!larg->field.field) { in eval_num_arg()
3473 larg->field.field = in eval_num_arg()
3474 pevent_find_any_field(event, larg->field.name); in eval_num_arg()
3475 if (!larg->field.field) { in eval_num_arg()
3480 field_size = larg->field.field->elementsize; in eval_num_arg()
3481 offset = larg->field.field->offset + in eval_num_arg()
3482 right * larg->field.field->elementsize; in eval_num_arg()
3587 data + arg->dynarray.field->offset, in eval_num_arg()
3588 arg->dynarray.field->size); in eval_num_arg()
3608 __func__, arg->field.name); in eval_num_arg()
3721 struct format_field *field; in print_str_arg() local
3738 field = arg->field.field; in print_str_arg()
3739 if (!field) { in print_str_arg()
3740 field = pevent_find_any_field(event, arg->field.name); in print_str_arg()
3741 if (!field) { in print_str_arg()
3742 str = arg->field.name; in print_str_arg()
3745 arg->field.field = field; in print_str_arg()
3748 len = field->size ? : size - field->offset; in print_str_arg()
3755 if (!(field->flags & FIELD_IS_ARRAY) && in print_str_arg()
3756 field->size == pevent->long_size) { in print_str_arg()
3772 *(unsigned long long *)(data + field->offset) : in print_str_arg()
3773 (unsigned long long)*(unsigned int *)(data + field->offset); in print_str_arg()
3789 memcpy(str, data + field->offset, len); in print_str_arg()
3795 val = eval_num_arg(data, size, event, arg->flags.field); in print_str_arg()
3813 val = eval_num_arg(data, size, event, arg->symbol.field); in print_str_arg()
3823 if (arg->hex.field->type == PRINT_DYNAMIC_ARRAY) { in print_str_arg()
3826 data + arg->hex.field->dynarray.field->offset, in print_str_arg()
3827 arg->hex.field->dynarray.field->size); in print_str_arg()
3830 field = arg->hex.field->field.field; in print_str_arg()
3831 if (!field) { in print_str_arg()
3832 str = arg->hex.field->field.name; in print_str_arg()
3833 field = pevent_find_any_field(event, str); in print_str_arg()
3834 if (!field) in print_str_arg()
3836 arg->hex.field->field.field = field; in print_str_arg()
3838 hex = data + field->offset; in print_str_arg()
3852 if (arg->int_array.field->type == PRINT_DYNAMIC_ARRAY) { in print_str_arg()
3854 struct format_field *field = in print_str_arg() local
3855 arg->int_array.field->dynarray.field; in print_str_arg()
3857 data + field->offset, in print_str_arg()
3858 field->size); in print_str_arg()
3861 field = arg->int_array.field->field.field; in print_str_arg()
3862 if (!field) { in print_str_arg()
3863 str = arg->int_array.field->field.name; in print_str_arg()
3864 field = pevent_find_any_field(event, str); in print_str_arg()
3865 if (!field) in print_str_arg()
3867 arg->int_array.field->field.field = field; in print_str_arg()
3869 num = data + field->offset; in print_str_arg()
3958 __func__, arg->field.name); in print_str_arg()
4061 struct format_field *field, *ip_field; in make_bprint_args() local
4068 field = pevent->bprint_buf_field; in make_bprint_args()
4071 if (!field) { in make_bprint_args()
4072 field = pevent_find_field(event, "buf"); in make_bprint_args()
4073 if (!field) { in make_bprint_args()
4082 pevent->bprint_buf_field = field; in make_bprint_args()
4107 for (ptr = fmt + 5, bptr = data + field->offset; in make_bprint_args()
4218 struct format_field *field; in get_bprint_format() local
4222 field = pevent->bprint_fmt_field; in get_bprint_format()
4224 if (!field) { in get_bprint_format()
4225 field = pevent_find_field(event, "fmt"); in get_bprint_format()
4226 if (!field) { in get_bprint_format()
4230 pevent->bprint_fmt_field = field; in get_bprint_format()
4233 addr = pevent_read_number(pevent, data + field->offset, field->size); in get_bprint_format()
4267 if (!arg->field.field) { in print_mac_arg()
4268 arg->field.field = in print_mac_arg()
4269 pevent_find_any_field(event, arg->field.name); in print_mac_arg()
4270 if (!arg->field.field) { in print_mac_arg()
4272 __func__, arg->field.name); in print_mac_arg()
4276 if (arg->field.field->size != 6) { in print_mac_arg()
4280 buf = data + arg->field.field->offset; in print_mac_arg()
4417 if (!arg->field.field) { in print_ipv4_arg()
4418 arg->field.field = in print_ipv4_arg()
4419 pevent_find_any_field(event, arg->field.name); in print_ipv4_arg()
4420 if (!arg->field.field) { in print_ipv4_arg()
4422 __func__, arg->field.name); in print_ipv4_arg()
4427 buf = data + arg->field.field->offset; in print_ipv4_arg()
4429 if (arg->field.field->size != 4) { in print_ipv4_arg()
4463 if (!arg->field.field) { in print_ipv6_arg()
4464 arg->field.field = in print_ipv6_arg()
4465 pevent_find_any_field(event, arg->field.name); in print_ipv6_arg()
4466 if (!arg->field.field) { in print_ipv6_arg()
4468 __func__, arg->field.name); in print_ipv6_arg()
4473 buf = data + arg->field.field->offset; in print_ipv6_arg()
4475 if (arg->field.field->size != 16) { in print_ipv6_arg()
4521 if (!arg->field.field) { in print_ipsa_arg()
4522 arg->field.field = in print_ipsa_arg()
4523 pevent_find_any_field(event, arg->field.name); in print_ipsa_arg()
4524 if (!arg->field.field) { in print_ipsa_arg()
4526 __func__, arg->field.name); in print_ipsa_arg()
4531 sa = (struct sockaddr_storage *) (data + arg->field.field->offset); in print_ipsa_arg()
4536 if (arg->field.field->size < sizeof(struct sockaddr_in)) { in print_ipsa_arg()
4549 if (arg->field.field->size < sizeof(struct sockaddr_in6)) { in print_ipsa_arg()
4616 struct format_field *field; in print_event_fields() local
4620 field = event->format.fields; in print_event_fields()
4621 while (field) { in print_event_fields()
4622 trace_seq_printf(s, " %s=", field->name); in print_event_fields()
4623 if (field->flags & FIELD_IS_ARRAY) { in print_event_fields()
4624 offset = field->offset; in print_event_fields()
4625 len = field->size; in print_event_fields()
4626 if (field->flags & FIELD_IS_DYNAMIC) { in print_event_fields()
4632 if (field->flags & FIELD_IS_STRING && in print_event_fields()
4644 field->flags &= ~FIELD_IS_STRING; in print_event_fields()
4647 val = pevent_read_number(event->pevent, data + field->offset, in print_event_fields()
4648 field->size); in print_event_fields()
4649 if (field->flags & FIELD_IS_POINTER) { in print_event_fields()
4651 } else if (field->flags & FIELD_IS_SIGNED) { in print_event_fields()
4652 switch (field->size) { in print_event_fields()
4658 if (field->flags & FIELD_IS_LONG) in print_event_fields()
4673 if (field->flags & FIELD_IS_LONG) in print_event_fields()
4679 field = field->next; in print_event_fields()
5373 struct format_field *field; in get_event_fields() local
5380 for (field = list; field; field = field->next) { in get_event_fields()
5381 fields[i++] = field; in get_event_fields()
5427 static void print_fields(struct trace_seq *s, struct print_flag_sym *field) in print_fields() argument
5429 trace_seq_printf(s, "{ %s, %s }", field->value, field->str); in print_fields()
5430 if (field->next) { in print_fields()
5432 print_fields(s, field->next); in print_fields()
5450 printf("REC->%s", args->field.name); in print_args()
5454 print_args(args->flags.field); in print_args()
5464 print_args(args->symbol.field); in print_args()
5474 print_args(args->hex.field); in print_args()
5481 print_args(args->int_array.field); in print_args()
5520 static void parse_header_field(const char *field, in parse_header_field() argument
5545 if (read_expected(EVENT_ITEM, field) < 0) in parse_header_field()
5550 if (strcmp(token, field) != 0) in parse_header_field()
5787 struct format_field *field; in __pevent_parse_format() local
5792 for (field = event->format.fields; field; field = field->next) { in __pevent_parse_format()
5799 arg->field.name = strdup(field->name); in __pevent_parse_format()
5800 if (!arg->field.name) { in __pevent_parse_format()
5805 arg->field.field = field; in __pevent_parse_format()
5932 int get_field_val(struct trace_seq *s, struct format_field *field, in get_field_val() argument
5936 if (!field) { in get_field_val()
5942 if (pevent_read_number_field(field, record->data, val)) { in get_field_val()
5969 struct format_field *field; in pevent_get_field_raw() local
5977 field = pevent_find_field(event, name); in pevent_get_field_raw()
5979 if (!field) { in pevent_get_field_raw()
5989 offset = field->offset; in pevent_get_field_raw()
5990 if (field->flags & FIELD_IS_DYNAMIC) { in pevent_get_field_raw()
5992 data + offset, field->size); in pevent_get_field_raw()
5996 *len = field->size; in pevent_get_field_raw()
6016 struct format_field *field; in pevent_get_field_val() local
6021 field = pevent_find_field(event, name); in pevent_get_field_val()
6023 return get_field_val(s, field, name, record, val, err); in pevent_get_field_val()
6041 struct format_field *field; in pevent_get_common_field_val() local
6046 field = pevent_find_common_field(event, name); in pevent_get_common_field_val()
6048 return get_field_val(s, field, name, record, val, err); in pevent_get_common_field_val()
6066 struct format_field *field; in pevent_get_any_field_val() local
6071 field = pevent_find_any_field(event, name); in pevent_get_any_field_val()
6073 return get_field_val(s, field, name, record, val, err); in pevent_get_any_field_val()
6091 struct format_field *field = pevent_find_field(event, name); in pevent_print_num_field() local
6094 if (!field) in pevent_print_num_field()
6097 if (pevent_read_number_field(field, record->data, &val)) in pevent_print_num_field()
6123 struct format_field *field = pevent_find_field(event, name); in pevent_print_func_field() local
6129 if (!field) in pevent_print_func_field()
6132 if (pevent_read_number_field(field, record->data, &val)) in pevent_print_func_field()
6460 void pevent_free_format_field(struct format_field *field) in pevent_free_format_field() argument
6462 free(field->type); in pevent_free_format_field()
6463 free(field->name); in pevent_free_format_field()
6464 free(field); in pevent_free_format_field()
6467 static void free_format_fields(struct format_field *field) in free_format_fields() argument
6471 while (field) { in free_format_fields()
6472 next = field->next; in free_format_fields()
6473 pevent_free_format_field(field); in free_format_fields()
6474 field = next; in free_format_fields()