diff options
Diffstat (limited to 'tools/perf/builtin-trace.c')
-rw-r--r-- | tools/perf/builtin-trace.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 896f27047ed6..f954c26de231 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c | |||
@@ -37,6 +37,10 @@ | |||
37 | # define MADV_UNMERGEABLE 13 | 37 | # define MADV_UNMERGEABLE 13 |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | #ifndef EFD_SEMAPHORE | ||
41 | # define EFD_SEMAPHORE 1 | ||
42 | #endif | ||
43 | |||
40 | struct tp_field { | 44 | struct tp_field { |
41 | int offset; | 45 | int offset; |
42 | union { | 46 | union { |
@@ -279,6 +283,11 @@ static size_t syscall_arg__scnprintf_strarray(char *bf, size_t size, | |||
279 | 283 | ||
280 | #define SCA_STRARRAY syscall_arg__scnprintf_strarray | 284 | #define SCA_STRARRAY syscall_arg__scnprintf_strarray |
281 | 285 | ||
286 | #if defined(__i386__) || defined(__x86_64__) | ||
287 | /* | ||
288 | * FIXME: Make this available to all arches as soon as the ioctl beautifier | ||
289 | * gets rewritten to support all arches. | ||
290 | */ | ||
282 | static size_t syscall_arg__scnprintf_strhexarray(char *bf, size_t size, | 291 | static size_t syscall_arg__scnprintf_strhexarray(char *bf, size_t size, |
283 | struct syscall_arg *arg) | 292 | struct syscall_arg *arg) |
284 | { | 293 | { |
@@ -286,6 +295,7 @@ static size_t syscall_arg__scnprintf_strhexarray(char *bf, size_t size, | |||
286 | } | 295 | } |
287 | 296 | ||
288 | #define SCA_STRHEXARRAY syscall_arg__scnprintf_strhexarray | 297 | #define SCA_STRHEXARRAY syscall_arg__scnprintf_strhexarray |
298 | #endif /* defined(__i386__) || defined(__x86_64__) */ | ||
289 | 299 | ||
290 | static size_t syscall_arg__scnprintf_fd(char *bf, size_t size, | 300 | static size_t syscall_arg__scnprintf_fd(char *bf, size_t size, |
291 | struct syscall_arg *arg); | 301 | struct syscall_arg *arg); |
@@ -815,7 +825,6 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal | |||
815 | P_SIGNUM(PIPE); | 825 | P_SIGNUM(PIPE); |
816 | P_SIGNUM(ALRM); | 826 | P_SIGNUM(ALRM); |
817 | P_SIGNUM(TERM); | 827 | P_SIGNUM(TERM); |
818 | P_SIGNUM(STKFLT); | ||
819 | P_SIGNUM(CHLD); | 828 | P_SIGNUM(CHLD); |
820 | P_SIGNUM(CONT); | 829 | P_SIGNUM(CONT); |
821 | P_SIGNUM(STOP); | 830 | P_SIGNUM(STOP); |
@@ -831,6 +840,15 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal | |||
831 | P_SIGNUM(IO); | 840 | P_SIGNUM(IO); |
832 | P_SIGNUM(PWR); | 841 | P_SIGNUM(PWR); |
833 | P_SIGNUM(SYS); | 842 | P_SIGNUM(SYS); |
843 | #ifdef SIGEMT | ||
844 | P_SIGNUM(EMT); | ||
845 | #endif | ||
846 | #ifdef SIGSTKFLT | ||
847 | P_SIGNUM(STKFLT); | ||
848 | #endif | ||
849 | #ifdef SIGSWI | ||
850 | P_SIGNUM(SWI); | ||
851 | #endif | ||
834 | default: break; | 852 | default: break; |
835 | } | 853 | } |
836 | 854 | ||
@@ -839,6 +857,10 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal | |||
839 | 857 | ||
840 | #define SCA_SIGNUM syscall_arg__scnprintf_signum | 858 | #define SCA_SIGNUM syscall_arg__scnprintf_signum |
841 | 859 | ||
860 | #if defined(__i386__) || defined(__x86_64__) | ||
861 | /* | ||
862 | * FIXME: Make this available to all arches. | ||
863 | */ | ||
842 | #define TCGETS 0x5401 | 864 | #define TCGETS 0x5401 |
843 | 865 | ||
844 | static const char *tioctls[] = { | 866 | static const char *tioctls[] = { |
@@ -860,6 +882,7 @@ static const char *tioctls[] = { | |||
860 | }; | 882 | }; |
861 | 883 | ||
862 | static DEFINE_STRARRAY_OFFSET(tioctls, 0x5401); | 884 | static DEFINE_STRARRAY_OFFSET(tioctls, 0x5401); |
885 | #endif /* defined(__i386__) || defined(__x86_64__) */ | ||
863 | 886 | ||
864 | #define STRARRAY(arg, name, array) \ | 887 | #define STRARRAY(arg, name, array) \ |
865 | .arg_scnprintf = { [arg] = SCA_STRARRAY, }, \ | 888 | .arg_scnprintf = { [arg] = SCA_STRARRAY, }, \ |
@@ -941,9 +964,16 @@ static struct syscall_fmt { | |||
941 | { .name = "getrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), }, | 964 | { .name = "getrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), }, |
942 | { .name = "ioctl", .errmsg = true, | 965 | { .name = "ioctl", .errmsg = true, |
943 | .arg_scnprintf = { [0] = SCA_FD, /* fd */ | 966 | .arg_scnprintf = { [0] = SCA_FD, /* fd */ |
967 | #if defined(__i386__) || defined(__x86_64__) | ||
968 | /* | ||
969 | * FIXME: Make this available to all arches. | ||
970 | */ | ||
944 | [1] = SCA_STRHEXARRAY, /* cmd */ | 971 | [1] = SCA_STRHEXARRAY, /* cmd */ |
945 | [2] = SCA_HEX, /* arg */ }, | 972 | [2] = SCA_HEX, /* arg */ }, |
946 | .arg_parm = { [1] = &strarray__tioctls, /* cmd */ }, }, | 973 | .arg_parm = { [1] = &strarray__tioctls, /* cmd */ }, }, |
974 | #else | ||
975 | [2] = SCA_HEX, /* arg */ }, }, | ||
976 | #endif | ||
947 | { .name = "kill", .errmsg = true, | 977 | { .name = "kill", .errmsg = true, |
948 | .arg_scnprintf = { [1] = SCA_SIGNUM, /* sig */ }, }, | 978 | .arg_scnprintf = { [1] = SCA_SIGNUM, /* sig */ }, }, |
949 | { .name = "linkat", .errmsg = true, | 979 | { .name = "linkat", .errmsg = true, |