Lines Matching refs:field

254 		u64 (*integer)(struct tp_field *field, struct perf_sample *sample);
255 void *(*pointer)(struct tp_field *field, struct perf_sample *sample);
260 static u64 tp_field__u##bits(struct tp_field *field, struct perf_sample *sample) \
263 memcpy(&value, sample->raw_data + field->offset, sizeof(value)); \
273 static u64 tp_field__swapped_u##bits(struct tp_field *field, struct perf_sample *sample) \
276 memcpy(&value, sample->raw_data + field->offset, sizeof(value)); \
284 static int __tp_field__init_uint(struct tp_field *field, int size, int offset, bool needs_swap) in __tp_field__init_uint() argument
286 field->offset = offset; in __tp_field__init_uint()
290 field->integer = tp_field__u8; in __tp_field__init_uint()
293 field->integer = needs_swap ? tp_field__swapped_u16 : tp_field__u16; in __tp_field__init_uint()
296 field->integer = needs_swap ? tp_field__swapped_u32 : tp_field__u32; in __tp_field__init_uint()
299 field->integer = needs_swap ? tp_field__swapped_u64 : tp_field__u64; in __tp_field__init_uint()
308 static int tp_field__init_uint(struct tp_field *field, struct tep_format_field *format_field, bool … in tp_field__init_uint() argument
310 return __tp_field__init_uint(field, format_field->size, format_field->offset, needs_swap); in tp_field__init_uint()
313 static void *tp_field__ptr(struct tp_field *field, struct perf_sample *sample) in tp_field__ptr() argument
315 return sample->raw_data + field->offset; in tp_field__ptr()
318 static int __tp_field__init_ptr(struct tp_field *field, int offset) in __tp_field__init_ptr() argument
320 field->offset = offset; in __tp_field__init_ptr()
321 field->pointer = tp_field__ptr; in __tp_field__init_ptr()
325 static int tp_field__init_ptr(struct tp_field *field, struct tep_format_field *format_field) in tp_field__init_ptr() argument
327 return __tp_field__init_ptr(field, format_field->offset); in tp_field__init_ptr()
423 static int evsel__init_tp_uint_field(struct evsel *evsel, struct tp_field *field, const char *name) in evsel__init_tp_uint_field() argument
430 return tp_field__init_uint(field, format_field, evsel->needs_swap); in evsel__init_tp_uint_field()
437 static int evsel__init_tp_ptr_field(struct evsel *evsel, struct tp_field *field, const char *name) in evsel__init_tp_ptr_field() argument
444 return tp_field__init_ptr(field, format_field); in evsel__init_tp_ptr_field()
2070 syscall_arg_fmt__init_array(struct syscall_arg_fmt *arg, struct tep_format_field *field, in syscall_arg_fmt__init_array() argument
2076 for (; field; field = field->next, ++arg) { in syscall_arg_fmt__init_array()
2077 last_field = field; in syscall_arg_fmt__init_array()
2082 len = strlen(field->name); in syscall_arg_fmt__init_array()
2085 if ((field->flags & TEP_FIELD_IS_POINTER) && strstarts(field->type, "const ")) in syscall_arg_fmt__init_array()
2088 if (strcmp(field->type, "const char *") == 0 && in syscall_arg_fmt__init_array()
2089 ((len >= 4 && strcmp(field->name + len - 4, "name") == 0) || in syscall_arg_fmt__init_array()
2090 strstr(field->name, "path") != NULL)) { in syscall_arg_fmt__init_array()
2092 } else if ((field->flags & TEP_FIELD_IS_POINTER) || strstr(field->name, "addr")) in syscall_arg_fmt__init_array()
2094 else if (strcmp(field->type, "pid_t") == 0) in syscall_arg_fmt__init_array()
2096 else if (strcmp(field->type, "umode_t") == 0) in syscall_arg_fmt__init_array()
2098 else if ((field->flags & TEP_FIELD_IS_ARRAY) && strstr(field->type, "char")) { in syscall_arg_fmt__init_array()
2100 arg->nr_entries = field->arraylen; in syscall_arg_fmt__init_array()
2101 } else if ((strcmp(field->type, "int") == 0 || in syscall_arg_fmt__init_array()
2102 strcmp(field->type, "unsigned int") == 0 || in syscall_arg_fmt__init_array()
2103 strcmp(field->type, "long") == 0) && in syscall_arg_fmt__init_array()
2104 len >= 2 && strcmp(field->name + len - 2, "fd") == 0) { in syscall_arg_fmt__init_array()
2113 } else if (strstr(field->type, "enum") && use_btf != NULL) { in syscall_arg_fmt__init_array()
2118 syscall_arg_fmt__find_by_name(field->name); in syscall_arg_fmt__init_array()
2411 struct tep_format_field *field; in syscall__scnprintf_args() local
2413 for (field = sc->args; field; in syscall__scnprintf_args()
2414 field = field->next, ++arg.idx, bit <<= 1) { in syscall__scnprintf_args()
2441 printed += scnprintf(bf + printed, size - printed, "%s: ", field->name); in syscall__scnprintf_args()
2447 size - printed, val, field->type); in syscall__scnprintf_args()
3168 struct tep_format_field *field = tp_format ? tp_format->format.fields : NULL; in trace__fprintf_tp_fields() local
3185 for (; field && arg; field = field->next, ++syscall_arg.idx, bit <<= 1, ++arg) { in trace__fprintf_tp_fields()
3191 if (field->flags & TEP_FIELD_IS_ARRAY) { in trace__fprintf_tp_fields()
3192 int offset = field->offset; in trace__fprintf_tp_fields()
3194 if (field->flags & TEP_FIELD_IS_DYNAMIC) { in trace__fprintf_tp_fields()
3195 offset = format_field__intval(field, sample, evsel->needs_swap); in trace__fprintf_tp_fields()
3198 if (tep_field_is_relative(field->flags)) in trace__fprintf_tp_fields()
3199 offset += field->offset + field->size; in trace__fprintf_tp_fields()
3204 val = format_field__intval(field, sample, evsel->needs_swap); in trace__fprintf_tp_fields()
3218 printed += scnprintf(bf + printed, size - printed, "%s: ", field->name); in trace__fprintf_tp_fields()
3220 …btf_printed = trace__btf_scnprintf(trace, &syscall_arg, bf + printed, size - printed, val, field->… in trace__fprintf_tp_fields()
3784 struct tep_format_field *field; in trace__bpf_sys_enter_beauty_map() local
3798 for (i = 0, field = sc->args; field; ++i, field = field->next) { in trace__bpf_sys_enter_beauty_map()
3803 struct_offset = strstr(field->type, "struct "); in trace__bpf_sys_enter_beauty_map()
3805 struct_offset = strstr(field->type, "union "); in trace__bpf_sys_enter_beauty_map()
3809 …if (field->flags & TEP_FIELD_IS_POINTER && struct_offset) { /* struct or union (think BPF's attr a… in trace__bpf_sys_enter_beauty_map()
3826 } else if (field->flags & TEP_FIELD_IS_POINTER && /* string */ in trace__bpf_sys_enter_beauty_map()
3827 strcmp(field->type, "const char *") == 0 && in trace__bpf_sys_enter_beauty_map()
3828 (strstr(field->name, "name") || in trace__bpf_sys_enter_beauty_map()
3829 strstr(field->name, "path") || in trace__bpf_sys_enter_beauty_map()
3830 strstr(field->name, "file") || in trace__bpf_sys_enter_beauty_map()
3831 strstr(field->name, "root") || in trace__bpf_sys_enter_beauty_map()
3832 strstr(field->name, "key") || in trace__bpf_sys_enter_beauty_map()
3833 strstr(field->name, "special") || in trace__bpf_sys_enter_beauty_map()
3834 strstr(field->name, "type") || in trace__bpf_sys_enter_beauty_map()
3835 strstr(field->name, "description"))) { in trace__bpf_sys_enter_beauty_map()
3838 } else if (field->flags & TEP_FIELD_IS_POINTER && /* buffer */ in trace__bpf_sys_enter_beauty_map()
3839 strstr(field->type, "char *") && in trace__bpf_sys_enter_beauty_map()
3840 (strstr(field->name, "buf") || in trace__bpf_sys_enter_beauty_map()
3841 strstr(field->name, "val") || in trace__bpf_sys_enter_beauty_map()
3842 strstr(field->name, "msg"))) { in trace__bpf_sys_enter_beauty_map()
3870 struct tep_format_field *field, *candidate_field; in trace__find_usable_bpf_prog_entry() local
3874 for (field = sc->args; field; field = field->next) { in trace__find_usable_bpf_prog_entry()
3875 if (field->flags & TEP_FIELD_IS_POINTER) in trace__find_usable_bpf_prog_entry()
3892 for (field = sc->args, candidate_field = pair->args; in trace__find_usable_bpf_prog_entry()
3893 field && candidate_field; field = field->next, candidate_field = candidate_field->next) { in trace__find_usable_bpf_prog_entry()
3894 bool is_pointer = field->flags & TEP_FIELD_IS_POINTER, in trace__find_usable_bpf_prog_entry()
3910 if (strcmp(field->type, candidate_field->type)) in trace__find_usable_bpf_prog_entry()
3918 if (strcmp(field->type, "const char *") == 0 && in trace__find_usable_bpf_prog_entry()
3919 !(strstr(field->name, "name") || in trace__find_usable_bpf_prog_entry()
3920 strstr(field->name, "path") || in trace__find_usable_bpf_prog_entry()
3921 strstr(field->name, "file") || in trace__find_usable_bpf_prog_entry()
3922 strstr(field->name, "root") || in trace__find_usable_bpf_prog_entry()
3923 strstr(field->name, "description"))) in trace__find_usable_bpf_prog_entry()
4221 for (const struct tep_format_field *field = tp_format->format.fields; field; in evsel__find_syscall_arg_fmt_by_name() local
4222 field = field->next, ++fmt) { in evsel__find_syscall_arg_fmt_by_name()
4223 if (strcmp(field->name, arg) == 0) { in evsel__find_syscall_arg_fmt_by_name()
4224 *type = field->type; in evsel__find_syscall_arg_fmt_by_name()