Commit c790f2ba authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

perf trace: Introduce SCA_TIMESPEC_FROM_USER() to set .from_user = true



Paving the way for the generic BPF BTF based syscall arg augmenter.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent be14a719
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1084,7 +1084,7 @@ static const struct syscall_fmt syscall_fmts[] = {
	{ .name     = "clock_gettime",
	  .arg = { [0] = STRARRAY(clk_id, clockid), }, },
	{ .name	    = "clock_nanosleep",
	  .arg = { [2] = { .scnprintf = SCA_TIMESPEC,  /* rqtp */ }, }, },
	  .arg = { [2] = SCA_TIMESPEC_FROM_USER(req), }, },
	{ .name	    = "clone",	    .errpid = true, .nr_args = 5,
	  .arg = { [0] = { .name = "flags",	    .scnprintf = SCA_CLONE_FLAGS, },
		   [1] = { .name = "child_stack",   .scnprintf = SCA_HEX, },
@@ -1212,7 +1212,7 @@ static const struct syscall_fmt syscall_fmts[] = {
	{ .name	    = "name_to_handle_at",
	  .arg = { [0] = { .scnprintf = SCA_FDAT, /* dfd */ }, }, },
	{ .name	    = "nanosleep",
	  .arg = { [0] = { .scnprintf = SCA_TIMESPEC,  /* req */ }, }, },
	  .arg = { [0] = SCA_TIMESPEC_FROM_USER(req), }, },
	{ .name	    = "newfstatat", .alias = "fstatat",
	  .arg = { [0] = { .scnprintf = SCA_FDAT,	  /* dirfd */ },
		   [1] = SCA_FILENAME_FROM_USER(pathname),
+5 −0
Original line number Diff line number Diff line
@@ -255,6 +255,11 @@ size_t syscall_arg__scnprintf_sync_file_range_flags(char *bf, size_t size, struc
size_t syscall_arg__scnprintf_timespec(char *bf, size_t size, struct syscall_arg *arg);
#define SCA_TIMESPEC syscall_arg__scnprintf_timespec

// 'argname' is just documentational at this point, to remove the previous comment with that info
#define SCA_TIMESPEC_FROM_USER(argname) \
	  { .scnprintf	= SCA_TIMESPEC, \
	    .from_user	= true, }

size_t open__scnprintf_flags(unsigned long flags, char *bf, size_t size, bool show_prefix);

void syscall_arg__set_ret_scnprintf(struct syscall_arg *arg,