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()
1752 process_arg_token(struct tep_event *event, struct tep_print_arg *arg,
1756 process_arg(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_arg() argument
1764 return process_arg_token(event, arg, tok, type); in process_arg()
1768 process_op(struct tep_event *event, struct tep_print_arg *arg, char **tok);
1775 process_field_arg(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_field_arg() argument
1779 type = process_arg(event, arg, tok); in process_field_arg()
1782 type = process_op(event, arg, tok); in process_field_arg()
1791 struct tep_print_arg *arg, *left, *right; in process_cond() local
1795 arg = alloc_arg(); in process_cond()
1799 if (!arg || !left || !right) { in process_cond()
1807 arg->type = TEP_PRINT_OP; in process_cond()
1808 arg->op.left = left; in process_cond()
1809 arg->op.right = right; in process_cond()
1827 arg->op.op = token; in process_cond()
1831 top->op.right = arg; in process_cond()
1840 free_arg(arg); in process_cond()
1847 struct tep_print_arg *arg; in process_array() local
1851 arg = alloc_arg(); in process_array()
1852 if (!arg) { in process_array()
1860 type = process_arg(event, arg, &token); in process_array()
1864 top->op.right = arg; in process_array()
1874 free_arg(arg); in process_array()
1933 static int set_op_prio(struct tep_print_arg *arg) in set_op_prio() argument
1937 if (!arg->op.left || arg->op.left->type == TEP_PRINT_NULL) in set_op_prio()
1938 arg->op.prio = 0; in set_op_prio()
1940 arg->op.prio = get_op_prio(arg->op.op); in set_op_prio()
1942 return arg->op.prio; in set_op_prio()
1947 process_op(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_op() argument
1956 if (arg->type == TEP_PRINT_OP && !arg->op.left) { in process_op()
1980 arg->op.left = left; in process_op()
1986 arg->op.right = right; in process_op()
1999 *left = *arg; in process_op()
2001 arg->type = TEP_PRINT_OP; in process_op()
2002 arg->op.op = token; in process_op()
2003 arg->op.left = left; in process_op()
2004 arg->op.prio = 0; in process_op()
2007 type = process_cond(event, arg, tok); in process_op()
2033 *left = *arg; in process_op()
2035 arg->type = TEP_PRINT_OP; in process_op()
2036 arg->op.op = token; in process_op()
2037 arg->op.left = left; in process_op()
2038 arg->op.right = NULL; in process_op()
2040 if (set_op_prio(arg) == -1) { in process_op()
2043 arg->op.op = NULL; in process_op()
2051 if ((strcmp(arg->op.op, "*") == 0) && in process_op()
2063 free(arg->op.op); in process_op()
2064 *arg = *left; in process_op()
2083 get_op_prio(arg->op.op) < get_op_prio(right->op.op)) { in process_op()
2087 arg->op.right = right->op.left; in process_op()
2089 tmp = *arg; in process_op()
2090 *arg = *right; in process_op()
2093 arg->op.left = right; in process_op()
2095 arg->op.right = right; in process_op()
2104 *left = *arg; in process_op()
2106 arg->type = TEP_PRINT_OP; in process_op()
2107 arg->op.op = token; in process_op()
2108 arg->op.left = left; in process_op()
2110 arg->op.prio = 0; in process_op()
2113 type = process_array(event, arg, tok); in process_op()
2128 if (prio > arg->op.prio) in process_op()
2129 return process_op(event, arg, tok); in process_op()
2145 process_entry(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_entry() argument
2159 arg->type = TEP_PRINT_FIELD; in process_entry()
2160 arg->field.name = field; in process_entry()
2163 arg->field.field = tep_find_any_field(event, arg->field.name); in process_entry()
2164 arg->field.field->flags |= TEP_FIELD_IS_FLAG; in process_entry()
2167 arg->field.field = tep_find_any_field(event, arg->field.name); in process_entry()
2168 arg->field.field->flags |= TEP_FIELD_IS_SYMBOLIC; in process_entry()
2216 static char *arg_eval (struct tep_print_arg *arg);
2313 eval_type(unsigned long long val, struct tep_print_arg *arg, int pointer) in eval_type() argument
2315 if (arg->type != TEP_PRINT_TYPE) { in eval_type()
2320 return eval_type_str(val, arg->typecast.type, pointer); in eval_type()
2323 static int arg_num_eval(struct tep_print_arg *arg, long long *val) in arg_num_eval() argument
2328 switch (arg->type) { in arg_num_eval()
2330 *val = strtoll(arg->atom.atom, NULL, 0); in arg_num_eval()
2333 ret = arg_num_eval(arg->typecast.item, val); in arg_num_eval()
2336 *val = eval_type(*val, arg, 0); in arg_num_eval()
2339 switch (arg->op.op[0]) { in arg_num_eval()
2341 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2344 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2347 if (arg->op.op[1]) in arg_num_eval()
2353 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2356 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2359 if (arg->op.op[1]) in arg_num_eval()
2365 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2368 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2371 switch (arg->op.op[1]) { in arg_num_eval()
2382 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2387 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2390 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2393 switch (arg->op.op[1]) { in arg_num_eval()
2404 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2409 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2412 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2416 if (arg->op.op[1] != '=') { in arg_num_eval()
2417 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2423 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2426 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2430 switch (arg->op.op[1]) { in arg_num_eval()
2435 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2441 if (arg->op.left->type == TEP_PRINT_NULL) in arg_num_eval()
2444 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2447 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2453 if (arg->op.left->type == TEP_PRINT_NULL) in arg_num_eval()
2456 ret = arg_num_eval(arg->op.left, &left); in arg_num_eval()
2459 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2465 ret = arg_num_eval(arg->op.right, &right); in arg_num_eval()
2471 do_warning("unknown op '%s'", arg->op.op); in arg_num_eval()
2482 do_warning("invalid eval type %d", arg->type); in arg_num_eval()
2489 static char *arg_eval (struct tep_print_arg *arg) in arg_eval() argument
2494 switch (arg->type) { in arg_eval()
2496 return arg->atom.atom; in arg_eval()
2498 return arg_eval(arg->typecast.item); in arg_eval()
2500 if (!arg_num_eval(arg, &val)) in arg_eval()
2511 do_warning("invalid eval type %d", arg->type); in arg_eval()
2522 struct tep_print_arg *arg = NULL; in process_fields() local
2533 arg = alloc_arg(); in process_fields()
2534 if (!arg) in process_fields()
2538 type = process_arg(event, arg, &token); in process_fields()
2541 type = process_op(event, arg, &token); in process_fields()
2553 value = arg_eval(arg); in process_fields()
2560 free_arg(arg); in process_fields()
2561 arg = alloc_arg(); in process_fields()
2562 if (!arg) in process_fields()
2566 type = process_arg(event, arg, &token); in process_fields()
2570 value = arg_eval(arg); in process_fields()
2576 free_arg(arg); in process_fields()
2577 arg = NULL; in process_fields()
2592 free_arg(arg); in process_fields()
2600 process_flags(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_flags() argument
2606 memset(arg, 0, sizeof(*arg)); in process_flags()
2607 arg->type = TEP_PRINT_FLAGS; in process_flags()
2625 arg->flags.field = field; in process_flags()
2629 arg->flags.delim = token; in process_flags()
2636 type = process_fields(event, &arg->flags.flags, &token); in process_flags()
2653 process_symbols(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_symbols() argument
2659 memset(arg, 0, sizeof(*arg)); in process_symbols()
2660 arg->type = TEP_PRINT_SYMBOL; in process_symbols()
2673 arg->symbol.field = field; in process_symbols()
2675 type = process_fields(event, &arg->symbol.symbols, &token); in process_symbols()
2692 process_hex_common(struct tep_event *event, struct tep_print_arg *arg, in process_hex_common() argument
2695 memset(arg, 0, sizeof(*arg)); in process_hex_common()
2696 arg->type = type; in process_hex_common()
2698 if (alloc_and_process_delim(event, ",", &arg->hex.field)) in process_hex_common()
2701 if (alloc_and_process_delim(event, ")", &arg->hex.size)) in process_hex_common()
2707 free_arg(arg->hex.field); in process_hex_common()
2708 arg->hex.field = NULL; in process_hex_common()
2715 process_hex(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_hex() argument
2717 return process_hex_common(event, arg, tok, TEP_PRINT_HEX); in process_hex()
2721 process_hex_str(struct tep_event *event, struct tep_print_arg *arg, in process_hex_str() argument
2724 return process_hex_common(event, arg, tok, TEP_PRINT_HEX_STR); in process_hex_str()
2728 process_int_array(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_int_array() argument
2730 memset(arg, 0, sizeof(*arg)); in process_int_array()
2731 arg->type = TEP_PRINT_INT_ARRAY; in process_int_array()
2733 if (alloc_and_process_delim(event, ",", &arg->int_array.field)) in process_int_array()
2736 if (alloc_and_process_delim(event, ",", &arg->int_array.count)) in process_int_array()
2739 if (alloc_and_process_delim(event, ")", &arg->int_array.el_size)) in process_int_array()
2745 free_arg(arg->int_array.count); in process_int_array()
2746 arg->int_array.count = NULL; in process_int_array()
2748 free_arg(arg->int_array.field); in process_int_array()
2749 arg->int_array.field = NULL; in process_int_array()
2756 process_dynamic_array(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_dynamic_array() argument
2762 memset(arg, 0, sizeof(*arg)); in process_dynamic_array()
2763 arg->type = TEP_PRINT_DYNAMIC_ARRAY; in process_dynamic_array()
2780 arg->dynarray.field = field; in process_dynamic_array()
2781 arg->dynarray.index = 0; in process_dynamic_array()
2793 arg = alloc_arg(); in process_dynamic_array()
2794 if (!arg) { in process_dynamic_array()
2800 type = process_arg(event, arg, &token); in process_dynamic_array()
2812 free_arg(arg); in process_dynamic_array()
2820 process_dynamic_array_len(struct tep_event *event, struct tep_print_arg *arg, in process_dynamic_array_len() argument
2830 arg->type = TEP_PRINT_DYNAMIC_ARRAY_LEN; in process_dynamic_array_len()
2837 arg->dynarray.field = field; in process_dynamic_array_len()
2838 arg->dynarray.index = 0; in process_dynamic_array_len()
2857 process_paren(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_paren() argument
2863 type = process_arg(event, arg, &token); in process_paren()
2869 type = process_op(event, arg, &token); in process_paren()
2890 if (arg->type != TEP_PRINT_ATOM) { in process_paren()
2902 arg->type = TEP_PRINT_TYPE; in process_paren()
2903 arg->typecast.type = arg->atom.atom; in process_paren()
2904 arg->typecast.item = item_arg; in process_paren()
2920 process_str(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_str() argument
2929 arg->type = TEP_PRINT_STRING; in process_str()
2930 arg->string.string = token; in process_str()
2931 arg->string.offset = -1; in process_str()
2949 process_bitmask(struct tep_event *event __maybe_unused, struct tep_print_arg *arg, in process_bitmask() argument
2958 arg->type = TEP_PRINT_BITMASK; in process_bitmask()
2959 arg->bitmask.bitmask = token; in process_bitmask()
2960 arg->bitmask.offset = -1; in process_bitmask()
3011 struct tep_print_arg *arg, char **tok) in process_func_handler() argument
3019 arg->type = TEP_PRINT_FUNC; in process_func_handler()
3020 arg->func.func = func; in process_func_handler()
3024 next_arg = &(arg->func.args); in process_func_handler()
3068 process_builtin_expect(struct tep_event *event, struct tep_print_arg *arg, char **tok) in process_builtin_expect() argument
3074 type = process_arg(event, arg, &token); in process_builtin_expect()
3099 process_function(struct tep_event *event, struct tep_print_arg *arg, in process_function() argument
3107 return process_flags(event, arg, tok); in process_function()
3112 return process_symbols(event, arg, tok); in process_function()
3116 return process_hex(event, arg, tok); in process_function()
3120 return process_hex_str(event, arg, tok); in process_function()
3124 return process_int_array(event, arg, tok); in process_function()
3128 return process_str(event, arg, tok); in process_function()
3132 return process_bitmask(event, arg, tok); in process_function()
3136 return process_dynamic_array(event, arg, tok); in process_function()
3140 return process_dynamic_array_len(event, arg, tok); in process_function()
3144 return process_builtin_expect(event, arg, tok); in process_function()
3150 return process_func_handler(event, func, arg, tok); in process_function()
3159 process_arg_token(struct tep_event *event, struct tep_print_arg *arg, in process_arg_token() argument
3171 type = process_entry(event, arg, &token); in process_arg_token()
3186 type = process_function(event, arg, atom, &token); in process_arg_token()
3204 arg->type = TEP_PRINT_ATOM; in process_arg_token()
3205 arg->atom.atom = atom; in process_arg_token()
3210 arg->type = TEP_PRINT_ATOM; in process_arg_token()
3211 arg->atom.atom = token; in process_arg_token()
3217 type = process_paren(event, arg, &token); in process_arg_token()
3222 arg->type = TEP_PRINT_OP; in process_arg_token()
3223 arg->op.op = token; in process_arg_token()
3224 arg->op.left = NULL; in process_arg_token()
3225 type = process_op(event, arg, &token); in process_arg_token()
3229 arg->op.op = NULL; in process_arg_token()
3247 struct tep_print_arg *arg; in event_read_print_args() local
3257 arg = alloc_arg(); in event_read_print_args()
3258 if (!arg) { in event_read_print_args()
3264 type = process_arg(event, arg, &token); in event_read_print_args()
3268 free_arg(arg); in event_read_print_args()
3272 *list = arg; in event_read_print_args()
3276 type = process_op(event, arg, &token); in event_read_print_args()
3280 free_arg(arg); in event_read_print_args()
3283 list = &arg->next; in event_read_print_args()
3289 *list = arg; in event_read_print_args()
3290 list = &arg->next; in event_read_print_args()
3633 eval_num_arg(void *data, int size, struct tep_event *event, struct tep_print_arg *arg) in eval_num_arg() argument
3643 switch (arg->type) { in eval_num_arg()
3648 return strtoull(arg->atom.atom, NULL, 0); in eval_num_arg()
3650 if (!arg->field.field) { in eval_num_arg()
3651 arg->field.field = tep_find_any_field(event, arg->field.name); in eval_num_arg()
3652 if (!arg->field.field) in eval_num_arg()
3657 val = tep_read_number(tep, data + arg->field.field->offset, in eval_num_arg()
3658 arg->field.field->size); in eval_num_arg()
3667 val = eval_num_arg(data, size, event, arg->typecast.item); in eval_num_arg()
3668 return eval_type(val, arg, 0); in eval_num_arg()
3676 val = process_defined_func(&s, data, size, event, arg); in eval_num_arg()
3681 if (strcmp(arg->op.op, "[") == 0) { in eval_num_arg()
3686 right = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3689 larg = arg->op.left; in eval_num_arg()
3719 arg = larg; in eval_num_arg()
3735 } else if (strcmp(arg->op.op, "?") == 0) { in eval_num_arg()
3736 left = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3737 arg = arg->op.right; in eval_num_arg()
3739 val = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3741 val = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3745 left = eval_num_arg(data, size, event, arg->op.left); in eval_num_arg()
3746 right = eval_num_arg(data, size, event, arg->op.right); in eval_num_arg()
3747 switch (arg->op.op[0]) { in eval_num_arg()
3749 switch (arg->op.op[1]) { in eval_num_arg()
3764 if (arg->op.op[1]) in eval_num_arg()
3770 if (arg->op.op[1]) in eval_num_arg()
3776 switch (arg->op.op[1]) { in eval_num_arg()
3791 switch (arg->op.op[1]) { in eval_num_arg()
3806 if (arg->op.op[1] != '=') in eval_num_arg()
3832 data + arg->dynarray.field->offset, in eval_num_arg()
3833 arg->dynarray.field->size); in eval_num_arg()
3844 data + arg->dynarray.field->offset, in eval_num_arg()
3845 arg->dynarray.field->size); in eval_num_arg()
3860 do_warning_event(event, "%s: unknown op '%s'", __func__, arg->op.op); in eval_num_arg()
3865 __func__, arg->field.name); in eval_num_arg()
3974 int len_arg, struct tep_print_arg *arg) in print_str_arg() argument
3987 switch (arg->type) { in print_str_arg()
3992 print_str_to_seq(s, format, len_arg, arg->atom.atom); in print_str_arg()
3995 field = arg->field.field; in print_str_arg()
3997 field = tep_find_any_field(event, arg->field.name); in print_str_arg()
3999 str = arg->field.name; in print_str_arg()
4002 arg->field.field = field; in print_str_arg()
4052 val = eval_num_arg(data, size, event, arg->flags.field); in print_str_arg()
4054 for (flag = arg->flags.flags; flag; flag = flag->next) { in print_str_arg()
4061 if (print && arg->flags.delim) in print_str_arg()
4062 trace_seq_puts(s, arg->flags.delim); in print_str_arg()
4069 if (print && arg->flags.delim) in print_str_arg()
4070 trace_seq_puts(s, arg->flags.delim); in print_str_arg()
4075 val = eval_num_arg(data, size, event, arg->symbol.field); in print_str_arg()
4076 for (flag = arg->symbol.symbols; flag; flag = flag->next) { in print_str_arg()
4088 if (arg->hex.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4091 data + arg->hex.field->dynarray.field->offset, in print_str_arg()
4092 arg->hex.field->dynarray.field->size); in print_str_arg()
4095 field = arg->hex.field->field.field; in print_str_arg()
4097 str = arg->hex.field->field.name; in print_str_arg()
4101 arg->hex.field->field.field = field; in print_str_arg()
4105 len = eval_num_arg(data, size, event, arg->hex.size); in print_str_arg()
4107 if (i && arg->type == TEP_PRINT_HEX) in print_str_arg()
4117 if (arg->int_array.field->type == TEP_PRINT_DYNAMIC_ARRAY) { in print_str_arg()
4120 arg->int_array.field->dynarray.field; in print_str_arg()
4126 field = arg->int_array.field->field.field; in print_str_arg()
4128 str = arg->int_array.field->field.name; in print_str_arg()
4132 arg->int_array.field->field.field = field; in print_str_arg()
4136 len = eval_num_arg(data, size, event, arg->int_array.count); in print_str_arg()
4138 arg->int_array.el_size); in print_str_arg()
4166 if (arg->string.offset == -1) { in print_str_arg()
4169 f = tep_find_any_field(event, arg->string.string); in print_str_arg()
4170 arg->string.offset = f->offset; in print_str_arg()
4172 str_offset = data2host4(tep, *(unsigned int *)(data + arg->string.offset)); in print_str_arg()
4178 print_str_to_seq(s, format, len_arg, arg->string.string); in print_str_arg()
4184 if (arg->bitmask.offset == -1) { in print_str_arg()
4187 f = tep_find_any_field(event, arg->bitmask.bitmask); in print_str_arg()
4188 arg->bitmask.offset = f->offset; in print_str_arg()
4190 bitmask_offset = data2host4(tep, *(unsigned int *)(data + arg->bitmask.offset)); in print_str_arg()
4201 if (arg->op.op[0] != '?') in print_str_arg()
4203 val = eval_num_arg(data, size, event, arg->op.left); in print_str_arg()
4206 format, len_arg, arg->op.right->op.left); in print_str_arg()
4209 format, len_arg, arg->op.right->op.right); in print_str_arg()
4212 process_defined_func(s, data, size, event, arg); in print_str_arg()
4223 __func__, arg->field.name); in print_str_arg()
4228 struct tep_event *event, struct tep_print_arg *arg) in process_defined_func() argument
4230 struct tep_function_handler *func_handle = arg->func.func; in process_defined_func()
4247 farg = arg->func.args; in process_defined_func()
4327 struct tep_print_arg *args, *arg, **next; in make_bprint_args() local
4362 arg = args; in make_bprint_args()
4363 arg->next = NULL; in make_bprint_args()
4364 next = &arg->next; in make_bprint_args()
4366 arg->type = TEP_PRINT_ATOM; in make_bprint_args()
4368 if (asprintf(&arg->atom.atom, "%lld", ip) < 0) in make_bprint_args()
4460 arg = alloc_arg(); in make_bprint_args()
4461 if (!arg) { in make_bprint_args()
4466 arg->next = NULL; in make_bprint_args()
4467 arg->type = TEP_PRINT_ATOM; in make_bprint_args()
4468 if (asprintf(&arg->atom.atom, "%lld", val) < 0) { in make_bprint_args()
4469 free(arg); in make_bprint_args()
4472 *next = arg; in make_bprint_args()
4473 next = &arg->next; in make_bprint_args()
4484 arg = alloc_arg(); in make_bprint_args()
4485 if (!arg) { in make_bprint_args()
4490 arg->next = NULL; in make_bprint_args()
4491 arg->type = TEP_PRINT_BSTRING; in make_bprint_args()
4492 arg->string.string = strdup(bptr); in make_bprint_args()
4493 if (!arg->string.string) in make_bprint_args()
4496 *next = arg; in make_bprint_args()
4497 next = &arg->next; in make_bprint_args()
4549 struct tep_print_arg *arg) in print_mac_arg() argument
4556 if (arg->type == TEP_PRINT_FUNC) { in print_mac_arg()
4557 process_defined_func(s, data, size, event, arg); in print_mac_arg()
4561 if (arg->type != TEP_PRINT_FIELD) { in print_mac_arg()
4563 arg->type); in print_mac_arg()
4578 if (!arg->field.field) { in print_mac_arg()
4579 arg->field.field = in print_mac_arg()
4580 tep_find_any_field(event, arg->field.name); in print_mac_arg()
4581 if (!arg->field.field) { in print_mac_arg()
4583 __func__, arg->field.name); in print_mac_arg()
4587 if (arg->field.field->size != 6) { in print_mac_arg()
4592 buf = data + arg->field.field->offset; in print_mac_arg()
4756 struct tep_print_arg *arg) in print_ipv4_arg() argument
4764 if (arg->type == TEP_PRINT_FUNC) { in print_ipv4_arg()
4765 process_defined_func(s, data, size, event, arg); in print_ipv4_arg()
4769 if (arg->type != TEP_PRINT_FIELD) { in print_ipv4_arg()
4770 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipv4_arg()
4774 if (!arg->field.field) { in print_ipv4_arg()
4775 arg->field.field = in print_ipv4_arg()
4776 tep_find_any_field(event, arg->field.name); in print_ipv4_arg()
4777 if (!arg->field.field) { in print_ipv4_arg()
4779 __func__, arg->field.name); in print_ipv4_arg()
4784 buf = data + arg->field.field->offset; in print_ipv4_arg()
4786 if (arg->field.field->size != 4) { in print_ipv4_arg()
4798 struct tep_print_arg *arg) in print_ipv6_arg() argument
4811 if (arg->type == TEP_PRINT_FUNC) { in print_ipv6_arg()
4812 process_defined_func(s, data, size, event, arg); in print_ipv6_arg()
4816 if (arg->type != TEP_PRINT_FIELD) { in print_ipv6_arg()
4817 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipv6_arg()
4821 if (!arg->field.field) { in print_ipv6_arg()
4822 arg->field.field = in print_ipv6_arg()
4823 tep_find_any_field(event, arg->field.name); in print_ipv6_arg()
4824 if (!arg->field.field) { in print_ipv6_arg()
4826 __func__, arg->field.name); in print_ipv6_arg()
4831 buf = data + arg->field.field->offset; in print_ipv6_arg()
4833 if (arg->field.field->size != 16) { in print_ipv6_arg()
4848 struct tep_print_arg *arg) in print_ipsa_arg() argument
4874 if (arg->type == TEP_PRINT_FUNC) { in print_ipsa_arg()
4875 process_defined_func(s, data, size, event, arg); in print_ipsa_arg()
4879 if (arg->type != TEP_PRINT_FIELD) { in print_ipsa_arg()
4880 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_ipsa_arg()
4884 if (!arg->field.field) { in print_ipsa_arg()
4885 arg->field.field = in print_ipsa_arg()
4886 tep_find_any_field(event, arg->field.name); in print_ipsa_arg()
4887 if (!arg->field.field) { in print_ipsa_arg()
4889 __func__, arg->field.name); in print_ipsa_arg()
4894 sa = (struct sockaddr_storage *) (data + arg->field.field->offset); in print_ipsa_arg()
4899 if (arg->field.field->size < sizeof(struct sockaddr_in)) { in print_ipsa_arg()
4912 if (arg->field.field->size < sizeof(struct sockaddr_in6)) { in print_ipsa_arg()
4935 struct tep_print_arg *arg) in print_ip_arg() argument
4945 rc += print_ipv4_arg(s, ptr + 1, i, data, size, event, arg); in print_ip_arg()
4948 rc += print_ipv6_arg(s, ptr + 1, i, data, size, event, arg); in print_ip_arg()
4951 rc += print_ipsa_arg(s, ptr + 1, i, data, size, event, arg); in print_ip_arg()
4965 struct tep_print_arg *arg) in print_uuid_arg() argument
4989 if (arg->type == TEP_PRINT_FUNC) { in print_uuid_arg()
4990 process_defined_func(s, data, size, event, arg); in print_uuid_arg()
4994 if (arg->type != TEP_PRINT_FIELD) { in print_uuid_arg()
4995 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_uuid_arg()
4999 if (!arg->field.field) { in print_uuid_arg()
5000 arg->field.field = in print_uuid_arg()
5001 tep_find_any_field(event, arg->field.name); in print_uuid_arg()
5002 if (!arg->field.field) { in print_uuid_arg()
5004 __func__, arg->field.name); in print_uuid_arg()
5009 if (arg->field.field->size != 16) { in print_uuid_arg()
5014 buf = data + arg->field.field->offset; in print_uuid_arg()
5033 struct tep_print_arg *arg, int print_len) in print_raw_buff_arg() argument
5058 if (arg->type == TEP_PRINT_FUNC) { in print_raw_buff_arg()
5059 process_defined_func(s, data, size, event, arg); in print_raw_buff_arg()
5063 if (arg->type != TEP_PRINT_DYNAMIC_ARRAY) { in print_raw_buff_arg()
5064 trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", arg->type); in print_raw_buff_arg()
5069 data + arg->dynarray.field->offset, in print_raw_buff_arg()
5070 arg->dynarray.field->size); in print_raw_buff_arg()
5177 struct tep_print_arg *arg) in print_function() argument
5182 val = eval_num_arg(data, size, event, arg); in print_function()
5200 struct tep_event *event, struct tep_print_arg *arg) in print_arg_pointer() argument
5205 if (arg->type == TEP_PRINT_BSTRING) { in print_arg_pointer()
5206 trace_seq_puts(s, arg->string.string); in print_arg_pointer()
5222 ret += print_function(s, format, data, size, event, arg); in print_arg_pointer()
5226 ret += print_mac_arg(s, format, data, size, event, arg); in print_arg_pointer()
5230 ret += print_ip_arg(s, format, data, size, event, arg); in print_arg_pointer()
5233 ret += print_uuid_arg(s, format, data, size, event, arg); in print_arg_pointer()
5236 ret += print_raw_buff_arg(s, format, data, size, event, arg, plen); in print_arg_pointer()
5240 val = eval_num_arg(data, size, event, arg); in print_arg_pointer()
5251 struct tep_event *event, struct tep_print_arg *arg) in print_arg_number() argument
5255 val = eval_num_arg(data, size, event, arg); in print_arg_number()
5298 struct tep_event *event, struct tep_print_arg *arg) in print_arg_string() argument
5305 format, plen, arg); in print_arg_string()
5409 static void free_parse_args(struct tep_print_parse *arg) in free_parse_args() argument
5413 while (arg) { in free_parse_args()
5414 del = arg; in free_parse_args()
5415 arg = del->next; in free_parse_args()
5423 struct tep_print_arg *arg, in parse_arg_add() argument
5436 parg->arg = arg; in parse_arg_add()
5451 const char *format, struct tep_print_arg **arg) in parse_arg_format() argument
5485 if (!*arg) { in parse_arg_format()
5495 len_arg = *arg; in parse_arg_format()
5496 *arg = (*arg)->next; in parse_arg_format()
5499 if (!*arg) { in parse_arg_format()
5521 PRINT_FMT_ARG_POINTER, *arg, len_arg, ls); in parse_arg_format()
5522 *arg = (*arg)->next; in parse_arg_format()
5531 if (!*arg) { in parse_arg_format()
5563 PRINT_FMT_ARG_DIGIT, *arg, len_arg, ls); in parse_arg_format()
5564 *arg = (*arg)->next; in parse_arg_format()
5568 if (!*arg) { in parse_arg_format()
5588 PRINT_FMT_ARG_STRING, *arg, len_arg, 0); in parse_arg_format()
5589 *arg = (*arg)->next; in parse_arg_format()
5654 parse_args(struct tep_event *event, const char *format, struct tep_print_arg *arg) in parse_args() argument
5666 ret = parse_arg_format(parse, event, format, &arg); in parse_args()
5693 size, parse->ls, event, parse->arg); in print_event_cache()
5698 data, size, event, parse->arg); in print_event_cache()
5703 data, size, event, parse->arg); in print_event_cache()
6081 const char *arg, struct print_event_type *type) in print_string() argument
6086 if (strncmp(arg, TEP_PRINT_LATENCY, strlen(TEP_PRINT_LATENCY)) == 0) { in print_string()
6088 } else if (strncmp(arg, TEP_PRINT_COMM, strlen(TEP_PRINT_COMM)) == 0) { in print_string()
6092 } else if (strncmp(arg, TEP_PRINT_INFO_RAW, strlen(TEP_PRINT_INFO_RAW)) == 0) { in print_string()
6094 } else if (strncmp(arg, TEP_PRINT_INFO, strlen(TEP_PRINT_INFO)) == 0) { in print_string()
6096 } else if (strncmp(arg, TEP_PRINT_NAME, strlen(TEP_PRINT_NAME)) == 0) { in print_string()
6099 trace_seq_printf(s, "[UNKNOWN TEP TYPE %s]", arg); in print_string()
6106 int arg, struct print_event_type *type) in print_int() argument
6110 switch (arg) { in print_int()
6813 struct tep_print_arg *arg, **list; in parse_format() local
6818 arg = alloc_arg(); in parse_format()
6819 if (!arg) { in parse_format()
6823 arg->type = TEP_PRINT_FIELD; in parse_format()
6824 arg->field.name = strdup(field->name); in parse_format()
6825 if (!arg->field.name) { in parse_format()
6827 free_arg(arg); in parse_format()
6830 arg->field.field = field; in parse_format()
6831 *list = arg; in parse_format()
6832 list = &arg->next; in parse_format()