Lines Matching defs:arg

105 	size_t	   (*scnprintf)(char *bf, size_t size, struct syscall_arg *arg);
106 bool (*strtoul)(char *bf, size_t size, struct syscall_arg *arg, u64 *val);
107 unsigned long (*mask_val)(struct syscall_arg *arg, unsigned long val);
121 struct syscall_arg_fmt arg[RAW_SYSCALL_ARGS_NUM];
526 struct syscall_arg *arg)
528 return strarray__scnprintf(arg->parm, bf, size, intfmt, arg->show_string_prefix, arg->val);
532 struct syscall_arg *arg)
534 return __syscall_arg__scnprintf_strarray(bf, size, "%d", arg);
539 bool syscall_arg__strtoul_strarray(char *bf, size_t size, struct syscall_arg *arg, u64 *ret)
541 return strarray__strtoul(arg->parm, bf, size, ret);
544 bool syscall_arg__strtoul_strarray_flags(char *bf, size_t size, struct syscall_arg *arg, u64 *ret)
546 return strarray__strtoul_flags(arg->parm, bf, size, ret);
549 bool syscall_arg__strtoul_strarrays(char *bf, size_t size, struct syscall_arg *arg, u64 *ret)
551 return strarrays__strtoul(arg->parm, bf, size, ret);
554 size_t syscall_arg__scnprintf_strarray_flags(char *bf, size_t size, struct syscall_arg *arg)
556 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);
799 struct syscall_arg *arg)
801 bool show_prefix = arg->show_string_prefix;
804 int mode = arg->val;
828 struct syscall_arg *arg);
833 struct syscall_arg *arg)
835 bool show_prefix = arg->show_string_prefix;
837 int printed = 0, flags = arg->val;
865 struct syscall_arg *arg)
867 bool show_prefix = arg->show_string_prefix;
869 int printed = 0, flags = arg->val;
917 .arg = { [1] = { .scnprintf = SCA_ACCMODE, /* mode */ }, }, },
919 .arg = { [0] = { .scnprintf = SCA_X86_ARCH_PRCTL_CODE, /* code */ },
922 .arg = { [0] = { .scnprintf = SCA_INT, /* fd */ },
926 .arg = { [0] = STRARRAY(cmd, bpf_cmd), }, },
928 .arg = { [0] = { .scnprintf = SCA_PTR, /* brk */ }, }, },
930 .arg = { [0] = STRARRAY(clk_id, clockid), }, },
932 .arg = { [2] = { .scnprintf = SCA_TIMESPEC, /* rqtp */ }, }, },
934 .arg = { [0] = { .name = "flags", .scnprintf = SCA_CLONE_FLAGS, },
940 .arg = { [0] = { .scnprintf = SCA_CLOSE_FD, /* fd */ }, }, },
942 .arg = { [0] = { .scnprintf = SCA_INT, /* fd */ },
946 .arg = { [1] = STRARRAY(op, epoll_ctl_ops), }, },
948 .arg = { [1] = { .scnprintf = SCA_EFD_FLAGS, /* flags */ }, }, },
950 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
952 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
954 .arg = { [1] = { .scnprintf = SCA_FCNTL_CMD, /* cmd */
958 [2] = { .scnprintf = SCA_FCNTL_ARG, /* arg */ }, }, },
960 .arg = { [1] = { .scnprintf = SCA_FLOCK, /* cmd */ }, }, },
962 .arg = { [1] = STRARRAY(cmd, fsconfig_cmds), }, },
964 .arg = { [1] = STRARRAY_FLAGS(flags, fsmount_flags),
967 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ },
973 .arg = { [1] = { .scnprintf = SCA_FUTEX_OP, /* op */ },
976 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
978 .arg = { [0] = STRARRAY(which, itimers), }, },
983 .arg = { [2] = { .scnprintf = SCA_GETRANDOM_FLAGS, /* flags */ }, }, },
985 .arg = { [0] = STRARRAY(resource, rlimit_resources), }, },
987 .arg = { [1] = STRARRAY(level, socket_level), }, },
990 .arg = {
996 [2] = { .scnprintf = SCA_HEX, /* arg */ }, }, },
998 [2] = { .scnprintf = SCA_HEX, /* arg */ }, }, },
1001 .arg = { [0] = { .name = "pid1", .scnprintf = SCA_PID, },
1007 .arg = { [0] = STRARRAY(option, keyctl_options), }, },
1009 .arg = { [1] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1011 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
1013 .arg = { [2] = STRARRAY(whence, whences), }, },
1016 .arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
1019 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
1021 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fd */ }, }, },
1027 .arg = { [2] = { .scnprintf = SCA_MMAP_PROT, /* prot */ },
1033 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* dev_name */ },
1037 .arg = { [0] = { .scnprintf = SCA_FDAT, /* from_dfd */ },
1043 .arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
1046 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* u_name */ }, }, },
1048 .arg = { [3] = { .scnprintf = SCA_MREMAP_FLAGS, /* flags */ }, }, },
1050 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1052 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1054 .arg = { [1] = { .scnprintf = SCA_OPEN_FLAGS, /* flags */ }, }, },
1056 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ },
1059 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ },
1062 .arg = { [0] = { .scnprintf = SCA_PERF_ATTR, /* attr */ },
1067 .arg = { [1] = { .scnprintf = SCA_PIPE_FLAGS, /* flags */ }, }, },
1069 .arg = { [1] = { .scnprintf = SCA_PKEY_ALLOC_ACCESS_RIGHTS, /* access_rights */ }, }, },
1071 .arg = { [0] = { .scnprintf = SCA_INT, /* key */ }, }, },
1073 .arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
1079 .arg = { [0] = { .scnprintf = SCA_PRCTL_OPTION, /* option */
1087 .arg = { [1] = STRARRAY(resource, rlimit_resources), }, },
1090 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1092 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1094 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1096 .arg = { [2] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1098 .arg = { [0] = { .scnprintf = SCA_FDAT, /* olddirfd */ },
1101 .arg = { [0] = { .scnprintf = SCA_FDAT, /* olddirfd */ },
1105 .arg = { [0] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1107 .arg = { [0] = STRARRAY(how, sighow), }, },
1109 .arg = { [1] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1111 .arg = { [2] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1113 .arg = { [1] = { .scnprintf = SCA_SCHED_POLICY, /* policy */ }, }, },
1115 .arg = { [0] = { .scnprintf = SCA_SECCOMP_OP, /* op */ },
1120 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1122 .arg = { [2] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
1124 .arg = { [3] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ },
1128 .arg = { [0] = STRARRAY(which, itimers), }, },
1130 .arg = { [0] = STRARRAY(resource, rlimit_resources), }, },
1132 .arg = { [1] = STRARRAY(level, socket_level), }, },
1134 .arg = { [0] = STRARRAY(family, socket_families),
1138 .arg = { [0] = STRARRAY(family, socket_families),
1143 .arg = { [0] = { .scnprintf = SCA_FDAT, /* fdat */ },
1147 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* specialfile */ }, }, },
1149 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* specialfile */ }, }, },
1151 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1153 .arg = { [3] = { .scnprintf = SCA_SYNC_FILE_RANGE_FLAGS, /* flags */ }, }, },
1155 .arg = { [2] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1157 .arg = { [1] = { .scnprintf = SCA_SIGNUM, /* sig */ }, }, },
1159 .arg = { [0] = { .scnprintf = SCA_FILENAME, /* name */ }, }, },
1162 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
1164 .arg = { [0] = { .scnprintf = SCA_FDAT, /* dirfd */ }, }, },
1166 .arg = { [2] = { .scnprintf = SCA_WAITID_OPTIONS, /* options */ }, }, },
1168 .arg = { [3] = { .scnprintf = SCA_WAITID_OPTIONS, /* options */ }, }, },
1269 size_t (*ret_scnprintf)(char *bf, size_t size, struct syscall_arg *arg);
1337 void syscall_arg__set_ret_scnprintf(struct syscall_arg *arg,
1338 size_t (*ret_scnprintf)(char *bf, size_t size, struct syscall_arg *arg))
1340 struct thread_trace *ttrace = thread__priv(arg->thread);
1457 size_t syscall_arg__scnprintf_fd(char *bf, size_t size, struct syscall_arg *arg)
1459 int fd = arg->val;
1461 const char *path = thread__fd_path(arg->thread, fd, arg->trace);
1487 struct syscall_arg *arg)
1489 int fd = arg->val;
1490 size_t printed = syscall_arg__scnprintf_fd(bf, size, arg);
1491 struct thread_trace *ttrace = thread__priv(arg->thread);
1508 static size_t syscall_arg__scnprintf_augmented_string(struct syscall_arg *arg, char *bf, size_t size)
1510 struct augmented_arg *augmented_arg = arg->augmented.args;
1513 * So that the next arg with a payload can consume its augmented arg, i.e. for rename* syscalls
1518 arg->augmented.args = ((void *)arg->augmented.args) + consumed;
1519 arg->augmented.size -= consumed;
1525 struct syscall_arg *arg)
1527 unsigned long ptr = arg->val;
1529 if (arg->augmented.args)
1530 return syscall_arg__scnprintf_augmented_string(arg, bf, size);
1532 if (!arg->trace->vfs_getname)
1535 thread__set_filename_pos(arg->thread, bf, ptr);
1700 sc->arg_fmt[idx] = sc->fmt->arg[idx];
1732 syscall_arg_fmt__init_array(struct syscall_arg_fmt *arg, struct tep_format_field *field)
1737 for (; field; field = field->next, ++arg) {
1740 if (arg->scnprintf)
1748 arg->scnprintf = SCA_FILENAME;
1750 arg->scnprintf = SCA_PTR;
1752 arg->scnprintf = SCA_PID;
1754 arg->scnprintf = SCA_MODE_T;
1756 arg->scnprintf = SCA_CHAR_ARRAY;
1757 arg->nr_entries = field->arraylen;
1769 arg->scnprintf = SCA_FD;
1775 arg->scnprintf = fmt->scnprintf;
1776 arg->strtoul = fmt->strtoul;
1991 unsigned long syscall_arg__val(struct syscall_arg *arg, u8 idx)
1994 unsigned char *p = arg->args + sizeof(unsigned long) * idx;
2001 struct syscall_arg *arg)
2003 if (sc->arg_fmt && sc->arg_fmt[arg->idx].name)
2004 return scnprintf(bf, size, "%s: ", sc->arg_fmt[arg->idx].name);
2006 return scnprintf(bf, size, "arg%d: ", arg->idx);
2014 static unsigned long syscall_arg_fmt__mask_val(struct syscall_arg_fmt *fmt, struct syscall_arg *arg, unsigned long val)
2017 return fmt->mask_val(arg, val);
2023 struct syscall_arg *arg, unsigned long val)
2026 arg->val = val;
2028 arg->parm = fmt->parm;
2029 return fmt->scnprintf(bf, size, arg);
2041 struct syscall_arg arg = {
2066 field = field->next, ++arg.idx, bit <<= 1) {
2067 if (arg.mask & bit)
2070 arg.fmt = &sc->arg_fmt[arg.idx];
2071 val = syscall_arg__val(&arg, arg.idx);
2076 val = syscall_arg_fmt__mask_val(&sc->arg_fmt[arg.idx], &arg, val);
2086 (sc->arg_fmt[arg.idx].show_zero ||
2087 sc->arg_fmt[arg.idx].scnprintf == SCA_STRARRAY ||
2088 sc->arg_fmt[arg.idx].scnprintf == SCA_STRARRAYS) &&
2089 sc->arg_fmt[arg.idx].parm))
2097 printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx],
2098 bf + printed, size - printed, &arg, val);
2106 while (arg.idx < sc->nr_args) {
2107 if (arg.mask & bit)
2109 val = syscall_arg__val(&arg, arg.idx);
2112 printed += syscall__scnprintf_name(sc, bf + printed, size - printed, &arg);
2113 printed += syscall_arg_fmt__scnprintf_val(&sc->arg_fmt[arg.idx], bf + printed, size - printed, &arg, val);
2115 ++arg.idx;
2571 struct syscall_arg arg = {
2576 ttrace->ret_scnprintf(bf, sizeof(bf), &arg);
2743 struct syscall_arg_fmt *arg = __evsel__syscall_arg_fmt(evsel);
2759 for (; field && arg; field = field->next, ++syscall_arg.idx, bit <<= 1, ++arg) {
2764 syscall_arg.fmt = arg;
2783 val = syscall_arg_fmt__mask_val(arg, &syscall_arg, val);
2792 !((arg->show_zero ||
2793 arg->scnprintf == SCA_STRARRAY ||
2794 arg->scnprintf == SCA_STRARRAYS) &&
2795 arg->parm))
2803 printed += syscall_arg_fmt__scnprintf_val(arg, bf + printed, size - printed, &syscall_arg, val);
3387 // The candidate just doesn't copies our pointer arg, might copy other pointers we want.
3403 * uses "const char *" for its "buf" arg so we need to
3501 * Because the 'open' augmenter will collect the first arg as a string,
3503 * beautifying 'stat' and 'lstat''s pathname arg.
3506 * first and second arg (this one on the raw_syscalls:sys_exit prog
3684 static struct syscall_arg_fmt *evsel__find_syscall_arg_fmt_by_name(struct evsel *evsel, char *arg)
3693 if (strcmp(field->name, arg) == 0)
3732 char arg[128];
3737 scnprintf(arg, sizeof(arg), "%.*s", left_size, left);
3739 fmt = evsel__find_syscall_arg_fmt_by_name(evsel, arg);
3742 arg, evsel->name, evsel->filter);
3747 arg, (int)(right - tok), tok, right_size, right);
3773 right_size, right, arg, evsel->name, evsel->filter);
3778 arg, evsel->name, evsel->filter);
4447 memcpy(fmt + skip, scfmt->arg, (evsel->tp_format->format.nr_fields - skip) * sizeof(*fmt));
4604 static int trace__config(const char *var, const char *value, void *arg)
4606 struct trace *trace = arg;