Lines Matching defs:syscall
123 struct syscall *table;
125 struct { // per syscall BPF_MAP_TYPE_PROG_ARRAY
1194 * args_size: sum of the sizes of the syscall arguments, anything after that is augmented stuff: pathname for openat, etc.
1195 * nonexistent: Just a hole in the syscall table, syscall id not allocated
1197 struct syscall {
1226 * don't know what is the duration of a syscall, for instance, when we start
1227 * a session and some threads are waiting for a syscall to finish, say 'poll',
1251 * ret_scnprintf: syscall args may set this to a different syscall return
1642 static int syscall__alloc_arg_fmts(struct syscall *sc, int nr_args)
1737 static int syscall__set_arg_fmts(struct syscall *sc)
1750 struct syscall *sc;
1761 // When using libaudit we don't know beforehand what is the max syscall id
1762 struct syscall *table = realloc(trace->syscalls.table, (id + 1) * sizeof(*sc));
1813 * or 'nr' that mean the syscall number. It is needless here.
1953 static size_t syscall__scnprintf_name(struct syscall *sc, char *bf, size_t size,
1987 static size_t syscall__scnprintf_args(struct syscall *sc, char *bf, size_t size,
2026 * Some syscall args need some mask, most don't and
2080 static struct syscall *trace__syscall_info(struct trace *trace,
2099 fprintf(trace->output, "Invalid syscall %d id, skipping (%s, %" PRIu64 ") ...\n",
2134 fprintf(trace->output, "Problems reading syscall %d: %d (%s)", id, -err, str_error_r(-err, sbuf, sizeof(sbuf)));
2249 static void *syscall__augmented_args(struct syscall *sc, struct perf_sample *sample, int *augmented_args_size, int raw_augmented_args_size)
2254 * and there we get all 6 syscall args plus the tracepoint common fields
2262 * copies only what we need for each syscall, like what happens when we
2264 * traffic to just what is needed for each syscall.
2286 struct syscall *sc = trace__syscall_info(trace, evsel, id);
2311 * arguments, even if the syscall being handled, say "openat", uses only 4 arguments
2313 * syscall->args_size using each syscalls:sys_enter_NAME tracefs format file,
2314 * so when handling, say the openat syscall, we end up getting 6 args for the
2360 struct syscall *sc = trace__syscall_info(trace, evsel, id);
2433 struct syscall *sc = trace__syscall_info(trace, evsel, id);
2721 * Some syscall args need some mask, most don't and
2791 struct syscall *sc = trace__syscall_info(trace, evsel, id);
2801 * XXX: Not having the associated syscall info or not finding/adding
3168 * leading to the syscall, allow overriding that for
3241 static struct bpf_program *trace__find_syscall_bpf_prog(struct trace *trace, struct syscall *sc,
3276 struct syscall *sc = trace__syscall_info(trace, NULL, id);
3287 struct syscall *sc = trace__syscall_info(trace, NULL, id);
3293 struct syscall *sc = trace__syscall_info(trace, NULL, id);
3299 struct syscall *sc = trace__syscall_info(trace, NULL, id);
3371 static struct bpf_program *trace__find_usable_bpf_prog_entry(struct trace *trace, struct syscall *sc)
3388 struct syscall *pair = trace__syscall_info(trace, NULL, id);
3424 * Check if the tentative pair syscall augmenter has more pointers, if it has,
3439 * program for a filtered syscall on a non-filtered one.
3487 * syscall with an augmenter so that we can auto-reuse it.
3489 * I.e. if we have an augmenter for the "open" syscall that has
3495 * can reuse it for the 'creat' syscall, that has this signature:
3513 struct syscall *sc = trace__syscall_info(trace, NULL, key);
3951 * the syscall ones go to the 'A' cgroup, the sched:sched_switch goes
4022 * If the "close" syscall is not traced, then we will not have the
4299 int syscall;
4305 entry->syscall = source->i;
4314 struct syscall *sc;
4323 printed += fprintf(fp, " syscall calls errors total min avg max stddev\n");
4339 sc = &trace->syscalls.table[syscall_stats_entry->syscall];
4754 "event/syscall selector. use 'perf list' to list available events",
4795 "Show only syscall summary with statistics"),
4799 "Show errno stats per syscall, use with -s or -S"),
4809 OPT_BOOLEAN(0, "kernel-syscall-graph", &trace.kernel_syscallchains,
4810 "Show the kernel callchains on the syscall exit path"),
4873 * tracepoint events, not in the strace-like syscall-name-based mode.
4937 * So, if we have a syscall augmenter, but trace_syscalls, aka
4938 * strace-like syscall tracing is not set, then we need to trow
4943 * style of setting up the strace-like eBPF based syscall point
5035 * syscall.
5079 * 6 syscall args plus the tracepoint common
5090 * syscall, like what happens when we use
5093 * needed for each syscall.