Lines Matching refs:arg

99 		     struct tep_event *event, struct tep_print_arg *arg);
868 static void free_arg(struct tep_print_arg *arg) in free_arg() argument
872 if (!arg) in free_arg()
875 switch (arg->type) { in free_arg()
877 free(arg->atom.atom); in free_arg()
880 free(arg->field.name); in free_arg()
883 free_arg(arg->flags.field); in free_arg()
884 free(arg->flags.delim); in free_arg()
885 free_flag_sym(arg->flags.flags); in free_arg()
888 free_arg(arg->symbol.field); in free_arg()
889 free_flag_sym(arg->symbol.symbols); in free_arg()
893 free_arg(arg->hex.field); in free_arg()
894 free_arg(arg->hex.size); in free_arg()
897 free_arg(arg->int_array.field); in free_arg()
898 free_arg(arg->int_array.count); in free_arg()
899 free_arg(arg->int_array.el_size); in free_arg()
902 free(arg->typecast.type); in free_arg()
903 free_arg(arg->typecast.item); in free_arg()
907 free(arg->string.string); in free_arg()
910 free(arg->bitmask.bitmask); in free_arg()
914 free(arg->dynarray.index); in free_arg()
917 free(arg->op.op); in free_arg()
918 free_arg(arg->op.left); in free_arg()
919 free_arg(arg->op.right); in free_arg()
922 while (arg->func.args) { in free_arg()
923 farg = arg->func.args; in free_arg()
924 arg->func.args = farg->next; in free_arg()
934 free(arg); in free_arg()
1748 process_arg_token(struct tep_event *event, struct tep_print_arg *arg,
1752 process_arg(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_arg() argument
1760 return process_arg_token(event, arg, tok, type); in process_arg()
1764 process_op(struct tep_event *event, struct tep_print_arg *arg, char **tok);
1771 process_field_arg(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_field_arg() argument
1775 type = process_arg(event, arg, tok); in process_field_arg()
1778 type = process_op(event, arg, tok); in process_field_arg()
1787 struct tep_print_arg *arg, *left, *right; in process_cond() local
1791 arg = alloc_arg(); in process_cond()
1795 if (!arg || !left || !right) { in process_cond()
1803 arg->type = TEP_PRINT_OP; in process_cond()
1804 arg->op.left = left; in process_cond()
1805 arg->op.right = right; in process_cond()
1823 arg->op.op = token; in process_cond()
1827 top->op.right = arg; in process_cond()
1836 free_arg(arg); in process_cond()
1843 struct tep_print_arg *arg; in process_array() local
1847 arg = alloc_arg(); in process_array()
1848 if (!arg) { in process_array()
1856 type = process_arg(event, arg, &token); in process_array()
1860 top->op.right = arg; in process_array()
1870 free_arg(arg); in process_array()
1929 static int set_op_prio(struct tep_print_arg *arg) in set_op_prio() argument
1933 if (!arg->op.left || arg->op.left->type == TEP_PRINT_NULL) in set_op_prio()
1934 arg->op.prio = 0; in set_op_prio()
1936 arg->op.prio = get_op_prio(arg->op.op); in set_op_prio()
1938 return arg->op.prio; in set_op_prio()
1943 process_op(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_op() argument
1952 if (arg->type == TEP_PRINT_OP && !arg->op.left) { in process_op()
1976 arg->op.left = left; in process_op()
1982 arg->op.right = right; in process_op()
1995 *left = *arg; in process_op()
1997 arg->type = TEP_PRINT_OP; in process_op()
1998 arg->op.op = token; in process_op()
1999 arg->op.left = left; in process_op()
2000 arg->op.prio = 0; in process_op()
2003 type = process_cond(event, arg, tok); in process_op()
2029 *left = *arg; in process_op()
2031 arg->type = TEP_PRINT_OP; in process_op()
2032 arg->op.op = token; in process_op()
2033 arg->op.left = left; in process_op()
2034 arg->op.right = NULL; in process_op()
2036 if (set_op_prio(arg) == -1) { in process_op()
2039 arg->op.op = NULL; in process_op()
2047 if ((strcmp(arg->op.op, "*") == 0) && in process_op()
2062 free(arg->op.op); in process_op()
2063 *arg = *left; in process_op()
2082 get_op_prio(arg->op.op) < get_op_prio(right->op.op)) { in process_op()
2086 arg->op.right = right->op.left; in process_op()
2088 tmp = *arg; in process_op()
2089 *arg = *right; in process_op()
2092 arg->op.left = right; in process_op()
2094 arg->op.right = right; in process_op()
2103 *left = *arg; in process_op()
2105 arg->type = TEP_PRINT_OP; in process_op()
2106 arg->op.op = token; in process_op()
2107 arg->op.left = left; in process_op()
2109 arg->op.prio = 0; in process_op()
2112 type = process_array(event, arg, tok); in process_op()
2127 if (prio > arg->op.prio) in process_op()
2128 return process_op(event, arg, tok); in process_op()
2144 process_entry(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_entry() argument
2158 arg->type = TEP_PRINT_FIELD; in process_entry()
2159 arg->field.name = field; in process_entry()
2162 arg->field.field = tep_find_any_field(event, arg->field.name); in process_entry()
2163 arg->field.field->flags |= TEP_FIELD_IS_FLAG; in process_entry()
2166 arg->field.field = tep_find_any_field(event, arg->field.name); in process_entry()
2167 arg->field.field->flags |= TEP_FIELD_IS_SYMBOLIC; in process_entry()
2215 static char *arg_eval (struct tep_print_arg *arg);
2312 eval_type(unsigned long long val, struct tep_print_arg *arg, int pointer) in eval_type() argument
2314 if (arg->type != TEP_PRINT_TYPE) { in eval_type()
2319 return eval_type_str(val, arg->typecast.type, pointer); in eval_type()
2322 static int arg_num_eval(struct tep_print_arg *arg, long long *val) in arg_num_eval() argument
2327 switch (arg->type) { in arg_num_eval()
2329 *val = strtoll(arg->atom.atom, NULL, 0); in arg_num_eval()
2332 ret = arg_num_eval(arg->typecast.item, val); in arg_num_eval()
2335 *val = eval_type(*val, arg, 0); in arg_num_eval()
2338 switch (arg->op.op[0]) { in arg_num_eval()
2340 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2343 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2346 if (arg->op.op[1]) in arg_num_eval()
2352 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2355 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2358 if (arg->op.op[1]) in arg_num_eval()
2364 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2367 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2370 switch (arg->op.op[1]) { in arg_num_eval()
2381 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2386 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2389 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2392 switch (arg->op.op[1]) { in arg_num_eval()
2403 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2408 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2411 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2415 if (arg->op.op[1] != '=') { in arg_num_eval()
2416 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2422 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2425 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2429 switch (arg->op.op[1]) { in arg_num_eval()
2434 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2440 if (arg->op.left->type == TEP_PRINT_NULL) in arg_num_eval()
2443 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2446 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2452 if (arg->op.left->type == TEP_PRINT_NULL) in arg_num_eval()
2455 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2458 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2464 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2470 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2481 do_warning("invalid eval type %d", arg->type); in arg_num_eval()
2488 static char *arg_eval (struct tep_print_arg *arg) in arg_eval() argument
2493 switch (arg->type) { in arg_eval()
2495 return arg->atom.atom; in arg_eval()
2497 return arg_eval(arg->typecast.item); in arg_eval()
2499 if (!arg_num_eval(arg, &val)) in arg_eval()
2510 do_warning("invalid eval type %d", arg->type); in arg_eval()
2521 struct tep_print_arg *arg = NULL; in process_fields() local
2532 arg = alloc_arg(); in process_fields()
2533 if (!arg) in process_fields()
2537 type = process_arg(event, arg, &token); in process_fields()
2540 type = process_op(event, arg, &token); in process_fields()
2552 value = arg_eval(arg); in process_fields()
2559 free_arg(arg); in process_fields()
2560 arg = alloc_arg(); in process_fields()
2561 if (!arg) in process_fields()
2565 type = process_arg(event, arg, &token); in process_fields()
2569 value = arg_eval(arg); in process_fields()
2575 free_arg(arg); in process_fields()
2576 arg = NULL; in process_fields()
2591 free_arg(arg); in process_fields()
2599 process_flags(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_flags() argument
2605 memset(arg, 0, sizeof(*arg)); in process_flags()
2606 arg->type = TEP_PRINT_FLAGS; in process_flags()
2624 arg->flags.field = field; in process_flags()
2628 arg->flags.delim = token; in process_flags()
2635 type = process_fields(event, &arg->flags.flags, &token); in process_flags()
2652 process_symbols(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_symbols() argument
2658 memset(arg, 0, sizeof(*arg)); in process_symbols()
2659 arg->type = TEP_PRINT_SYMBOL; in process_symbols()
2672 arg->symbol.field = field; in process_symbols()
2674 type = process_fields(event, &arg->symbol.symbols, &token); in process_symbols()
2691 process_hex_common(struct tep_event *event, struct tep_print_arg *arg, in process_hex_common() argument
2694 memset(arg, 0, sizeof(*arg)); in process_hex_common()
2695 arg->type = type; in process_hex_common()
2697 if (alloc_and_process_delim(event, ",", &arg->hex.field)) in process_hex_common()
2700 if (alloc_and_process_delim(event, ")", &arg->hex.size)) in process_hex_common()
2706 free_arg(arg->hex.field); in process_hex_common()
2707 arg->hex.field = NULL; in process_hex_common()
2714 process_hex(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_hex() argument
2716 return process_hex_common(event, arg, tok, TEP_PRINT_HEX); in process_hex()
2720 process_hex_str(struct tep_event *event, struct tep_print_arg *arg, in process_hex_str() argument
2723 return process_hex_common(event, arg, tok, TEP_PRINT_HEX_STR); in process_hex_str()
2727 process_int_array(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_int_array() argument
2729 memset(arg, 0, sizeof(*arg)); in process_int_array()
2730 arg->type = TEP_PRINT_INT_ARRAY; in process_int_array()
2732 if (alloc_and_process_delim(event, ",", &arg->int_array.field)) in process_int_array()
2735 if (alloc_and_process_delim(event, ",", &arg->int_array.count)) in process_int_array()
2738 if (alloc_and_process_delim(event, ")", &arg->int_array.el_size)) in process_int_array()
2744 free_arg(arg->int_array.count); in process_int_array()
2745 arg->int_array.count = NULL; in process_int_array()
2747 free_arg(arg->int_array.field); in process_int_array()
2748 arg->int_array.field = NULL; in process_int_array()
2755 process_dynamic_array(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_dynamic_array() argument
2761 memset(arg, 0, sizeof(*arg)); in process_dynamic_array()
2762 arg->type = TEP_PRINT_DYNAMIC_ARRAY; in process_dynamic_array()
2779 arg->dynarray.field = field; in process_dynamic_array()
2780 arg->dynarray.index = 0; in process_dynamic_array()
2792 arg = alloc_arg(); in process_dynamic_array()
2793 if (!arg) { in process_dynamic_array()
2799 type = process_arg(event, arg, &token); in process_dynamic_array()
2811 free_arg(arg); in process_dynamic_array()
2819 process_dynamic_array_len(struct tep_event *event, struct tep_print_arg *arg, in process_dynamic_array_len() argument
2829 arg->type = TEP_PRINT_DYNAMIC_ARRAY_LEN; in process_dynamic_array_len()
2836 arg->dynarray.field = field; in process_dynamic_array_len()
2837 arg->dynarray.index = 0; in process_dynamic_array_len()
2855 process_paren(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_paren() argument
2861 type = process_arg(event, arg, &token); in process_paren()
2867 type = process_op(event, arg, &token); in process_paren()
2888 if (arg->type != TEP_PRINT_ATOM) { in process_paren()
2900 arg->type = TEP_PRINT_TYPE; in process_paren()
2901 arg->typecast.type = arg->atom.atom; in process_paren()
2902 arg->typecast.item = item_arg; in process_paren()
2918 process_str(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_str() argument
2927 arg->type = TEP_PRINT_STRING; in process_str()
2928 arg->string.string = token; in process_str()
2929 arg->string.offset = -1; in process_str()
2947 process_bitmask(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_bitmask() argument
2956 arg->type = TEP_PRINT_BITMASK; in process_bitmask()
2957 arg->bitmask.bitmask = token; in process_bitmask()
2958 arg->bitmask.offset = -1; in process_bitmask()
3009 struct tep_print_arg *arg, char **tok) in process_func_handler() argument
3017 arg->type = TEP_PRINT_FUNC; in process_func_handler()
3018 arg->func.func = func; in process_func_handler()
3022 next_arg = &(arg->func.args); in process_func_handler()
3066 process_function(struct tep_event *event, struct tep_print_arg *arg, in process_function() argument
3074 return process_flags(event, arg, tok); in process_function()
3079 return process_symbols(event, arg, tok); in process_function()
3083 return process_hex(event, arg, tok); in process_function()
3087 return process_hex_str(event, arg, tok); in process_function()
3091 return process_int_array(event, arg, tok); in process_function()
3095 return process_str(event, arg, tok); in process_function()
3099 return process_bitmask(event, arg, tok); in process_function()
3103 return process_dynamic_array(event, arg, tok); in process_function()
3107 return process_dynamic_array_len(event, arg, tok); in process_function()
3113 return process_func_handler(event, func, arg, tok); in process_function()
3122 process_arg_token(struct tep_event *event, struct tep_print_arg *arg, in process_arg_token() argument
3134 type = process_entry(event, arg, &token); in process_arg_token()
3149 type = process_function(event, arg, atom, &token); in process_arg_token()
3170 arg->type = TEP_PRINT_ATOM; in process_arg_token()
3171 arg->atom.atom = atom; in process_arg_token()
3176 arg->type = TEP_PRINT_ATOM; in process_arg_token()
3177 arg->atom.atom = token; in process_arg_token()
3183 type = process_paren(event, arg, &token); in process_arg_token()
3188 arg->type = TEP_PRINT_OP; in process_arg_token()
3189 arg->op.op = token; in process_arg_token()
3190 arg->op.left = NULL; in process_arg_token()
3191 type = process_op(event, arg, &token); in process_arg_token()
3195 arg->op.op = NULL; in process_arg_token()
3213 struct tep_print_arg *arg; in event_read_print_args() local
3223 arg = alloc_arg(); in event_read_print_args()
3224 if (!arg) { in event_read_print_args()
3230 type = process_arg(event, arg, &token); in event_read_print_args()
3234 free_arg(arg); in event_read_print_args()
3238 *list = arg; in event_read_print_args()
3242 type = process_op(event, arg, &token); in event_read_print_args()
3246 free_arg(arg); in event_read_print_args()
3249 list = &arg->next; in event_read_print_args()
3255 *list = arg; in event_read_print_args()
3256 list = &arg->next; in event_read_print_args()
3599 eval_num_arg(void *data, int size, struct tep_event *event, struct tep_print_arg *arg) in eval_num_arg() argument
3609 switch (arg->type) { in eval_num_arg()
3614 return strtoull(arg->atom.atom, NULL, 0); in eval_num_arg()
3616 if (!arg->field.field) { in eval_num_arg()
3617 arg->field.field = tep_find_any_field(event, arg->field.name); in eval_num_arg()
3618 if (!arg->field.field) in eval_num_arg()
3623 val = tep_read_number(tep, data + arg->field.field->offset, in eval_num_arg()
3624 arg->field.field->size); in eval_num_arg()
3633 val = eval_num_arg(data, size, event, arg->typecast.item); in eval_num_arg()
3634 return eval_type(val, arg, 0); in eval_num_arg()
3642 val = process_defined_func(&s, data, size, event, arg); in eval_num_arg()
3647 if (strcmp(arg->op.op, "[") == 0) { in eval_num_arg()
3652 right = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3655 larg = arg->op.left; in eval_num_arg()
3685 arg = larg; in eval_num_arg()
3701 } else if (strcmp(arg->op.op, "?") == 0) { in eval_num_arg()
3702 left = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3703 arg = arg->op.right; in eval_num_arg()
3705 val = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3707 val = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3711 left = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3712 right = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3713 switch (arg->op.op[0]) { in eval_num_arg()
3715 switch (arg->op.op[1]) { in eval_num_arg()
3730 if (arg->op.op[1]) in eval_num_arg()
3736 if (arg->op.op[1]) in eval_num_arg()
3742 switch (arg->op.op[1]) { in eval_num_arg()
3757 switch (arg->op.op[1]) { in eval_num_arg()
3772 if (arg->op.op[1] != '=') in eval_num_arg()
3798 data + arg->dynarray.field->offset, in eval_num_arg()
3799 arg->dynarray.field->size); in eval_num_arg()
3810 data + arg->dynarray.field->offset, in eval_num_arg()
3811 arg->dynarray.field->size); in eval_num_arg()
3826 do_warning_event(event, "%s: unknown op '%s'", __func__, arg->op.op); in eval_num_arg()
3831 __func__, arg->field.name); in eval_num_arg()
3940 int len_arg, struct tep_print_arg *arg) in print_str_arg() argument
3953 switch (arg->type) { in print_str_arg()
3958 print_str_to_seq(s, format, len_arg, arg->atom.atom); in print_str_arg()
3961 field = arg->field.field; in print_str_arg()
3963 field = tep_find_any_field(event, arg->field.name); in print_str_arg()
3965 str = arg->field.name; in print_str_arg()
3968 arg->field.field = field; in print_str_arg()
4018 val = eval_num_arg(data, size, event, arg->flags.field); in print_str_arg()
4020 for (flag = arg->flags.flags; flag; flag = flag->next) { in print_str_arg()
4027 if (print && arg->flags.delim) in print_str_arg()
4028 trace_seq_puts(s, arg->flags.delim); in print_str_arg()
4035 if (print && arg->flags.delim) in print_str_arg()
4036 trace_seq_puts(s, arg->flags.delim); in print_str_arg()
4041 val = eval_num_arg(data, size, event, arg->symbol.field); in print_str_arg()
4042 for (flag = arg->symbol.symbols; flag; flag = flag->next) { in print_str_arg()
4054 if (arg->hex.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4057 data + arg->hex.field->dynarray.field->offset, in print_str_arg()
4058 arg->hex.field->dynarray.field->size); in print_str_arg()
4061 field = arg->hex.field->field.field; in print_str_arg()
4063 str = arg->hex.field->field.name; in print_str_arg()
4067 arg->hex.field->field.field = field; in print_str_arg()
4071 len = eval_num_arg(data, size, event, arg->hex.size); in print_str_arg()
4073 if (i && arg->type == TEP_PRINT_HEX) in print_str_arg()
4083 if (arg->int_array.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4086 arg->int_array.field->dynarray.field; in print_str_arg()
4092 field = arg->int_array.field->field.field; in print_str_arg()
4094 str = arg->int_array.field->field.name; in print_str_arg()
4098 arg->int_array.field->field.field = field; in print_str_arg()
4102 len = eval_num_arg(data, size, event, arg->int_array.count); in print_str_arg()
4104 arg->int_array.el_size); in print_str_arg()
4132 if (arg->string.offset == -1) { in print_str_arg()
4135 f = tep_find_any_field(event, arg->string.string); in print_str_arg()
4136 arg->string.offset = f->offset; in print_str_arg()
4138 str_offset = tep_data2host4(tep, *(unsigned int *)(data + arg->string.offset)); in print_str_arg()
4144 print_str_to_seq(s, format, len_arg, arg->string.string); in print_str_arg()
4150 if (arg->bitmask.offset == -1) { in print_str_arg()
4153 f = tep_find_any_field(event, arg->bitmask.bitmask); in print_str_arg()
4154 arg->bitmask.offset = f->offset; in print_str_arg()
4156 bitmask_offset = tep_data2host4(tep, *(unsigned int *)(data + arg->bitmask.offset)); in print_str_arg()
4167 if (arg->op.op[0] != '?') in print_str_arg()
4169 val = eval_num_arg(data, size, event, arg->op.left); in print_str_arg()
4172 format, len_arg, arg->op.right->op.left); in print_str_arg()
4175 format, len_arg, arg->op.right->op.right); in print_str_arg()
4178 process_defined_func(s, data, size, event, arg); in print_str_arg()
4189 __func__, arg->field.name); in print_str_arg()
4194 struct tep_event *event, struct tep_print_arg *arg) in process_defined_func() argument
4196 struct tep_function_handler *func_handle = arg->func.func; in process_defined_func()
4213 farg = arg->func.args; in process_defined_func()
4293 struct tep_print_arg *args, *arg, **next; in make_bprint_args() local
4328 arg = args; in make_bprint_args()
4329 arg->next = NULL; in make_bprint_args()
4330 next = &arg->next; in make_bprint_args()
4332 arg->type = TEP_PRINT_ATOM; in make_bprint_args()
4334 if (asprintf(&arg->atom.atom, "%lld", ip) < 0) in make_bprint_args()
4424 arg = alloc_arg(); in make_bprint_args()
4425 if (!arg) { in make_bprint_args()
4430 arg->next = NULL; in make_bprint_args()
4431 arg->type = TEP_PRINT_ATOM; in make_bprint_args()
4432 if (asprintf(&arg->atom.atom, "%lld", val) < 0) { in make_bprint_args()
4433 free(arg); in make_bprint_args()
4436 *next = arg; in make_bprint_args()
4437 next = &arg->next; in make_bprint_args()
4448 arg = alloc_arg(); in make_bprint_args()
4449 if (!arg) { in make_bprint_args()
4454 arg->next = NULL; in make_bprint_args()
4455 arg->type = TEP_PRINT_BSTRING; in make_bprint_args()
4456 arg->string.string = strdup(bptr); in make_bprint_args()
4457 if (!arg->string.string) in make_bprint_args()
4460 *next = arg; in make_bprint_args()
4461 next = &arg->next; in make_bprint_args()
4512 struct tep_event *event, struct tep_print_arg *arg) in print_mac_arg() argument
4517 if (arg->type == TEP_PRINT_FUNC) { in print_mac_arg()
4518 process_defined_func(s, data, size, event, arg); in print_mac_arg()
4522 if (arg->type != TEP_PRINT_FIELD) { in print_mac_arg()
4524 arg->type); in print_mac_arg()
4530 if (!arg->field.field) { in print_mac_arg()
4531 arg->field.field = in print_mac_arg()
4532 tep_find_any_field(event, arg->field.name); in print_mac_arg()
4533 if (!arg->field.field) { in print_mac_arg()
4535 __func__, arg->field.name); in print_mac_arg()
4539 if (arg->field.field->size != 6) { in print_mac_arg()
4543 buf = data + arg->field.field->offset; in print_mac_arg()
4666 struct tep_print_arg *arg) in print_ipv4_arg() argument
4670 if (arg->type == TEP_PRINT_FUNC) { in print_ipv4_arg()
4671 process_defined_func(s, data, size, event, arg); in print_ipv4_arg()
4675 if (arg->type != TEP_PRINT_FIELD) { in print_ipv4_arg()
4676 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipv4_arg()
4680 if (!arg->field.field) { in print_ipv4_arg()
4681 arg->field.field = in print_ipv4_arg()
4682 tep_find_any_field(event, arg->field.name); in print_ipv4_arg()
4683 if (!arg->field.field) { in print_ipv4_arg()
4685 __func__, arg->field.name); in print_ipv4_arg()
4690 buf = data + arg->field.field->offset; in print_ipv4_arg()
4692 if (arg->field.field->size != 4) { in print_ipv4_arg()
4703 struct tep_print_arg *arg) in print_ipv6_arg() argument
4716 if (arg->type == TEP_PRINT_FUNC) { in print_ipv6_arg()
4717 process_defined_func(s, data, size, event, arg); in print_ipv6_arg()
4721 if (arg->type != TEP_PRINT_FIELD) { in print_ipv6_arg()
4722 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipv6_arg()
4726 if (!arg->field.field) { in print_ipv6_arg()
4727 arg->field.field = in print_ipv6_arg()
4728 tep_find_any_field(event, arg->field.name); in print_ipv6_arg()
4729 if (!arg->field.field) { in print_ipv6_arg()
4731 __func__, arg->field.name); in print_ipv6_arg()
4736 buf = data + arg->field.field->offset; in print_ipv6_arg()
4738 if (arg->field.field->size != 16) { in print_ipv6_arg()
4753 struct tep_print_arg *arg) in print_ipsa_arg() argument
4774 if (arg->type == TEP_PRINT_FUNC) { in print_ipsa_arg()
4775 process_defined_func(s, data, size, event, arg); in print_ipsa_arg()
4779 if (arg->type != TEP_PRINT_FIELD) { in print_ipsa_arg()
4780 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipsa_arg()
4784 if (!arg->field.field) { in print_ipsa_arg()
4785 arg->field.field = in print_ipsa_arg()
4786 tep_find_any_field(event, arg->field.name); in print_ipsa_arg()
4787 if (!arg->field.field) { in print_ipsa_arg()
4789 __func__, arg->field.name); in print_ipsa_arg()
4794 sa = (struct sockaddr_storage *) (data + arg->field.field->offset); in print_ipsa_arg()
4799 if (arg->field.field->size < sizeof(struct sockaddr_in)) { in print_ipsa_arg()
4812 if (arg->field.field->size < sizeof(struct sockaddr_in6)) { in print_ipsa_arg()
4835 struct tep_print_arg *arg) in print_ip_arg() argument
4850 rc += print_ipv4_arg(s, ptr, i, data, size, event, arg); in print_ip_arg()
4853 rc += print_ipv6_arg(s, ptr, i, data, size, event, arg); in print_ip_arg()
4856 rc += print_ipsa_arg(s, ptr, i, data, size, event, arg); in print_ip_arg()
4957 struct tep_print_arg *arg = print_fmt->args; in pretty_print() local
4981 arg = args; in pretty_print()
5031 if (!arg) { in pretty_print()
5036 len_arg = eval_num_arg(data, size, event, arg); in pretty_print()
5038 arg = arg->next; in pretty_print()
5055 if (arg->type == TEP_PRINT_BSTRING) { in pretty_print()
5056 trace_seq_puts(s, arg->string.string); in pretty_print()
5057 arg = arg->next; in pretty_print()
5065 print_mac_arg(s, *ptr, data, size, event, arg); in pretty_print()
5066 arg = arg->next; in pretty_print()
5071 n = print_ip_arg(s, ptr, data, size, event, arg); in pretty_print()
5074 arg = arg->next; in pretty_print()
5085 if (!arg) { in pretty_print()
5104 val = eval_num_arg(data, size, event, arg); in pretty_print()
5105 arg = arg->next; in pretty_print()
5167 if (!arg) { in pretty_print()
5190 format, len_arg, arg); in pretty_print()
5194 arg = arg->next; in pretty_print()
5555 const char *arg, struct print_event_type *type) in print_string() argument
5560 if (strncmp(arg, TEP_PRINT_LATENCY, strlen(TEP_PRINT_LATENCY)) == 0) { in print_string()
5562 } else if (strncmp(arg, TEP_PRINT_COMM, strlen(TEP_PRINT_COMM)) == 0) { in print_string()
5566 } else if (strncmp(arg, TEP_PRINT_INFO_RAW, strlen(TEP_PRINT_INFO_RAW)) == 0) { in print_string()
5568 } else if (strncmp(arg, TEP_PRINT_INFO, strlen(TEP_PRINT_INFO)) == 0) { in print_string()
5570 } else if (strncmp(arg, TEP_PRINT_NAME, strlen(TEP_PRINT_NAME)) == 0) { in print_string()
5573 trace_seq_printf(s, "[UNKNOWN TEP TYPE %s]", arg); in print_string()
5580 int arg, struct print_event_type *type) in print_int() argument
5584 switch (arg) { in print_int()
6287 struct tep_print_arg *arg, **list; in __tep_parse_format() local
6292 arg = alloc_arg(); in __tep_parse_format()
6293 if (!arg) { in __tep_parse_format()
6297 arg->type = TEP_PRINT_FIELD; in __tep_parse_format()
6298 arg->field.name = strdup(field->name); in __tep_parse_format()
6299 if (!arg->field.name) { in __tep_parse_format()
6301 free_arg(arg); in __tep_parse_format()
6304 arg->field.field = field; in __tep_parse_format()
6305 *list = arg; in __tep_parse_format()
6306 list = &arg->next; in __tep_parse_format()