Lines Matching defs:syscall

110  * for syscall args that goes from kernel to user space.
146 struct syscall **table;
1090 // Did we manage to find a BTF type for the syscall/tracepoint argument?
1464 * struct syscall
1466 struct syscall {
1474 * @args_size: sum of the sizes of the syscall arguments, anything
1491 * @nonexistent: Name lookup failed. Just a hole in the syscall table,
1492 * syscall id not allocated.
1504 * don't know what is the duration of a syscall, for instance, when we start
1505 * a session and some threads are waiting for a syscall to finish, say 'poll',
1529 * ret_scnprintf: syscall args may set this to a different syscall return
2033 static int syscall__alloc_arg_fmts(struct syscall *sc, int nr_args)
2079 * But it's not used by perf and confuses the syscall parameters.
2151 static int syscall__set_arg_fmts(struct syscall *sc)
2162 static int syscall__read_info(struct syscall *sc, struct trace *trace)
2207 * than the actual number of syscall arguments.
2215 * or 'nr' that mean the syscall number. It is needless here.
2374 static size_t syscall__scnprintf_name(struct syscall *sc, char *bf, size_t size,
2408 static size_t syscall__scnprintf_args(struct syscall *sc, char *bf, size_t size,
2448 * Some syscall args need some mask, most don't and
2507 static struct syscall *syscall__new(int e_machine, int id)
2509 struct syscall *sc = zalloc(sizeof(*sc));
2519 static void syscall__delete(struct syscall *sc)
2530 const struct syscall *a = key, *b = *((const struct syscall **)entry);
2540 const struct syscall *a = *((const struct syscall **)va);
2541 const struct syscall *b = *((const struct syscall **)vb);
2549 static struct syscall *trace__find_syscall(struct trace *trace, int e_machine, int id)
2551 struct syscall key = {
2555 struct syscall *sc, **tmp;
2558 struct syscall **sc_entry = bsearch(&key, trace->syscalls.table,
2589 static struct syscall *trace__syscall_info(struct trace *trace, struct evsel *evsel,
2592 struct syscall *sc;
2609 fprintf(trace->output, "Invalid syscall %d id, skipping (%s, %" PRIu64 ") ...\n",
2623 fprintf(trace->output, "Problems reading syscall %d: %m", id);
2741 static void *syscall__augmented_args(struct syscall *sc, struct perf_sample *sample, int *augmented_args_size, int raw_augmented_args_size)
2745 * and there we get all 6 syscall args plus the tracepoint common fields
2753 * copies only what we need for each syscall, like what happens when we
2755 * traffic to just what is needed for each syscall.
2791 struct syscall *sc;
2817 * arguments, even if the syscall being handled, say "openat", uses only 4 arguments
2819 * syscall->args_size using each syscalls:sys_enter_NAME tracefs format file,
2820 * so when handling, say the openat syscall, we end up getting 6 args for the
2866 struct syscall *sc;
2936 struct syscall *sc;
3231 * Some syscall args need some mask, most don't and
3294 struct syscall *sc = trace__syscall_info(trace, evsel, e_machine, id);
3304 * XXX: Not having the associated syscall info or not finding/adding
3687 * leading to the syscall, allow overriding that for
3753 struct syscall *sc,
3788 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id);
3799 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id);
3805 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, id);
3812 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, key);
3895 struct syscall *sc)
3911 struct syscall *pair = trace__syscall_info(trace, NULL, sc->e_machine, id);
3960 * Check if the tentative pair syscall augmenter has more pointers, if it has,
3975 * program for a filtered syscall on a non-filtered one.
4040 * syscall with an augmenter so that we can auto-reuse it.
4042 * I.e. if we have an augmenter for the "open" syscall that has
4048 * can reuse it for the 'creat' syscall, that has this signature:
4067 struct syscall *sc = trace__syscall_info(trace, NULL, e_machine, key);
4446 * the syscall ones go to the 'A' cgroup, the sched:sched_switch goes
4513 * If the "close" syscall is not traced, then we will not have the
4809 int syscall;
4838 entry[i].syscall = pos->key;
4852 struct syscall *sc;
4861 printed += fprintf(fp, " syscall calls errors total min avg max stddev\n");
4879 sc = trace__syscall_info(trace, /*evsel=*/NULL, e_machine, entry->syscall);
5409 "event/syscall selector. use 'perf list' to list available events",
5445 "Show only syscall summary with statistics"),
5449 "Show errno stats per syscall, use with -s or -S"),
5462 OPT_BOOLEAN(0, "kernel-syscall-graph", &trace.kernel_syscallchains,
5463 "Show the kernel callchains on the syscall exit path"),
5486 OPT_BOOLEAN(0, "bpf-summary", &trace.summary_bpf, "Summary syscall stats in BPF"),
5540 * tracepoint events, not in the strace-like syscall-name-based mode.
5653 * syscall.
5697 * 6 syscall args plus the tracepoint common
5708 * syscall, like what happens when we use
5711 * needed for each syscall.