diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-trace.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 1a6cb7436952..02aaea6273ff 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c | |||
@@ -24,6 +24,31 @@ static size_t syscall_arg__scnprintf_hex(char *bf, size_t size, | |||
24 | 24 | ||
25 | #define SCA_HEX syscall_arg__scnprintf_hex | 25 | #define SCA_HEX syscall_arg__scnprintf_hex |
26 | 26 | ||
27 | static size_t syscall_arg__scnprintf_whence(char *bf, size_t size, | ||
28 | unsigned long arg, u8 *arg_mask __maybe_unused) | ||
29 | { | ||
30 | int whence = arg; | ||
31 | |||
32 | switch (whence) { | ||
33 | #define P_WHENCE(n) case SEEK_##n: return scnprintf(bf, size, #n) | ||
34 | P_WHENCE(SET); | ||
35 | P_WHENCE(CUR); | ||
36 | P_WHENCE(END); | ||
37 | #ifdef SEEK_DATA | ||
38 | P_WHENCE(DATA); | ||
39 | #endif | ||
40 | #ifdef SEEK_HOLE | ||
41 | P_WHENCE(HOLE); | ||
42 | #endif | ||
43 | #undef P_WHENCE | ||
44 | default: break; | ||
45 | } | ||
46 | |||
47 | return scnprintf(bf, size, "%#x", whence); | ||
48 | } | ||
49 | |||
50 | #define SCA_WHENCE syscall_arg__scnprintf_whence | ||
51 | |||
27 | static size_t syscall_arg__scnprintf_mmap_prot(char *bf, size_t size, | 52 | static size_t syscall_arg__scnprintf_mmap_prot(char *bf, size_t size, |
28 | unsigned long arg, u8 *arg_mask __maybe_unused) | 53 | unsigned long arg, u8 *arg_mask __maybe_unused) |
29 | { | 54 | { |
@@ -201,6 +226,8 @@ static struct syscall_fmt { | |||
201 | .arg_scnprintf = { [1] = SCA_FUTEX_OP, /* op */ }, }, | 226 | .arg_scnprintf = { [1] = SCA_FUTEX_OP, /* op */ }, }, |
202 | { .name = "ioctl", .errmsg = true, | 227 | { .name = "ioctl", .errmsg = true, |
203 | .arg_scnprintf = { [2] = SCA_HEX, /* arg */ }, }, | 228 | .arg_scnprintf = { [2] = SCA_HEX, /* arg */ }, }, |
229 | { .name = "lseek", .errmsg = true, | ||
230 | .arg_scnprintf = { [2] = SCA_WHENCE, /* whence */ }, }, | ||
204 | { .name = "lstat", .errmsg = true, .alias = "newlstat", }, | 231 | { .name = "lstat", .errmsg = true, .alias = "newlstat", }, |
205 | { .name = "madvise", .errmsg = true, | 232 | { .name = "madvise", .errmsg = true, |
206 | .arg_scnprintf = { [0] = SCA_HEX, /* start */ | 233 | .arg_scnprintf = { [0] = SCA_HEX, /* start */ |