Lines Matching refs:sc

343 	struct syscall_tp	sc;  member
369 return &et->sc; in __evsel__syscall_tp()
434 ({ struct syscall_tp *sc = __evsel__syscall_tp(evsel);\
435 evsel__init_tp_uint_field(evsel, &sc->name, #name); })
448 ({ struct syscall_tp *sc = __evsel__syscall_tp(evsel);\
449 evsel__init_tp_ptr_field(evsel, &sc->name, #name); })
459 struct syscall_tp *sc = evsel__syscall_tp(evsel); in evsel__init_syscall_tp() local
461 if (sc != NULL) { in evsel__init_syscall_tp()
462 if (evsel__init_tp_uint_field(evsel, &sc->id, "__syscall_nr") && in evsel__init_syscall_tp()
463 evsel__init_tp_uint_field(evsel, &sc->id, "nr")) in evsel__init_syscall_tp()
474 struct syscall_tp *sc = evsel__syscall_tp(evsel); in evsel__init_augmented_syscall_tp() local
476 if (sc != NULL) { in evsel__init_augmented_syscall_tp()
481 __tp_field__init_uint(&sc->id, syscall_id->size, syscall_id->offset, evsel->needs_swap)) in evsel__init_augmented_syscall_tp()
492 struct syscall_tp *sc = __evsel__syscall_tp(evsel); in evsel__init_augmented_syscall_tp_args() local
494 return __tp_field__init_ptr(&sc->args, sc->id.offset + sizeof(u64)); in evsel__init_augmented_syscall_tp_args()
499 struct syscall_tp *sc = __evsel__syscall_tp(evsel); in evsel__init_augmented_syscall_tp_ret() local
501 …return __tp_field__init_uint(&sc->ret, sizeof(u64), sc->id.offset + sizeof(u64), evsel->needs_swap… in evsel__init_augmented_syscall_tp_ret()
2025 static int syscall__alloc_arg_fmts(struct syscall *sc, int nr_args) in syscall__alloc_arg_fmts() argument
2029 if (nr_args == RAW_SYSCALL_ARGS_NUM && sc->fmt && sc->fmt->nr_args != 0) in syscall__alloc_arg_fmts()
2030 nr_args = sc->fmt->nr_args; in syscall__alloc_arg_fmts()
2032 sc->arg_fmt = calloc(nr_args, sizeof(*sc->arg_fmt)); in syscall__alloc_arg_fmts()
2033 if (sc->arg_fmt == NULL) in syscall__alloc_arg_fmts()
2037 if (sc->fmt) in syscall__alloc_arg_fmts()
2038 sc->arg_fmt[idx] = sc->fmt->arg[idx]; in syscall__alloc_arg_fmts()
2041 sc->nr_args = nr_args; in syscall__alloc_arg_fmts()
2130 static int syscall__set_arg_fmts(struct syscall *sc) in syscall__set_arg_fmts() argument
2132 struct tep_format_field *last_field = syscall_arg_fmt__init_array(sc->arg_fmt, sc->args, in syscall__set_arg_fmts()
2133 &sc->use_btf); in syscall__set_arg_fmts()
2136 sc->args_size = last_field->offset + last_field->size; in syscall__set_arg_fmts()
2141 static int syscall__read_info(struct syscall *sc, struct trace *trace) in syscall__read_info() argument
2147 if (sc->nonexistent) in syscall__read_info()
2150 if (sc->name) { in syscall__read_info()
2155 name = syscalltbl__name(sc->e_machine, sc->id); in syscall__read_info()
2157 sc->nonexistent = true; in syscall__read_info()
2161 sc->name = name; in syscall__read_info()
2162 sc->fmt = syscall_fmt__find(sc->name); in syscall__read_info()
2164 snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->name); in syscall__read_info()
2165 sc->tp_format = trace_event__tp_format("syscalls", tp_name); in syscall__read_info()
2167 if (IS_ERR(sc->tp_format) && sc->fmt && sc->fmt->alias) { in syscall__read_info()
2168 snprintf(tp_name, sizeof(tp_name), "sys_enter_%s", sc->fmt->alias); in syscall__read_info()
2169 sc->tp_format = trace_event__tp_format("syscalls", tp_name); in syscall__read_info()
2176 if (IS_ERR(sc->tp_format)) { in syscall__read_info()
2177 sc->nonexistent = true; in syscall__read_info()
2178 err = PTR_ERR(sc->tp_format); in syscall__read_info()
2179 sc->tp_format = NULL; in syscall__read_info()
2187 if (syscall__alloc_arg_fmts(sc, sc->tp_format->format.nr_fields - 1)) in syscall__read_info()
2190 sc->args = sc->tp_format->format.fields; in syscall__read_info()
2196 if (sc->args && (!strcmp(sc->args->name, "__syscall_nr") || !strcmp(sc->args->name, "nr"))) { in syscall__read_info()
2197 sc->args = sc->args->next; in syscall__read_info()
2198 --sc->nr_args; in syscall__read_info()
2201 sc->is_exit = !strcmp(name, "exit_group") || !strcmp(name, "exit"); in syscall__read_info()
2202 sc->is_open = !strcmp(name, "open") || !strcmp(name, "openat"); in syscall__read_info()
2204 err = syscall__set_arg_fmts(sc); in syscall__read_info()
2207 if (sc->use_btf) in syscall__read_info()
2254 const char *sc = pos->s; in trace__validate_ev_qualifier() local
2259 int id = syscalltbl__id(EM_HOST, sc), match_next = -1; in trace__validate_ev_qualifier()
2262 id = syscalltbl__strglobmatch_first(EM_HOST, sc, &match_next); in trace__validate_ev_qualifier()
2273 pr_debug("%s", sc); in trace__validate_ev_qualifier()
2282 id = syscalltbl__strglobmatch_next(EM_HOST, sc, &match_next); in trace__validate_ev_qualifier()
2347 static size_t syscall__scnprintf_name(struct syscall *sc, char *bf, size_t size, in syscall__scnprintf_name() argument
2350 if (sc->arg_fmt && sc->arg_fmt[arg->idx].name) in syscall__scnprintf_name()
2351 return scnprintf(bf, size, "%s: ", sc->arg_fmt[arg->idx].name); in syscall__scnprintf_name()
2381 static size_t syscall__scnprintf_args(struct syscall *sc, char *bf, size_t size, in syscall__scnprintf_args() argument
2410 if (sc->args != NULL) { in syscall__scnprintf_args()
2413 for (field = sc->args; field; in syscall__scnprintf_args()
2418 arg.fmt = &sc->arg_fmt[arg.idx]; in syscall__scnprintf_args()
2424 val = syscall_arg_fmt__mask_val(&sc->arg_fmt[arg.idx], &arg, val); in syscall__scnprintf_args()
2434 !(sc->arg_fmt && sc->arg_fmt[arg.idx].show_zero) && in syscall__scnprintf_args()
2435 !(sc->arg_fmt && sc->arg_fmt[arg.idx].strtoul == STUL_BTF_TYPE)) in syscall__scnprintf_args()
2443 default_scnprintf = sc->arg_fmt[arg.idx].scnprintf; in syscall__scnprintf_args()
2454 printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx], in syscall__scnprintf_args()
2457 } else if (IS_ERR(sc->tp_format)) { in syscall__scnprintf_args()
2463 while (arg.idx < sc->nr_args) { in syscall__scnprintf_args()
2469 printed += syscall__scnprintf_name(sc, bf + printed, size - printed, &arg); in syscall__scnprintf_args()
2470 …printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx], bf + printed, size - printed, &ar… in syscall__scnprintf_args()
2482 struct syscall *sc = zalloc(sizeof(*sc)); in syscall__new() local
2484 if (!sc) in syscall__new()
2487 sc->e_machine = e_machine; in syscall__new()
2488 sc->id = id; in syscall__new()
2489 return sc; in syscall__new()
2492 static void syscall__delete(struct syscall *sc) in syscall__delete() argument
2494 if (!sc) in syscall__delete()
2497 free(sc->arg_fmt); in syscall__delete()
2498 free(sc); in syscall__delete()
2528 struct syscall *sc, **tmp; in trace__find_syscall() local
2540 sc = syscall__new(e_machine, id); in trace__find_syscall()
2541 if (!sc) in trace__find_syscall()
2547 syscall__delete(sc); in trace__find_syscall()
2552 trace->syscalls.table[trace->syscalls.table_size++] = sc; in trace__find_syscall()
2555 return sc; in trace__find_syscall()
2565 struct syscall *sc; in trace__syscall_info() local
2590 sc = trace__find_syscall(trace, e_machine, id); in trace__syscall_info()
2591 if (sc) in trace__syscall_info()
2592 err = syscall__read_info(sc, trace); in trace__syscall_info()
2599 if (sc && sc->name) in trace__syscall_info()
2600 fprintf(trace->output, "(%s)", sc->name); in trace__syscall_info()
2603 return err ? NULL : sc; in trace__syscall_info()
2716 static void *syscall__augmented_args(struct syscall *sc, struct perf_sample *sample, int *augmented… in syscall__augmented_args() argument
2732 int args_size = raw_augmented_args_size ?: sc->args_size; in syscall__augmented_args()
2766 struct syscall *sc; in trace__sys_enter() local
2771 sc = trace__syscall_info(trace, evsel, e_machine, id); in trace__sys_enter()
2772 if (sc == NULL) in trace__sys_enter()
2801 …augmented_args = syscall__augmented_args(sc, sample, &augmented_args_size, trace->raw_augmented_sy… in trace__sys_enter()
2804 printed += scnprintf(msg + printed, trace__entry_str_size - printed, "%s(", sc->name); in trace__sys_enter()
2806 printed += syscall__scnprintf_args(sc, msg + printed, trace__entry_str_size - printed, in trace__sys_enter()
2809 if (sc->is_exit) { in trace__sys_enter()
2841 struct syscall *sc; in trace__fprintf_sys_enter() local
2850 sc = trace__syscall_info(trace, evsel, e_machine, id); in trace__fprintf_sys_enter()
2851 if (sc == NULL) in trace__fprintf_sys_enter()
2862 …augmented_args = syscall__augmented_args(sc, sample, &augmented_args_size, trace->raw_augmented_sy… in trace__fprintf_sys_enter()
2863 …printed += syscall__scnprintf_args(sc, msg, sizeof(msg), args, augmented_args, augmented_args_size… in trace__fprintf_sys_enter()
2911 struct syscall *sc; in trace__sys_exit() local
2916 sc = trace__syscall_info(trace, evsel, e_machine, id); in trace__sys_exit()
2917 if (sc == NULL) in trace__sys_exit()
2930 if (!trace->fd_path_disabled && sc->is_open && ret >= 0 && ttrace->filename.pending_open) { in trace__sys_exit()
2966 printed += fprintf(trace->output, "]: %s()", sc->name); in trace__sys_exit()
2978 if (sc->fmt == NULL) { in trace__sys_exit()
2992 } else if (ret == 0 && sc->fmt->timeout) in trace__sys_exit()
3004 } else if (sc->fmt->hexret) in trace__sys_exit()
3006 else if (sc->fmt->errpid) { in trace__sys_exit()
3267 struct syscall *sc = trace__syscall_info(trace, evsel, e_machine, id); in trace__event_handler() local
3269 if (sc) { in trace__event_handler()
3270 fprintf(trace->output, "%s(", sc->name); in trace__event_handler()
3726 struct syscall *sc, in trace__find_syscall_bpf_prog() argument
3733 scnprintf(default_prog_name, sizeof(default_prog_name), "tp/syscalls/sys_%s_%s", type, sc->name); in trace__find_syscall_bpf_prog()
3737 if (sc->fmt && sc->fmt->alias) { in trace__find_syscall_bpf_prog()
3738 …scnprintf(default_prog_name, sizeof(default_prog_name), "tp/syscalls/sys_%s_%s", type, sc->fmt->al… in trace__find_syscall_bpf_prog()
3754 prog_name, type, sc->name); in trace__find_syscall_bpf_prog()
3761 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id); in trace__init_syscall_bpf_progs() local
3763 if (sc == NULL) in trace__init_syscall_bpf_progs()
3766sc->bpf_prog.sys_enter = trace__find_syscall_bpf_prog(trace, sc, sc->fmt ? sc->fmt->bpf_prog_name.… in trace__init_syscall_bpf_progs()
3767sc->bpf_prog.sys_exit = trace__find_syscall_bpf_prog(trace, sc, sc->fmt ? sc->fmt->bpf_prog_name.… in trace__init_syscall_bpf_progs()
3772 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id); in trace__bpf_prog_sys_enter_fd() local
3773 return sc ? bpf_program__fd(sc->bpf_prog.sys_enter) : bpf_program__fd(unaugmented_prog); in trace__bpf_prog_sys_enter_fd()
3778 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id); in trace__bpf_prog_sys_exit_fd() local
3779 return sc ? bpf_program__fd(sc->bpf_prog.sys_exit) : bpf_program__fd(unaugmented_prog); in trace__bpf_prog_sys_exit_fd()
3785 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, key); in trace__bpf_sys_enter_beauty_map() local
3791 if (sc == NULL) in trace__bpf_sys_enter_beauty_map()
3798 for (i = 0, field = sc->args; field; ++i, field = field->next) { in trace__bpf_sys_enter_beauty_map()
3800 if (!sc->arg_fmt[i].from_user) in trace__bpf_sys_enter_beauty_map()
3820 if (syscall_arg_fmt__cache_btf_struct(&sc->arg_fmt[i], trace->btf, name)) in trace__bpf_sys_enter_beauty_map()
3823 bt = sc->arg_fmt[i].type; in trace__bpf_sys_enter_beauty_map()
3847 for (j = 0, field_tmp = sc->args; field_tmp; ++j, field_tmp = field_tmp->next) { in trace__bpf_sys_enter_beauty_map()
3868 struct syscall *sc) in trace__find_usable_bpf_prog_entry() argument
3874 for (field = sc->args; field; field = field->next) { in trace__find_usable_bpf_prog_entry()
3882 for (int i = 0, num_idx = syscalltbl__num_idx(sc->e_machine); i < num_idx; ++i) { in trace__find_usable_bpf_prog_entry()
3883 int id = syscalltbl__id_at_idx(sc->e_machine, i); in trace__find_usable_bpf_prog_entry()
3884 struct syscall *pair = trace__syscall_info(trace, NULL, sc->e_machine, id); in trace__find_usable_bpf_prog_entry()
3888 if (pair == NULL || pair->id == sc->id || in trace__find_usable_bpf_prog_entry()
3892 for (field = sc->args, candidate_field = pair->args; in trace__find_usable_bpf_prog_entry()
3960 sc->name); in trace__find_usable_bpf_prog_entry()
4040 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, key); in trace__init_syscalls_bpf_prog_array_maps() local
4044 if (sc == NULL || sc->bpf_prog.sys_enter == NULL) in trace__init_syscalls_bpf_prog_array_maps()
4051 if (sc->bpf_prog.sys_enter != unaugmented_prog) in trace__init_syscalls_bpf_prog_array_maps()
4058 pair_prog = trace__find_usable_bpf_prog_entry(trace, sc); in trace__init_syscalls_bpf_prog_array_maps()
4062 sc->bpf_prog.sys_enter = pair_prog; in trace__init_syscalls_bpf_prog_array_maps()
4068 prog_fd = bpf_program__fd(sc->bpf_prog.sys_enter); in trace__init_syscalls_bpf_prog_array_maps()
4825 struct syscall *sc; in syscall__dump_stats() local
4852 sc = trace__syscall_info(trace, /*evsel=*/NULL, e_machine, entry->syscall); in syscall__dump_stats()
4853 if (!sc) in syscall__dump_stats()
4856 printed += fprintf(fp, " %-15s", sc->name); in syscall__dump_stats()
5112 struct syscall_tp *sc = __evsel__syscall_tp(evsel); in evlist__set_syscall_tp_fields() local
5114 if (__tp_field__init_ptr(&sc->args, sc->id.offset + sizeof(u64))) in evlist__set_syscall_tp_fields()
5120 struct syscall_tp *sc = __evsel__syscall_tp(evsel); in evlist__set_syscall_tp_fields() local
5122 if (__tp_field__init_uint(&sc->ret, sizeof(u64), in evlist__set_syscall_tp_fields()
5123 sc->id.offset + sizeof(u64), in evlist__set_syscall_tp_fields()
5646 struct syscall_tp *sc; in cmd_trace() local
5650 sc = __evsel__syscall_tp(evsel); in cmd_trace()
5671 trace.raw_augmented_syscalls_args_size = (6 + 1) * sizeof(long) + sc->id.offset; in cmd_trace()