Lines Matching refs:arg
106 struct tep_event *event, struct tep_print_arg *arg);
862 static void free_arg(struct tep_print_arg *arg) in free_arg() argument
866 if (!arg) in free_arg()
869 switch (arg->type) { in free_arg()
871 free(arg->atom.atom); in free_arg()
874 free(arg->field.name); in free_arg()
877 free_arg(arg->flags.field); in free_arg()
878 free(arg->flags.delim); in free_arg()
879 free_flag_sym(arg->flags.flags); in free_arg()
882 free_arg(arg->symbol.field); in free_arg()
883 free_flag_sym(arg->symbol.symbols); in free_arg()
887 free_arg(arg->hex.field); in free_arg()
888 free_arg(arg->hex.size); in free_arg()
891 free_arg(arg->int_array.field); in free_arg()
892 free_arg(arg->int_array.count); in free_arg()
893 free_arg(arg->int_array.el_size); in free_arg()
896 free(arg->typecast.type); in free_arg()
897 free_arg(arg->typecast.item); in free_arg()
901 free(arg->string.string); in free_arg()
904 free(arg->bitmask.bitmask); in free_arg()
908 free(arg->dynarray.index); in free_arg()
911 free(arg->op.op); in free_arg()
912 free_arg(arg->op.left); in free_arg()
913 free_arg(arg->op.right); in free_arg()
916 while (arg->func.args) { in free_arg()
917 farg = arg->func.args; in free_arg()
918 arg->func.args = farg->next; in free_arg()
928 free(arg); in free_arg()
1762 process_arg_token(struct tep_event *event, struct tep_print_arg *arg,
1766 process_arg(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_arg() argument
1774 return process_arg_token(event, arg, tok, type); in process_arg()
1778 process_op(struct tep_event *event, struct tep_print_arg *arg, char **tok);
1785 process_field_arg(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_field_arg() argument
1789 type = process_arg(event, arg, tok); in process_field_arg()
1792 type = process_op(event, arg, tok); in process_field_arg()
1801 struct tep_print_arg *arg, *left, *right; in process_cond() local
1805 arg = alloc_arg(); in process_cond()
1809 if (!arg || !left || !right) { in process_cond()
1817 arg->type = TEP_PRINT_OP; in process_cond()
1818 arg->op.left = left; in process_cond()
1819 arg->op.right = right; in process_cond()
1837 arg->op.op = token; in process_cond()
1841 top->op.right = arg; in process_cond()
1850 free_arg(arg); in process_cond()
1857 struct tep_print_arg *arg; in process_array() local
1861 arg = alloc_arg(); in process_array()
1862 if (!arg) { in process_array()
1870 type = process_arg(event, arg, &token); in process_array()
1874 top->op.right = arg; in process_array()
1884 free_arg(arg); in process_array()
1943 static int set_op_prio(struct tep_print_arg *arg) in set_op_prio() argument
1947 if (!arg->op.left || arg->op.left->type == TEP_PRINT_NULL) in set_op_prio()
1948 arg->op.prio = 0; in set_op_prio()
1950 arg->op.prio = get_op_prio(arg->op.op); in set_op_prio()
1952 return arg->op.prio; in set_op_prio()
1957 process_op(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_op() argument
1966 if (arg->type == TEP_PRINT_OP && !arg->op.left) { in process_op()
1990 arg->op.left = left; in process_op()
1996 arg->op.right = right; in process_op()
2009 *left = *arg; in process_op()
2011 arg->type = TEP_PRINT_OP; in process_op()
2012 arg->op.op = token; in process_op()
2013 arg->op.left = left; in process_op()
2014 arg->op.prio = 0; in process_op()
2017 type = process_cond(event, arg, tok); in process_op()
2043 *left = *arg; in process_op()
2045 arg->type = TEP_PRINT_OP; in process_op()
2046 arg->op.op = token; in process_op()
2047 arg->op.left = left; in process_op()
2048 arg->op.right = NULL; in process_op()
2050 if (set_op_prio(arg) == -1) { in process_op()
2053 arg->op.op = NULL; in process_op()
2061 if ((strcmp(arg->op.op, "*") == 0) && in process_op()
2073 free(arg->op.op); in process_op()
2074 *arg = *left; in process_op()
2093 get_op_prio(arg->op.op) < get_op_prio(right->op.op)) { in process_op()
2097 arg->op.right = right->op.left; in process_op()
2099 tmp = *arg; in process_op()
2100 *arg = *right; in process_op()
2103 arg->op.left = right; in process_op()
2105 arg->op.right = right; in process_op()
2114 *left = *arg; in process_op()
2116 arg->type = TEP_PRINT_OP; in process_op()
2117 arg->op.op = token; in process_op()
2118 arg->op.left = left; in process_op()
2120 arg->op.prio = 0; in process_op()
2123 type = process_array(event, arg, tok); in process_op()
2138 if (prio > arg->op.prio) in process_op()
2139 return process_op(event, arg, tok); in process_op()
2155 process_entry(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_entry() argument
2169 arg->type = TEP_PRINT_FIELD; 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()
2226 static char *arg_eval (struct tep_print_arg *arg);
2323 eval_type(unsigned long long val, struct tep_print_arg *arg, int pointer) in eval_type() argument
2325 if (arg->type != TEP_PRINT_TYPE) { in eval_type()
2330 return eval_type_str(val, arg->typecast.type, pointer); in eval_type()
2333 static int arg_num_eval(struct tep_print_arg *arg, long long *val) in arg_num_eval() argument
2338 switch (arg->type) { in arg_num_eval()
2340 *val = strtoll(arg->atom.atom, NULL, 0); in arg_num_eval()
2343 ret = arg_num_eval(arg->typecast.item, val); in arg_num_eval()
2346 *val = eval_type(*val, arg, 0); in arg_num_eval()
2349 switch (arg->op.op[0]) { in arg_num_eval()
2351 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2354 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2357 if (arg->op.op[1]) in arg_num_eval()
2363 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2366 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2369 if (arg->op.op[1]) in arg_num_eval()
2375 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2378 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2381 switch (arg->op.op[1]) { in arg_num_eval()
2392 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2397 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2400 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2403 switch (arg->op.op[1]) { in arg_num_eval()
2414 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2419 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2422 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2426 if (arg->op.op[1] != '=') { in arg_num_eval()
2427 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2433 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2436 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2440 switch (arg->op.op[1]) { in arg_num_eval()
2445 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2451 if (arg->op.left->type == TEP_PRINT_NULL) in arg_num_eval()
2454 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2457 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2463 if (arg->op.left->type == TEP_PRINT_NULL) in arg_num_eval()
2466 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2469 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2475 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2481 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2492 do_warning("invalid eval type %d", arg->type); in arg_num_eval()
2499 static char *arg_eval (struct tep_print_arg *arg) in arg_eval() argument
2504 switch (arg->type) { in arg_eval()
2506 return arg->atom.atom; in arg_eval()
2508 return arg_eval(arg->typecast.item); in arg_eval()
2510 if (!arg_num_eval(arg, &val)) in arg_eval()
2521 do_warning("invalid eval type %d", arg->type); in arg_eval()
2532 struct tep_print_arg *arg = NULL; in process_fields() local
2543 arg = alloc_arg(); in process_fields()
2544 if (!arg) in process_fields()
2548 type = process_arg(event, arg, &token); in process_fields()
2551 type = process_op(event, arg, &token); in process_fields()
2563 value = arg_eval(arg); in process_fields()
2570 free_arg(arg); in process_fields()
2571 arg = alloc_arg(); in process_fields()
2572 if (!arg) in process_fields()
2576 type = process_arg(event, arg, &token); in process_fields()
2580 value = arg_eval(arg); in process_fields()
2586 free_arg(arg); in process_fields()
2587 arg = NULL; in process_fields()
2602 free_arg(arg); in process_fields()
2610 process_flags(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_flags() argument
2616 memset(arg, 0, sizeof(*arg)); in process_flags()
2617 arg->type = TEP_PRINT_FLAGS; in process_flags()
2635 arg->flags.field = field; in process_flags()
2639 arg->flags.delim = token; in process_flags()
2646 type = process_fields(event, &arg->flags.flags, &token); in process_flags()
2663 process_symbols(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_symbols() argument
2669 memset(arg, 0, sizeof(*arg)); in process_symbols()
2670 arg->type = TEP_PRINT_SYMBOL; in process_symbols()
2683 arg->symbol.field = field; in process_symbols()
2685 type = process_fields(event, &arg->symbol.symbols, &token); in process_symbols()
2702 process_hex_common(struct tep_event *event, struct tep_print_arg *arg, in process_hex_common() argument
2705 memset(arg, 0, sizeof(*arg)); in process_hex_common()
2706 arg->type = type; in process_hex_common()
2708 if (alloc_and_process_delim(event, ",", &arg->hex.field)) in process_hex_common()
2711 if (alloc_and_process_delim(event, ")", &arg->hex.size)) in process_hex_common()
2717 free_arg(arg->hex.field); in process_hex_common()
2718 arg->hex.field = NULL; in process_hex_common()
2725 process_hex(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_hex() argument
2727 return process_hex_common(event, arg, tok, TEP_PRINT_HEX); in process_hex()
2731 process_hex_str(struct tep_event *event, struct tep_print_arg *arg, in process_hex_str() argument
2734 return process_hex_common(event, arg, tok, TEP_PRINT_HEX_STR); in process_hex_str()
2738 process_int_array(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_int_array() argument
2740 memset(arg, 0, sizeof(*arg)); in process_int_array()
2741 arg->type = TEP_PRINT_INT_ARRAY; in process_int_array()
2743 if (alloc_and_process_delim(event, ",", &arg->int_array.field)) in process_int_array()
2746 if (alloc_and_process_delim(event, ",", &arg->int_array.count)) in process_int_array()
2749 if (alloc_and_process_delim(event, ")", &arg->int_array.el_size)) in process_int_array()
2755 free_arg(arg->int_array.count); in process_int_array()
2756 arg->int_array.count = NULL; 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()
2766 process_dynamic_array(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_dynamic_array() argument
2772 memset(arg, 0, sizeof(*arg)); in process_dynamic_array()
2773 arg->type = TEP_PRINT_DYNAMIC_ARRAY; in process_dynamic_array()
2790 arg->dynarray.field = field; in process_dynamic_array()
2791 arg->dynarray.index = 0; in process_dynamic_array()
2803 arg = alloc_arg(); in process_dynamic_array()
2804 if (!arg) { in process_dynamic_array()
2810 type = process_arg(event, arg, &token); in process_dynamic_array()
2822 free_arg(arg); in process_dynamic_array()
2830 process_dynamic_array_len(struct tep_event *event, struct tep_print_arg *arg, in process_dynamic_array_len() argument
2840 arg->type = TEP_PRINT_DYNAMIC_ARRAY_LEN; in process_dynamic_array_len()
2847 arg->dynarray.field = field; in process_dynamic_array_len()
2848 arg->dynarray.index = 0; in process_dynamic_array_len()
2867 process_paren(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_paren() argument
2873 type = process_arg(event, arg, &token); in process_paren()
2879 type = process_op(event, arg, &token); in process_paren()
2900 if (arg->type != TEP_PRINT_ATOM) { in process_paren()
2912 arg->type = TEP_PRINT_TYPE; in process_paren()
2913 arg->typecast.type = arg->atom.atom; in process_paren()
2914 arg->typecast.item = item_arg; in process_paren()
2930 process_str(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_str() argument
2939 arg->type = TEP_PRINT_STRING; in process_str()
2940 arg->string.string = token; in process_str()
2941 arg->string.field = NULL; in process_str()
2959 process_bitmask(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_bitmask() argument
2968 arg->type = TEP_PRINT_BITMASK; in process_bitmask()
2969 arg->bitmask.bitmask = token; in process_bitmask()
2970 arg->bitmask.field = NULL; in process_bitmask()
3021 struct tep_print_arg *arg, char **tok) in process_func_handler() argument
3029 arg->type = TEP_PRINT_FUNC; in process_func_handler()
3030 arg->func.func = func; in process_func_handler()
3034 next_arg = &(arg->func.args); in process_func_handler()
3078 process_builtin_expect(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_builtin_expect() argument
3084 type = process_arg(event, arg, &token); in process_builtin_expect()
3109 process_function(struct tep_event *event, struct tep_print_arg *arg, in process_function() argument
3117 return process_flags(event, arg, tok); in process_function()
3122 return process_symbols(event, arg, tok); in process_function()
3126 return process_hex(event, arg, tok); in process_function()
3130 return process_hex_str(event, arg, tok); in process_function()
3134 return process_int_array(event, arg, tok); in process_function()
3139 return process_str(event, arg, tok); in process_function()
3144 return process_bitmask(event, arg, tok); in process_function()
3149 return process_dynamic_array(event, arg, tok); in process_function()
3154 return process_dynamic_array_len(event, arg, tok); in process_function()
3158 return process_builtin_expect(event, arg, tok); in process_function()
3164 return process_func_handler(event, func, arg, tok); in process_function()
3173 process_arg_token(struct tep_event *event, struct tep_print_arg *arg, in process_arg_token() argument
3185 type = process_entry(event, arg, &token); in process_arg_token()
3200 type = process_function(event, arg, atom, &token); in process_arg_token()
3218 arg->type = TEP_PRINT_ATOM; in process_arg_token()
3219 arg->atom.atom = atom; in process_arg_token()
3224 arg->type = TEP_PRINT_ATOM; in process_arg_token()
3225 arg->atom.atom = token; in process_arg_token()
3231 type = process_paren(event, arg, &token); in process_arg_token()
3236 arg->type = TEP_PRINT_OP; in process_arg_token()
3237 arg->op.op = token; in process_arg_token()
3238 arg->op.left = NULL; in process_arg_token()
3239 type = process_op(event, arg, &token); in process_arg_token()
3243 arg->op.op = NULL; in process_arg_token()
3261 struct tep_print_arg *arg; in event_read_print_args() local
3271 arg = alloc_arg(); in event_read_print_args()
3272 if (!arg) { in event_read_print_args()
3278 type = process_arg(event, arg, &token); in event_read_print_args()
3282 free_arg(arg); in event_read_print_args()
3286 *list = arg; in event_read_print_args()
3290 type = process_op(event, arg, &token); in event_read_print_args()
3294 free_arg(arg); in event_read_print_args()
3297 list = &arg->next; in event_read_print_args()
3303 *list = arg; in event_read_print_args()
3304 list = &arg->next; in event_read_print_args()
3647 eval_num_arg(void *data, int size, struct tep_event *event, struct tep_print_arg *arg) in eval_num_arg() argument
3657 switch (arg->type) { in eval_num_arg()
3662 return strtoull(arg->atom.atom, NULL, 0); in eval_num_arg()
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()
3681 val = eval_num_arg(data, size, event, arg->typecast.item); in eval_num_arg()
3682 return eval_type(val, arg, 0); in eval_num_arg()
3690 val = process_defined_func(&s, data, size, event, arg); in eval_num_arg()
3695 if (strcmp(arg->op.op, "[") == 0) { in eval_num_arg()
3700 right = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3703 larg = arg->op.left; in eval_num_arg()
3733 arg = larg; in eval_num_arg()
3749 } else if (strcmp(arg->op.op, "?") == 0) { in eval_num_arg()
3750 left = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3751 arg = arg->op.right; in eval_num_arg()
3753 val = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3755 val = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3759 left = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3760 right = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3761 switch (arg->op.op[0]) { in eval_num_arg()
3763 switch (arg->op.op[1]) { in eval_num_arg()
3778 if (arg->op.op[1]) in eval_num_arg()
3784 if (arg->op.op[1]) in eval_num_arg()
3790 switch (arg->op.op[1]) { in eval_num_arg()
3805 switch (arg->op.op[1]) { in eval_num_arg()
3820 if (arg->op.op[1] != '=') 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()
3874 do_warning_event(event, "%s: unknown op '%s'", __func__, arg->op.op); in eval_num_arg()
3879 __func__, arg->field.name); in eval_num_arg()
3988 int len_arg, struct tep_print_arg *arg) in print_str_arg() argument
4001 switch (arg->type) { in print_str_arg()
4006 print_str_to_seq(s, format, len_arg, arg->atom.atom); in print_str_arg()
4009 field = arg->field.field; in print_str_arg()
4011 field = tep_find_any_field(event, arg->field.name); in print_str_arg()
4013 str = arg->field.name; in print_str_arg()
4016 arg->field.field = field; in print_str_arg()
4066 val = eval_num_arg(data, size, event, arg->flags.field); in print_str_arg()
4068 for (flag = arg->flags.flags; flag; flag = flag->next) { in print_str_arg()
4075 if (print && arg->flags.delim) in print_str_arg()
4076 trace_seq_puts(s, arg->flags.delim); in print_str_arg()
4083 if (print && arg->flags.delim) in print_str_arg()
4084 trace_seq_puts(s, arg->flags.delim); in print_str_arg()
4089 val = eval_num_arg(data, size, event, arg->symbol.field); in print_str_arg()
4090 for (flag = arg->symbol.symbols; flag; flag = flag->next) { 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()
4111 str = arg->hex.field->field.name; in print_str_arg()
4115 arg->hex.field->field.field = field; in print_str_arg()
4119 len = eval_num_arg(data, size, event, arg->hex.size); in print_str_arg()
4121 if (i && arg->type == TEP_PRINT_HEX) in print_str_arg()
4131 if (arg->int_array.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4134 arg->int_array.field->dynarray.field; in print_str_arg()
4140 field = arg->int_array.field->field.field; in print_str_arg()
4142 str = arg->int_array.field->field.name; in print_str_arg()
4146 arg->int_array.field->field.field = field; in print_str_arg()
4150 len = eval_num_arg(data, size, event, arg->int_array.count); in print_str_arg()
4152 arg->int_array.el_size); 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()
4194 print_str_to_seq(s, format, len_arg, arg->string.string); 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()
4218 if (arg->op.op[0] != '?') in print_str_arg()
4220 val = eval_num_arg(data, size, event, arg->op.left); in print_str_arg()
4223 format, len_arg, arg->op.right->op.left); in print_str_arg()
4226 format, len_arg, arg->op.right->op.right); in print_str_arg()
4229 process_defined_func(s, data, size, event, arg); in print_str_arg()
4240 __func__, arg->field.name); in print_str_arg()
4245 struct tep_event *event, struct tep_print_arg *arg) in process_defined_func() argument
4247 struct tep_function_handler *func_handle = arg->func.func; in process_defined_func()
4264 farg = arg->func.args; in process_defined_func()
4344 struct tep_print_arg *args, *arg, **next; in make_bprint_args() local
4379 arg = args; in make_bprint_args()
4380 arg->next = NULL; in make_bprint_args()
4381 next = &arg->next; in make_bprint_args()
4383 arg->type = TEP_PRINT_ATOM; in make_bprint_args()
4385 if (asprintf(&arg->atom.atom, "%lld", ip) < 0) in make_bprint_args()
4477 arg = alloc_arg(); in make_bprint_args()
4478 if (!arg) { in make_bprint_args()
4483 arg->next = NULL; in make_bprint_args()
4484 arg->type = TEP_PRINT_ATOM; in make_bprint_args()
4485 if (asprintf(&arg->atom.atom, "%lld", val) < 0) { in make_bprint_args()
4486 free(arg); in make_bprint_args()
4489 *next = arg; in make_bprint_args()
4490 next = &arg->next; in make_bprint_args()
4501 arg = alloc_arg(); in make_bprint_args()
4502 if (!arg) { in make_bprint_args()
4507 arg->next = NULL; in make_bprint_args()
4508 arg->type = TEP_PRINT_BSTRING; in make_bprint_args()
4509 arg->string.string = strdup(bptr); in make_bprint_args()
4510 if (!arg->string.string) in make_bprint_args()
4513 *next = arg; in make_bprint_args()
4514 next = &arg->next; in make_bprint_args()
4566 struct tep_print_arg *arg) in print_mac_arg() argument
4573 if (arg->type == TEP_PRINT_FUNC) { in print_mac_arg()
4574 process_defined_func(s, data, size, event, arg); in print_mac_arg()
4578 if (arg->type != TEP_PRINT_FIELD) { in print_mac_arg()
4580 arg->type); in print_mac_arg()
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()
4773 struct tep_print_arg *arg) in print_ipv4_arg() argument
4781 if (arg->type == TEP_PRINT_FUNC) { in print_ipv4_arg()
4782 process_defined_func(s, data, size, event, arg); in print_ipv4_arg()
4786 if (arg->type != TEP_PRINT_FIELD) { in print_ipv4_arg()
4787 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipv4_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()
4815 struct tep_print_arg *arg) in print_ipv6_arg() argument
4828 if (arg->type == TEP_PRINT_FUNC) { in print_ipv6_arg()
4829 process_defined_func(s, data, size, event, arg); in print_ipv6_arg()
4833 if (arg->type != TEP_PRINT_FIELD) { in print_ipv6_arg()
4834 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipv6_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()
4865 struct tep_print_arg *arg) in print_ipsa_arg() argument
4891 if (arg->type == TEP_PRINT_FUNC) { in print_ipsa_arg()
4892 process_defined_func(s, data, size, event, arg); in print_ipsa_arg()
4896 if (arg->type != TEP_PRINT_FIELD) { in print_ipsa_arg()
4897 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipsa_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()
4952 struct tep_print_arg *arg) in print_ip_arg() argument
4962 rc += print_ipv4_arg(s, ptr + 1, i, data, size, event, arg); in print_ip_arg()
4965 rc += print_ipv6_arg(s, ptr + 1, i, data, size, event, arg); in print_ip_arg()
4968 rc += print_ipsa_arg(s, ptr + 1, i, data, size, event, arg); in print_ip_arg()
4982 struct tep_print_arg *arg) in print_uuid_arg() argument
5006 if (arg->type == TEP_PRINT_FUNC) { in print_uuid_arg()
5007 process_defined_func(s, data, size, event, arg); in print_uuid_arg()
5011 if (arg->type != TEP_PRINT_FIELD) { in print_uuid_arg()
5012 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_uuid_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()
5050 struct tep_print_arg *arg, int print_len) in print_raw_buff_arg() argument
5075 if (arg->type == TEP_PRINT_FUNC) { in print_raw_buff_arg()
5076 process_defined_func(s, data, size, event, arg); in print_raw_buff_arg()
5080 if (arg->type != TEP_PRINT_DYNAMIC_ARRAY) { in print_raw_buff_arg()
5081 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_raw_buff_arg()
5086 data + arg->dynarray.field->offset, in print_raw_buff_arg()
5087 arg->dynarray.field->size); in print_raw_buff_arg()
5196 struct tep_print_arg *arg) in print_function() argument
5201 val = eval_num_arg(data, size, event, arg); in print_function()
5219 struct tep_event *event, struct tep_print_arg *arg) in print_arg_pointer() argument
5224 if (arg->type == TEP_PRINT_BSTRING) { in print_arg_pointer()
5225 trace_seq_puts(s, arg->string.string); in print_arg_pointer()
5241 ret += print_function(s, format, data, size, event, arg); in print_arg_pointer()
5245 ret += print_mac_arg(s, format, data, size, event, arg); in print_arg_pointer()
5249 ret += print_ip_arg(s, format, data, size, event, arg); in print_arg_pointer()
5252 ret += print_uuid_arg(s, format, data, size, event, arg); in print_arg_pointer()
5255 ret += print_raw_buff_arg(s, format, data, size, event, arg, plen); in print_arg_pointer()
5259 val = eval_num_arg(data, size, event, arg); in print_arg_pointer()
5270 struct tep_event *event, struct tep_print_arg *arg) in print_arg_number() argument
5274 val = eval_num_arg(data, size, event, arg); in print_arg_number()
5317 struct tep_event *event, struct tep_print_arg *arg) in print_arg_string() argument
5324 format, plen, arg); in print_arg_string()
5428 static void free_parse_args(struct tep_print_parse *arg) in free_parse_args() argument
5432 while (arg) { in free_parse_args()
5433 del = arg; in free_parse_args()
5434 arg = del->next; in free_parse_args()
5442 struct tep_print_arg *arg, in parse_arg_add() argument
5455 parg->arg = arg; in parse_arg_add()
5470 const char *format, struct tep_print_arg **arg) in parse_arg_format() argument
5504 if (!*arg) { in parse_arg_format()
5514 len_arg = *arg; in parse_arg_format()
5515 *arg = (*arg)->next; in parse_arg_format()
5518 if (!*arg) { in parse_arg_format()
5540 PRINT_FMT_ARG_POINTER, *arg, len_arg, ls); in parse_arg_format()
5541 *arg = (*arg)->next; in parse_arg_format()
5550 if (!*arg) { in parse_arg_format()
5582 PRINT_FMT_ARG_DIGIT, *arg, len_arg, ls); in parse_arg_format()
5583 *arg = (*arg)->next; in parse_arg_format()
5587 if (!*arg) { in parse_arg_format()
5607 PRINT_FMT_ARG_STRING, *arg, len_arg, 0); in parse_arg_format()
5608 *arg = (*arg)->next; in parse_arg_format()
5673 parse_args(struct tep_event *event, const char *format, struct tep_print_arg *arg) in parse_args() argument
5685 ret = parse_arg_format(parse, event, format, &arg); in parse_args()
5712 size, parse->ls, event, parse->arg); in print_event_cache()
5717 data, size, event, parse->arg); in print_event_cache()
5722 data, size, event, parse->arg); in print_event_cache()
6100 const char *arg, struct print_event_type *type) in print_string() argument
6105 if (strncmp(arg, TEP_PRINT_LATENCY, strlen(TEP_PRINT_LATENCY)) == 0) { in print_string()
6107 } else if (strncmp(arg, TEP_PRINT_COMM, strlen(TEP_PRINT_COMM)) == 0) { in print_string()
6111 } else if (strncmp(arg, TEP_PRINT_INFO_RAW, strlen(TEP_PRINT_INFO_RAW)) == 0) { in print_string()
6113 } else if (strncmp(arg, TEP_PRINT_INFO, strlen(TEP_PRINT_INFO)) == 0) { in print_string()
6115 } else if (strncmp(arg, TEP_PRINT_NAME, strlen(TEP_PRINT_NAME)) == 0) { in print_string()
6118 trace_seq_printf(s, "[UNKNOWN TEP TYPE %s]", arg); in print_string()
6125 int arg, struct print_event_type *type) in print_int() argument
6129 switch (arg) { in print_int()
6832 struct tep_print_arg *arg, **list; in parse_format() local
6837 arg = alloc_arg(); in parse_format()
6838 if (!arg) { in parse_format()
6842 arg->type = TEP_PRINT_FIELD; in parse_format()
6843 arg->field.name = strdup(field->name); in parse_format()
6844 if (!arg->field.name) { in parse_format()
6846 free_arg(arg); in parse_format()
6849 arg->field.field = field; in parse_format()
6850 *list = arg; in parse_format()
6851 list = &arg->next; in parse_format()