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, |
