Lines Matching defs:arg
96 size_t (*scnprintf)(char *bf, size_t size, struct syscall_arg *arg);
97 bool (*strtoul)(char *bf, size_t size, struct syscall_arg *arg, u64 *val);
98 unsigned long (*mask_val)(struct syscall_arg *arg, unsigned long val);
112 struct syscall_arg_fmt arg[RAW_SYSCALL_ARGS_NUM];
523 struct syscall_arg *arg)
525 return strarray__scnprintf(arg->parm, bf, size, intfmt, arg->show_string_prefix, arg->val);
529 struct syscall_arg *arg)
531 return __syscall_arg__scnprintf_strarray(bf, size, "%d", arg);
536 bool syscall_arg__strtoul_strarray(char *bf, size_t size, struct syscall_arg *arg, u64 *ret)
538 return strarray__strtoul(arg->parm, bf, size, ret);
541 bool syscall_arg__strtoul_strarray_flags(char *bf, size_t size, struct syscall_arg *arg, u64 *ret)
543 return strarray__strtoul_flags(arg->parm, bf, size, ret);
546 bool syscall_arg__strtoul_strarrays(char *bf, size_t size, struct syscall_arg *arg, u64 *ret)
548 return strarrays__strtoul(arg->parm, bf, size, ret);
551 size_t syscall_arg__scnprintf_strarray_flags(char *bf, size_t size, struct syscall_arg *arg)
553 return strarray__scnprintf_flags(arg->parm, bf, size, arg->show_string_prefix, arg->val);
650 struct syscall_arg *arg)
652 return strarrays__scnprintf(arg->parm, bf, size, "%d", arg->show_string_prefix, arg->val);
660 struct syscall_arg *arg)
662 int fd = arg->val;
666 return scnprintf(bf, size, "%s%s", arg->show_string_prefix ? prefix : "", "CWD");
668 return syscall_arg__scnprintf_fd(bf, size, arg);
674 struct syscall_arg *arg);
678 size_t syscall_arg__scnprintf_hex(char *bf, size_t size, struct syscall_arg *arg)
680 return scnprintf(bf, size, "%#lx", arg->val);
683 size_t syscall_arg__scnprintf_ptr(char *bf, size_t size, struct syscall_arg *arg)
685 if (arg->val == 0)
687 return syscall_arg__scnprintf_hex(bf, size, arg);
690 size_t syscall_arg__scnprintf_int(char *bf, size_t size, struct syscall_arg *arg)
692 return scnprintf(bf, size, "%d", arg->val);
695 size_t syscall_arg__scnprintf_long(char *bf, size_t size, struct syscall_arg *arg)
697 return scnprintf(bf, size, "%ld", arg->val);
700 static size_t syscall_arg__scnprintf_char_array(char *bf, size_t size, struct syscall_arg *arg)
705 return scnprintf(bf, size, "\"%-.*s\"", arg->fmt->nr_entries ?: arg->len, arg->val);
791 struct syscall_arg *arg)
793 bool show_prefix = arg->show_string_prefix;
796 int mode = arg->val;
820 struct syscall_arg *arg);
825 struct syscall_arg *arg)
827 bool show_prefix = arg->show_string_prefix;
829 int printed = 0, flags = arg->val;
857 struct syscall_arg *arg)
859 bool show_prefix = arg->show_string_prefix;
861 int printed = 0, flags = arg->val;
909 .arg = { [1] = { .scnprintf = SCA_ACCMODE, /* mode */ }, }, },
911 .arg = { [0] = { .scnprintf = SCA_X86_ARCH_PRCTL_CODE, /* code */ },
914 .arg = { [0] = { .scnprintf = SCA_INT, /* fd */ },
918 .arg = { [0] = STRARRAY(cmd, bpf_cmd), }, },
920 .arg = { [0] = { .scnprintf = SCA_PTR, /* brk */ }, }, },
922 .arg = { [0] = STRARRAY(clk_id, clockid), }, },
924 .arg = { [0] = { .name = "flags", .scnprintf = SCA_CLONE_FLAGS, },
930 .arg = { [0] = { .scnprintf = SCA_CLOSE_FD, /* fd */ }, }, },
932 .arg = { [0] = { .scnprintf = SCA_INT, /* fd */ },
936 .arg = { [1] = STRARRAY(op, epoll_ctl_ops), }, },
938 .arg = { [1] = { .scnprintf = SCA_EFD_FLAGS, /* flags */ }, }, },
940 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
942 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
944 .arg = { [1] = { .scnprintf = SCA_FCNTL_CMD, /* cmd */
948 [2] = { .scnprintf = SCA_FCNTL_ARG, /* arg */ }, }, },
950 .arg = { [1] = { .scnprintf = SCA_FLOCK, /* cmd */ }, }, },
952 .arg = { [1] = STRARRAY(cmd, fsconfig_cmds), }, },
954 .arg = { [1] = STRARRAY_FLAGS(flags, fsmount_flags),
957 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ },
963 .arg = { [1] = { .scnprintf = SCA_FUTEX_OP, /* op */ },
966 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
968 .arg = { [0] = STRARRAY(which, itimers), }, },
973 .arg = { [2] = { .scnprintf = SCA_GETRANDOM_FLAGS, /* flags */ }, }, },
975 .arg = { [0] = STRARRAY(resource, rlimit_resources), }, },
978 .arg = {
984 [2] = { .scnprintf = SCA_HEX, /* arg */ }, }, },
986 [2] = { .scnprintf = SCA_HEX, /* arg */ }, }, },
989 .arg = { [0] = { .name = "pid1", .scnprintf = SCA_PID, },
995 .arg = { [0] = STRARRAY(option, keyctl_options), }, },
997 .arg = { [1] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
999 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
1001 .arg = { [2] = STRARRAY(whence, whences), }, },
1004 .arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
1007 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
1009 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
1015 .arg = { [2] = { .scnprintf = SCA_MMAP_PROT, /* prot */ },
1021 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* dev_name */ },
1025 .arg = { [0] = { .scnprintf = SCA_FDAT, /* from_dfd */ },
1031 .arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
1034 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* u_name */ }, }, },
1036 .arg = { [3] = { .scnprintf = SCA_MREMAP_FLAGS, /* flags */ }, }, },
1038 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1040 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1042 .arg = { [1] = { .scnprintf = SCA_OPEN_FLAGS, /* flags */ }, }, },
1044 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ },
1047 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ },
1050 .arg = { [2] = { .scnprintf = SCA_INT, /* cpu */ },
1054 .arg = { [1] = { .scnprintf = SCA_PIPE_FLAGS, /* flags */ }, }, },
1056 .arg = { [1] = { .scnprintf = SCA_PKEY_ALLOC_ACCESS_RIGHTS, /* access_rights */ }, }, },
1058 .arg = { [0] = { .scnprintf = SCA_INT, /* key */ }, }, },
1060 .arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
1066 .arg = { [0] = { .scnprintf = SCA_PRCTL_OPTION, /* option */
1074 .arg = { [1] = STRARRAY(resource, rlimit_resources), }, },
1077 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1079 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1081 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1083 .arg = { [2] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1085 .arg = { [0] = { .scnprintf = SCA_FDAT, /* olddirfd */ },
1088 .arg = { [0] = { .scnprintf = SCA_FDAT, /* olddirfd */ },
1092 .arg = { [0] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1094 .arg = { [0] = STRARRAY(how, sighow), }, },
1096 .arg = { [1] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1098 .arg = { [2] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1100 .arg = { [1] = { .scnprintf = SCA_SCHED_POLICY, /* policy */ }, }, },
1102 .arg = { [0] = { .scnprintf = SCA_SECCOMP_OP, /* op */ },
1107 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1109 .arg = { [2] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1111 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ },
1115 .arg = { [0] = STRARRAY(which, itimers), }, },
1117 .arg = { [0] = STRARRAY(resource, rlimit_resources), }, },
1119 .arg = { [0] = STRARRAY(family, socket_families),
1123 .arg = { [0] = STRARRAY(family, socket_families),
1128 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fdat */ },
1132 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* specialfile */ }, }, },
1134 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* specialfile */ }, }, },
1136 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1138 .arg = { [3] = { .scnprintf = SCA_SYNC_FILE_RANGE_FLAGS, /* flags */ }, }, },
1140 .arg = { [2] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1142 .arg = { [1] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1144 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* name */ }, }, },
1147 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1149 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dirfd */ }, }, },
1151 .arg = { [2] = { .scnprintf = SCA_WAITID_OPTIONS, /* options */ }, }, },
1153 .arg = { [3] = { .scnprintf = SCA_WAITID_OPTIONS, /* options */ }, }, },
1261 size_t (*ret_scnprintf)(char *bf, size_t size, struct syscall_arg *arg);
1313 void syscall_arg__set_ret_scnprintf(struct syscall_arg *arg,
1314 size_t (*ret_scnprintf)(char *bf, size_t size, struct syscall_arg *arg))
1316 struct thread_trace *ttrace = thread__priv(arg->thread);
1421 size_t syscall_arg__scnprintf_fd(char *bf, size_t size, struct syscall_arg *arg)
1423 int fd = arg->val;
1425 const char *path = thread__fd_path(arg->thread, fd, arg->trace);
1451 struct syscall_arg *arg)
1453 int fd = arg->val;
1454 size_t printed = syscall_arg__scnprintf_fd(bf, size, arg);
1455 struct thread_trace *ttrace = thread__priv(arg->thread);
1472 static size_t syscall_arg__scnprintf_augmented_string(struct syscall_arg *arg, char *bf, size_t size)
1474 struct augmented_arg *augmented_arg = arg->augmented.args;
1477 * So that the next arg with a payload can consume its augmented arg, i.e. for rename* syscalls
1482 arg->augmented.args = ((void *)arg->augmented.args) + consumed;
1483 arg->augmented.size -= consumed;
1489 struct syscall_arg *arg)
1491 unsigned long ptr = arg->val;
1493 if (arg->augmented.args)
1494 return syscall_arg__scnprintf_augmented_string(arg, bf, size);
1496 if (!arg->trace->vfs_getname)
1499 thread__set_filename_pos(arg->thread, bf, ptr);
1655 sc->arg_fmt[idx] = sc->fmt->arg[idx];
1686 syscall_arg_fmt__init_array(struct syscall_arg_fmt *arg, struct tep_format_field *field)
1691 for (; field; field = field->next, ++arg) {
1694 if (arg->scnprintf)
1702 arg->scnprintf = SCA_FILENAME;
1704 arg->scnprintf = SCA_PTR;
1706 arg->scnprintf = SCA_PID;
1708 arg->scnprintf = SCA_MODE_T;
1710 arg->scnprintf = SCA_CHAR_ARRAY;
1711 arg->nr_entries = field->arraylen;
1723 arg->scnprintf = SCA_FD;
1728 arg->scnprintf = fmt->scnprintf;
1729 arg->strtoul = fmt->strtoul;
1944 unsigned long syscall_arg__val(struct syscall_arg *arg, u8 idx)
1947 unsigned char *p = arg->args + sizeof(unsigned long) * idx;
1954 struct syscall_arg *arg)
1956 if (sc->arg_fmt && sc->arg_fmt[arg->idx].name)
1957 return scnprintf(bf, size, "%s: ", sc->arg_fmt[arg->idx].name);
1959 return scnprintf(bf, size, "arg%d: ", arg->idx);
1967 static unsigned long syscall_arg_fmt__mask_val(struct syscall_arg_fmt *fmt, struct syscall_arg *arg, unsigned long val)
1970 return fmt->mask_val(arg, val);
1976 struct syscall_arg *arg, unsigned long val)
1979 arg->val = val;
1981 arg->parm = fmt->parm;
1982 return fmt->scnprintf(bf, size, arg);
1994 struct syscall_arg arg = {
2019 field = field->next, ++arg.idx, bit <<= 1) {
2020 if (arg.mask & bit)
2023 arg.fmt = &sc->arg_fmt[arg.idx];
2024 val = syscall_arg__val(&arg, arg.idx);
2029 val = syscall_arg_fmt__mask_val(&sc->arg_fmt[arg.idx], &arg, val);
2039 (sc->arg_fmt[arg.idx].show_zero ||
2040 sc->arg_fmt[arg.idx].scnprintf == SCA_STRARRAY ||
2041 sc->arg_fmt[arg.idx].scnprintf == SCA_STRARRAYS) &&
2042 sc->arg_fmt[arg.idx].parm))
2050 printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx],
2051 bf + printed, size - printed, &arg, val);
2059 while (arg.idx < sc->nr_args) {
2060 if (arg.mask & bit)
2062 val = syscall_arg__val(&arg, arg.idx);
2065 printed += syscall__scnprintf_name(sc, bf + printed, size - printed, &arg);
2066 printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx], bf + printed, size - printed, &arg, val);
2068 ++arg.idx;
2514 struct syscall_arg arg = {
2519 ttrace->ret_scnprintf(bf, sizeof(bf), &arg);
2686 struct syscall_arg_fmt *arg = __evsel__syscall_arg_fmt(evsel);
2702 for (; field && arg; field = field->next, ++syscall_arg.idx, bit <<= 1, ++arg) {
2707 syscall_arg.fmt = arg;
2724 val = syscall_arg_fmt__mask_val(arg, &syscall_arg, val);
2733 !((arg->show_zero ||
2734 arg->scnprintf == SCA_STRARRAY ||
2735 arg->scnprintf == SCA_STRARRAYS) &&
2736 arg->parm))
2748 printed += syscall_arg_fmt__scnprintf_val(arg, bf + printed, size - printed, &syscall_arg, val);
3300 int arg = 0;
3305 for (; arg < sc->nr_args; ++arg) {
3306 entry->string_args_len[arg] = 0;
3307 if (sc->arg_fmt[arg].scnprintf == SCA_FILENAME) {
3309 entry->string_args_len[arg] = PATH_MAX;
3313 for (; arg < 6; ++arg)
3314 entry->string_args_len[arg] = 0;
3403 // The candidate just doesn't copies our pointer arg, might copy other pointers we want.
3504 * Because the 'open' augmenter will collect the first arg as a string,
3506 * beautifying 'stat' and 'lstat''s pathname arg.
3509 * first and second arg (this one on the raw_syscalls:sys_exit prog
3763 static struct syscall_arg_fmt *evsel__find_syscall_arg_fmt_by_name(struct evsel *evsel, char *arg)
3772 if (strcmp(field->name, arg) == 0)
3811 char arg[128];
3816 scnprintf(arg, sizeof(arg), "%.*s", left_size, left);
3818 fmt = evsel__find_syscall_arg_fmt_by_name(evsel, arg);
3821 arg, evsel->name, evsel->filter);
3826 arg, (int)(right - tok), tok, right_size, right);
3852 right_size, right, arg, evsel->name, evsel->filter);
3857 arg, evsel->name, evsel->filter);
4524 memcpy(fmt + skip, scfmt->arg, (evsel->tp_format->format.nr_fields - skip) * sizeof(*fmt));
4675 static int trace__config(const char *var, const char *value, void *arg)
4677 struct trace *trace = arg;