Lines Matching refs:field
819 free(arg->field.name); in free_arg()
822 free_arg(arg->flags.field); in free_arg()
827 free_arg(arg->symbol.field); in free_arg()
831 free_arg(arg->hex.field); in free_arg()
835 free_arg(arg->int_array.field); in free_arg()
1311 static int field_is_string(struct format_field *field) in field_is_string() argument
1313 if ((field->flags & FIELD_IS_ARRAY) && in field_is_string()
1314 (strstr(field->type, "char") || strstr(field->type, "u8") || in field_is_string()
1315 strstr(field->type, "s8"))) in field_is_string()
1321 static int field_is_dynamic(struct format_field *field) in field_is_dynamic() argument
1323 if (strncmp(field->type, "__data_loc", 10) == 0) in field_is_dynamic()
1329 static int field_is_long(struct format_field *field) in field_is_long() argument
1332 if (strstr(field->type, "long")) in field_is_long()
1368 struct format_field *field = NULL; in event_read_fields() local
1409 field = calloc(1, sizeof(*field)); in event_read_fields()
1410 if (!field) in event_read_fields()
1413 field->event = event; in event_read_fields()
1428 field->flags |= FIELD_IS_POINTER; in event_read_fields()
1430 if (field->type) { in event_read_fields()
1432 new_type = realloc(field->type, in event_read_fields()
1433 strlen(field->type) + in event_read_fields()
1439 field->type = new_type; in event_read_fields()
1440 strcat(field->type, " "); in event_read_fields()
1441 strcat(field->type, last_token); in event_read_fields()
1444 field->type = last_token; in event_read_fields()
1452 if (!field->type) { in event_read_fields()
1456 field->name = field->alias = last_token; in event_read_fields()
1467 field->flags |= FIELD_IS_ARRAY; in event_read_fields()
1472 field->arraylen = strtoul(token, NULL, 0); in event_read_fields()
1474 field->arraylen = 0; in event_read_fields()
1496 field->arraylen = strtoul(token, NULL, 0); in event_read_fields()
1524 new_type = realloc(field->type, in event_read_fields()
1525 strlen(field->type) + in event_read_fields()
1526 strlen(field->name) + in event_read_fields()
1532 field->type = new_type; in event_read_fields()
1533 strcat(field->type, " "); in event_read_fields()
1534 strcat(field->type, field->name); in event_read_fields()
1535 size_dynamic = type_size(field->name); in event_read_fields()
1536 free_token(field->name); in event_read_fields()
1537 strcat(field->type, brackets); in event_read_fields()
1538 field->name = field->alias = token; in event_read_fields()
1542 new_type = realloc(field->type, in event_read_fields()
1543 strlen(field->type) + in event_read_fields()
1549 field->type = new_type; in event_read_fields()
1550 strcat(field->type, brackets); in event_read_fields()
1555 if (field_is_string(field)) in event_read_fields()
1556 field->flags |= FIELD_IS_STRING; in event_read_fields()
1557 if (field_is_dynamic(field)) in event_read_fields()
1558 field->flags |= FIELD_IS_DYNAMIC; in event_read_fields()
1559 if (field_is_long(field)) in event_read_fields()
1560 field->flags |= FIELD_IS_LONG; in event_read_fields()
1574 field->offset = strtoul(token, NULL, 0); in event_read_fields()
1588 field->size = strtoul(token, NULL, 0); in event_read_fields()
1609 field->flags |= FIELD_IS_SIGNED; in event_read_fields()
1621 if (field->flags & FIELD_IS_ARRAY) { in event_read_fields()
1622 if (field->arraylen) in event_read_fields()
1623 field->elementsize = field->size / field->arraylen; in event_read_fields()
1624 else if (field->flags & FIELD_IS_DYNAMIC) in event_read_fields()
1625 field->elementsize = size_dynamic; in event_read_fields()
1626 else if (field->flags & FIELD_IS_STRING) in event_read_fields()
1627 field->elementsize = 1; in event_read_fields()
1628 else if (field->flags & FIELD_IS_LONG) in event_read_fields()
1629 field->elementsize = event->pevent ? in event_read_fields()
1633 field->elementsize = field->size; in event_read_fields()
1635 *fields = field; in event_read_fields()
1636 fields = &field->next; in event_read_fields()
1645 if (field) { in event_read_fields()
1646 free(field->type); in event_read_fields()
1647 free(field->name); in event_read_fields()
1648 free(field); in event_read_fields()
2085 char *field; in process_entry() local
2093 field = token; in process_entry()
2096 arg->field.name = field; in process_entry()
2099 arg->field.field = pevent_find_any_field(event, arg->field.name); in process_entry()
2100 arg->field.field->flags |= FIELD_IS_FLAG; in process_entry()
2103 arg->field.field = pevent_find_any_field(event, arg->field.name); in process_entry()
2104 arg->field.field->flags |= FIELD_IS_SYMBOLIC; in process_entry()
2123 struct print_arg *field; in alloc_and_process_delim() local
2128 field = alloc_arg(); in alloc_and_process_delim()
2129 if (!field) { in alloc_and_process_delim()
2135 type = process_arg(event, field, &token); in alloc_and_process_delim()
2140 free_arg(field); in alloc_and_process_delim()
2144 *print_arg = field; in alloc_and_process_delim()
2453 struct print_flag_sym *field; in process_fields() local
2479 field = calloc(1, sizeof(*field)); in process_fields()
2480 if (!field) in process_fields()
2486 field->value = strdup(value); in process_fields()
2487 if (field->value == NULL) in process_fields()
2503 field->str = strdup(value); in process_fields()
2504 if (field->str == NULL) in process_fields()
2509 *list = field; in process_fields()
2510 list = &field->next; in process_fields()
2520 free_flag_sym(field); in process_fields()
2532 struct print_arg *field; in process_flags() local
2539 field = alloc_arg(); in process_flags()
2540 if (!field) { in process_flags()
2545 type = process_field_arg(event, field, &token); in process_flags()
2549 type = process_op(event, field, &token); in process_flags()
2555 arg->flags.field = field; in process_flags()
2575 free_arg(field); in process_flags()
2585 struct print_arg *field; in process_symbols() local
2592 field = alloc_arg(); in process_symbols()
2593 if (!field) { in process_symbols()
2598 type = process_field_arg(event, field, &token); in process_symbols()
2603 arg->symbol.field = field; in process_symbols()
2614 free_arg(field); in process_symbols()
2627 if (alloc_and_process_delim(event, ",", &arg->hex.field)) in process_hex()
2636 free_arg(arg->hex.field); in process_hex()
2648 if (alloc_and_process_delim(event, ",", &arg->int_array.field)) in process_int_array()
2662 free_arg(arg->int_array.field); in process_int_array()
2671 struct format_field *field; in process_dynamic_array() local
2689 field = pevent_find_field(event, token); in process_dynamic_array()
2690 if (!field) in process_dynamic_array()
2693 arg->dynarray.field = field; in process_dynamic_array()
2736 struct format_field *field; in process_dynamic_array_len() local
2746 field = pevent_find_field(event, token); in process_dynamic_array_len()
2747 if (!field) in process_dynamic_array_len()
2750 arg->dynarray.field = field; in process_dynamic_array_len()
3337 int pevent_read_number_field(struct format_field *field, const void *data, in pevent_read_number_field() argument
3340 if (!field) in pevent_read_number_field()
3342 switch (field->size) { in pevent_read_number_field()
3347 *value = pevent_read_number(field->event->pevent, in pevent_read_number_field()
3348 data + field->offset, field->size); in pevent_read_number_field()
3359 struct format_field *field; in get_common_info() local
3371 field = pevent_find_common_field(event, type); in get_common_info()
3372 if (!field) in get_common_info()
3375 *offset = field->offset; in get_common_info()
3376 *size = field->size; in get_common_info()
3523 if (!arg->field.field) { in eval_num_arg()
3524 arg->field.field = pevent_find_any_field(event, arg->field.name); in eval_num_arg()
3525 if (!arg->field.field) in eval_num_arg()
3530 val = pevent_read_number(pevent, data + arg->field.field->offset, in eval_num_arg()
3531 arg->field.field->size); in eval_num_arg()
3574 data + larg->dynarray.field->offset, in eval_num_arg()
3575 larg->dynarray.field->size); in eval_num_arg()
3576 if (larg->dynarray.field->elementsize) in eval_num_arg()
3577 field_size = larg->dynarray.field->elementsize; in eval_num_arg()
3587 if (!larg->field.field) { in eval_num_arg()
3588 larg->field.field = in eval_num_arg()
3589 pevent_find_any_field(event, larg->field.name); in eval_num_arg()
3590 if (!larg->field.field) { in eval_num_arg()
3595 field_size = larg->field.field->elementsize; in eval_num_arg()
3596 offset = larg->field.field->offset + in eval_num_arg()
3597 right * larg->field.field->elementsize; in eval_num_arg()
3701 data + arg->dynarray.field->offset, in eval_num_arg()
3702 arg->dynarray.field->size); in eval_num_arg()
3713 data + arg->dynarray.field->offset, in eval_num_arg()
3714 arg->dynarray.field->size); in eval_num_arg()
3734 __func__, arg->field.name); in eval_num_arg()
3847 struct format_field *field; in print_str_arg() local
3864 field = arg->field.field; in print_str_arg()
3865 if (!field) { in print_str_arg()
3866 field = pevent_find_any_field(event, arg->field.name); in print_str_arg()
3867 if (!field) { in print_str_arg()
3868 str = arg->field.name; in print_str_arg()
3871 arg->field.field = field; in print_str_arg()
3874 len = field->size ? : size - field->offset; in print_str_arg()
3881 if (!(field->flags & FIELD_IS_ARRAY) && in print_str_arg()
3882 field->size == pevent->long_size) { in print_str_arg()
3898 *(unsigned long long *)(data + field->offset) : in print_str_arg()
3899 (unsigned long long)*(unsigned int *)(data + field->offset); in print_str_arg()
3915 memcpy(str, data + field->offset, len); in print_str_arg()
3921 val = eval_num_arg(data, size, event, arg->flags.field); in print_str_arg()
3939 val = eval_num_arg(data, size, event, arg->symbol.field); in print_str_arg()
3949 if (arg->hex.field->type == PRINT_DYNAMIC_ARRAY) { in print_str_arg()
3952 data + arg->hex.field->dynarray.field->offset, in print_str_arg()
3953 arg->hex.field->dynarray.field->size); in print_str_arg()
3956 field = arg->hex.field->field.field; in print_str_arg()
3957 if (!field) { in print_str_arg()
3958 str = arg->hex.field->field.name; in print_str_arg()
3959 field = pevent_find_any_field(event, str); in print_str_arg()
3960 if (!field) in print_str_arg()
3962 arg->hex.field->field.field = field; in print_str_arg()
3964 hex = data + field->offset; in print_str_arg()
3978 if (arg->int_array.field->type == PRINT_DYNAMIC_ARRAY) { in print_str_arg()
3980 struct format_field *field = in print_str_arg() local
3981 arg->int_array.field->dynarray.field; in print_str_arg()
3983 data + field->offset, in print_str_arg()
3984 field->size); in print_str_arg()
3987 field = arg->int_array.field->field.field; in print_str_arg()
3988 if (!field) { in print_str_arg()
3989 str = arg->int_array.field->field.name; in print_str_arg()
3990 field = pevent_find_any_field(event, str); in print_str_arg()
3991 if (!field) in print_str_arg()
3993 arg->int_array.field->field.field = field; in print_str_arg()
3995 num = data + field->offset; in print_str_arg()
4084 __func__, arg->field.name); in print_str_arg()
4187 struct format_field *field, *ip_field; in make_bprint_args() local
4194 field = pevent->bprint_buf_field; in make_bprint_args()
4197 if (!field) { in make_bprint_args()
4198 field = pevent_find_field(event, "buf"); in make_bprint_args()
4199 if (!field) { in make_bprint_args()
4208 pevent->bprint_buf_field = field; in make_bprint_args()
4233 for (ptr = fmt + 5, bptr = data + field->offset; in make_bprint_args()
4344 struct format_field *field; in get_bprint_format() local
4348 field = pevent->bprint_fmt_field; in get_bprint_format()
4350 if (!field) { in get_bprint_format()
4351 field = pevent_find_field(event, "fmt"); in get_bprint_format()
4352 if (!field) { in get_bprint_format()
4356 pevent->bprint_fmt_field = field; in get_bprint_format()
4359 addr = pevent_read_number(pevent, data + field->offset, field->size); in get_bprint_format()
4393 if (!arg->field.field) { in print_mac_arg()
4394 arg->field.field = in print_mac_arg()
4395 pevent_find_any_field(event, arg->field.name); in print_mac_arg()
4396 if (!arg->field.field) { in print_mac_arg()
4398 __func__, arg->field.name); in print_mac_arg()
4402 if (arg->field.field->size != 6) { in print_mac_arg()
4406 buf = data + arg->field.field->offset; in print_mac_arg()
4543 if (!arg->field.field) { in print_ipv4_arg()
4544 arg->field.field = in print_ipv4_arg()
4545 pevent_find_any_field(event, arg->field.name); in print_ipv4_arg()
4546 if (!arg->field.field) { in print_ipv4_arg()
4548 __func__, arg->field.name); in print_ipv4_arg()
4553 buf = data + arg->field.field->offset; in print_ipv4_arg()
4555 if (arg->field.field->size != 4) { in print_ipv4_arg()
4589 if (!arg->field.field) { in print_ipv6_arg()
4590 arg->field.field = in print_ipv6_arg()
4591 pevent_find_any_field(event, arg->field.name); in print_ipv6_arg()
4592 if (!arg->field.field) { in print_ipv6_arg()
4594 __func__, arg->field.name); in print_ipv6_arg()
4599 buf = data + arg->field.field->offset; in print_ipv6_arg()
4601 if (arg->field.field->size != 16) { in print_ipv6_arg()
4647 if (!arg->field.field) { in print_ipsa_arg()
4648 arg->field.field = in print_ipsa_arg()
4649 pevent_find_any_field(event, arg->field.name); in print_ipsa_arg()
4650 if (!arg->field.field) { in print_ipsa_arg()
4652 __func__, arg->field.name); in print_ipsa_arg()
4657 sa = (struct sockaddr_storage *) (data + arg->field.field->offset); in print_ipsa_arg()
4662 if (arg->field.field->size < sizeof(struct sockaddr_in)) { in print_ipsa_arg()
4675 if (arg->field.field->size < sizeof(struct sockaddr_in6)) { in print_ipsa_arg()
4742 struct format_field *field; in print_event_fields() local
4746 field = event->format.fields; in print_event_fields()
4747 while (field) { in print_event_fields()
4748 trace_seq_printf(s, " %s=", field->name); in print_event_fields()
4749 if (field->flags & FIELD_IS_ARRAY) { in print_event_fields()
4750 offset = field->offset; in print_event_fields()
4751 len = field->size; in print_event_fields()
4752 if (field->flags & FIELD_IS_DYNAMIC) { in print_event_fields()
4758 if (field->flags & FIELD_IS_STRING && in print_event_fields()
4770 field->flags &= ~FIELD_IS_STRING; in print_event_fields()
4773 val = pevent_read_number(event->pevent, data + field->offset, in print_event_fields()
4774 field->size); in print_event_fields()
4775 if (field->flags & FIELD_IS_POINTER) { in print_event_fields()
4777 } else if (field->flags & FIELD_IS_SIGNED) { in print_event_fields()
4778 switch (field->size) { in print_event_fields()
4784 if (field->flags & FIELD_IS_LONG) in print_event_fields()
4799 if (field->flags & FIELD_IS_LONG) in print_event_fields()
4805 field = field->next; in print_event_fields()
5500 struct format_field *field; in get_event_fields() local
5507 for (field = list; field; field = field->next) { in get_event_fields()
5508 fields[i++] = field; in get_event_fields()
5554 static void print_fields(struct trace_seq *s, struct print_flag_sym *field) in print_fields() argument
5556 trace_seq_printf(s, "{ %s, %s }", field->value, field->str); in print_fields()
5557 if (field->next) { in print_fields()
5559 print_fields(s, field->next); in print_fields()
5577 printf("REC->%s", args->field.name); in print_args()
5581 print_args(args->flags.field); in print_args()
5591 print_args(args->symbol.field); in print_args()
5601 print_args(args->hex.field); in print_args()
5608 print_args(args->int_array.field); in print_args()
5647 static void parse_header_field(const char *field, in parse_header_field() argument
5672 if (read_expected(EVENT_ITEM, field) < 0) in parse_header_field()
5677 if (strcmp(token, field) != 0) in parse_header_field()
5914 struct format_field *field; in __pevent_parse_format() local
5919 for (field = event->format.fields; field; field = field->next) { in __pevent_parse_format()
5926 arg->field.name = strdup(field->name); in __pevent_parse_format()
5927 if (!arg->field.name) { in __pevent_parse_format()
5932 arg->field.field = field; in __pevent_parse_format()
6059 int get_field_val(struct trace_seq *s, struct format_field *field, in get_field_val() argument
6063 if (!field) { in get_field_val()
6069 if (pevent_read_number_field(field, record->data, val)) { in get_field_val()
6096 struct format_field *field; in pevent_get_field_raw() local
6104 field = pevent_find_field(event, name); in pevent_get_field_raw()
6106 if (!field) { in pevent_get_field_raw()
6116 offset = field->offset; in pevent_get_field_raw()
6117 if (field->flags & FIELD_IS_DYNAMIC) { in pevent_get_field_raw()
6119 data + offset, field->size); in pevent_get_field_raw()
6123 *len = field->size; in pevent_get_field_raw()
6143 struct format_field *field; in pevent_get_field_val() local
6148 field = pevent_find_field(event, name); in pevent_get_field_val()
6150 return get_field_val(s, field, name, record, val, err); in pevent_get_field_val()
6168 struct format_field *field; in pevent_get_common_field_val() local
6173 field = pevent_find_common_field(event, name); in pevent_get_common_field_val()
6175 return get_field_val(s, field, name, record, val, err); in pevent_get_common_field_val()
6193 struct format_field *field; in pevent_get_any_field_val() local
6198 field = pevent_find_any_field(event, name); in pevent_get_any_field_val()
6200 return get_field_val(s, field, name, record, val, err); in pevent_get_any_field_val()
6218 struct format_field *field = pevent_find_field(event, name); in pevent_print_num_field() local
6221 if (!field) in pevent_print_num_field()
6224 if (pevent_read_number_field(field, record->data, &val)) in pevent_print_num_field()
6250 struct format_field *field = pevent_find_field(event, name); in pevent_print_func_field() local
6256 if (!field) in pevent_print_func_field()
6259 if (pevent_read_number_field(field, record->data, &val)) in pevent_print_func_field()
6587 void pevent_free_format_field(struct format_field *field) in pevent_free_format_field() argument
6589 free(field->type); in pevent_free_format_field()
6590 if (field->alias != field->name) in pevent_free_format_field()
6591 free(field->alias); in pevent_free_format_field()
6592 free(field->name); in pevent_free_format_field()
6593 free(field); in pevent_free_format_field()
6596 static void free_format_fields(struct format_field *field) in free_format_fields() argument
6600 while (field) { in free_format_fields()
6601 next = field->next; in free_format_fields()
6602 pevent_free_format_field(field); in free_format_fields()
6603 field = next; in free_format_fields()