| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "common/arc_strace.h" |
| |
| #include <sys/syscall.h> |
| #include <string> |
| |
| #include "base/strings/stringprintf.h" |
| |
| #define CASE_ASSIGN_ENUM_STR(enum_sym, result) \ |
| case enum_sym: result = #enum_sym ; break |
| |
| namespace arc { |
| |
| std::string GetArmSyscallStr(int arm_sysno) { |
| std::string result; |
| // Based on android/bionic/libc/kernel/arch-arm/asm/unistd.h. |
| switch (arm_sysno) { |
| case 1: return "__NR_exit"; |
| case 2: return "__NR_fork"; |
| case 3: return "__NR_read"; |
| case 4: return "__NR_write"; |
| case 5: return "__NR_open"; |
| case 6: return "__NR_close"; |
| case 8: return "__NR_creat"; |
| case 9: return "__NR_link"; |
| case 10: return "__NR_unlink"; |
| case 11: return "__NR_execve"; |
| case 12: return "__NR_chdir"; |
| case 13: return "__NR_time"; |
| case 14: return "__NR_mknod"; |
| case 15: return "__NR_chmod"; |
| case 16: return "__NR_lchown"; |
| case 19: return "__NR_lseek"; |
| case 20: return "__NR_getpid"; |
| case 21: return "__NR_mount"; |
| case 22: return "__NR_umount"; |
| case 23: return "__NR_setuid"; |
| case 24: return "__NR_getuid"; |
| case 25: return "__NR_stime"; |
| case 26: return "__NR_ptrace"; |
| case 27: return "__NR_alarm"; |
| case 29: return "__NR_pause"; |
| case 30: return "__NR_utime"; |
| case 33: return "__NR_access"; |
| case 34: return "__NR_nice"; |
| case 36: return "__NR_sync"; |
| case 37: return "__NR_kill"; |
| case 38: return "__NR_rename"; |
| case 39: return "__NR_mkdir"; |
| case 40: return "__NR_rmdir"; |
| case 41: return "__NR_dup"; |
| case 42: return "__NR_pipe"; |
| case 43: return "__NR_times"; |
| case 45: return "__NR_brk"; |
| case 46: return "__NR_setgid"; |
| case 47: return "__NR_getgid"; |
| case 49: return "__NR_geteuid"; |
| case 50: return "__NR_getegid"; |
| case 51: return "__NR_acct"; |
| case 52: return "__NR_umount2"; |
| case 54: return "__NR_ioctl"; |
| case 55: return "__NR_fcntl"; |
| case 57: return "__NR_setpgid"; |
| case 60: return "__NR_umask"; |
| case 61: return "__NR_chroot"; |
| case 62: return "__NR_ustat"; |
| case 63: return "__NR_dup2"; |
| case 64: return "__NR_getppid"; |
| case 65: return "__NR_getpgrp"; |
| case 66: return "__NR_setsid"; |
| case 67: return "__NR_sigaction"; |
| case 70: return "__NR_setreuid"; |
| case 71: return "__NR_setregid"; |
| case 72: return "__NR_sigsuspend"; |
| case 73: return "__NR_sigpending"; |
| case 74: return "__NR_sethostname"; |
| case 75: return "__NR_setrlimit"; |
| case 76: return "__NR_getrlimit"; |
| case 77: return "__NR_getrusage"; |
| case 78: return "__NR_gettimeofday"; |
| case 79: return "__NR_settimeofday"; |
| case 80: return "__NR_getgroups"; |
| case 81: return "__NR_setgroups"; |
| case 82: return "__NR_select"; |
| case 83: return "__NR_symlink"; |
| case 85: return "__NR_readlink"; |
| case 86: return "__NR_uselib"; |
| case 87: return "__NR_swapon"; |
| case 88: return "__NR_reboot"; |
| case 89: return "__NR_readdir"; |
| case 90: return "__NR_mmap"; |
| case 91: return "__NR_munmap"; |
| case 92: return "__NR_truncate"; |
| case 93: return "__NR_ftruncate"; |
| case 94: return "__NR_fchmod"; |
| case 95: return "__NR_fchown"; |
| case 96: return "__NR_getpriority"; |
| case 97: return "__NR_setpriority"; |
| case 99: return "__NR_statfs"; |
| case 100: return "__NR_fstatfs"; |
| case 102: return "__NR_socketcall"; |
| case 103: return "__NR_syslog"; |
| case 104: return "__NR_setitimer"; |
| case 105: return "__NR_getitimer"; |
| case 106: return "__NR_stat"; |
| case 107: return "__NR_lstat"; |
| case 108: return "__NR_fstat"; |
| case 111: return "__NR_vhangup"; |
| case 113: return "__NR_syscall"; |
| case 114: return "__NR_wait4"; |
| case 115: return "__NR_swapoff"; |
| case 116: return "__NR_sysinfo"; |
| case 117: return "__NR_ipc"; |
| case 118: return "__NR_fsync"; |
| case 119: return "__NR_sigreturn"; |
| case 120: return "__NR_clone"; |
| case 121: return "__NR_setdomainname"; |
| case 122: return "__NR_uname"; |
| case 124: return "__NR_adjtimex"; |
| case 125: return "__NR_mprotect"; |
| case 126: return "__NR_sigprocmask"; |
| case 128: return "__NR_init_module"; |
| case 129: return "__NR_delete_module"; |
| case 131: return "__NR_quotactl"; |
| case 132: return "__NR_getpgid"; |
| case 133: return "__NR_fchdir"; |
| case 134: return "__NR_bdflush"; |
| case 135: return "__NR_sysfs"; |
| case 136: return "__NR_personality"; |
| case 138: return "__NR_setfsuid"; |
| case 139: return "__NR_setfsgid"; |
| case 140: return "__NR__llseek"; |
| case 141: return "__NR_getdents"; |
| case 142: return "__NR__newselect"; |
| case 143: return "__NR_flock"; |
| case 144: return "__NR_msync"; |
| case 145: return "__NR_readv"; |
| case 146: return "__NR_writev"; |
| case 147: return "__NR_getsid"; |
| case 148: return "__NR_fdatasync"; |
| case 149: return "__NR__sysctl"; |
| case 150: return "__NR_mlock"; |
| case 151: return "__NR_munlock"; |
| case 152: return "__NR_mlockall"; |
| case 153: return "__NR_munlockall"; |
| case 154: return "__NR_sched_setparam"; |
| case 155: return "__NR_sched_getparam"; |
| case 156: return "__NR_sched_setscheduler"; |
| case 157: return "__NR_sched_getscheduler"; |
| case 158: return "__NR_sched_yield"; |
| case 159: return "__NR_sched_get_priority_max"; |
| case 160: return "__NR_sched_get_priority_min"; |
| case 161: return "__NR_sched_rr_get_interval"; |
| case 162: return "__NR_nanosleep"; |
| case 163: return "__NR_mremap"; |
| case 164: return "__NR_setresuid"; |
| case 165: return "__NR_getresuid"; |
| case 168: return "__NR_poll"; |
| case 169: return "__NR_nfsservctl"; |
| case 170: return "__NR_setresgid"; |
| case 171: return "__NR_getresgid"; |
| case 172: return "__NR_prctl"; |
| case 173: return "__NR_rt_sigreturn"; |
| case 174: return "__NR_rt_sigaction"; |
| case 175: return "__NR_rt_sigprocmask"; |
| case 176: return "__NR_rt_sigpending"; |
| case 177: return "__NR_rt_sigtimedwait"; |
| case 178: return "__NR_rt_sigqueueinfo"; |
| case 179: return "__NR_rt_sigsuspend"; |
| case 180: return "__NR_pread64"; |
| case 181: return "__NR_pwrite64"; |
| case 182: return "__NR_chown"; |
| case 183: return "__NR_getcwd"; |
| case 184: return "__NR_capget"; |
| case 185: return "__NR_capset"; |
| case 186: return "__NR_sigaltstack"; |
| case 187: return "__NR_sendfile"; |
| case 190: return "__NR_vfork"; |
| case 191: return "__NR_ugetrlimit"; |
| case 192: return "__NR_mmap2"; |
| case 193: return "__NR_truncate64"; |
| case 194: return "__NR_ftruncate64"; |
| case 195: return "__NR_stat64"; |
| case 196: return "__NR_lstat64"; |
| case 197: return "__NR_fstat64"; |
| case 198: return "__NR_lchown32"; |
| case 199: return "__NR_getuid32"; |
| case 200: return "__NR_getgid32"; |
| case 201: return "__NR_geteuid32"; |
| case 202: return "__NR_getegid32"; |
| case 203: return "__NR_setreuid32"; |
| case 204: return "__NR_setregid32"; |
| case 205: return "__NR_getgroups32"; |
| case 206: return "__NR_setgroups32"; |
| case 207: return "__NR_fchown32"; |
| case 208: return "__NR_setresuid32"; |
| case 209: return "__NR_getresuid32"; |
| case 210: return "__NR_setresgid32"; |
| case 211: return "__NR_getresgid32"; |
| case 212: return "__NR_chown32"; |
| case 213: return "__NR_setuid32"; |
| case 214: return "__NR_setgid32"; |
| case 215: return "__NR_setfsuid32"; |
| case 216: return "__NR_setfsgid32"; |
| case 217: return "__NR_getdents64"; |
| case 218: return "__NR_pivot_root"; |
| case 219: return "__NR_mincore"; |
| case 220: return "__NR_madvise"; |
| case 221: return "__NR_fcntl64"; |
| case 224: return "__NR_gettid"; |
| case 225: return "__NR_readahead"; |
| case 226: return "__NR_setxattr"; |
| case 227: return "__NR_lsetxattr"; |
| case 228: return "__NR_fsetxattr"; |
| case 229: return "__NR_getxattr"; |
| case 230: return "__NR_lgetxattr"; |
| case 231: return "__NR_fgetxattr"; |
| case 232: return "__NR_listxattr"; |
| case 233: return "__NR_llistxattr"; |
| case 234: return "__NR_flistxattr"; |
| case 235: return "__NR_removexattr"; |
| case 236: return "__NR_lremovexattr"; |
| case 237: return "__NR_fremovexattr"; |
| case 238: return "__NR_tkill"; |
| case 239: return "__NR_sendfile64"; |
| case 240: return "__NR_futex"; |
| case 241: return "__NR_sched_setaffinity"; |
| case 242: return "__NR_sched_getaffinity"; |
| case 243: return "__NR_io_setup"; |
| case 244: return "__NR_io_destroy"; |
| case 245: return "__NR_io_getevents"; |
| case 246: return "__NR_io_submit"; |
| case 247: return "__NR_io_cancel"; |
| case 248: return "__NR_exit_group"; |
| case 249: return "__NR_lookup_dcookie"; |
| case 250: return "__NR_epoll_create"; |
| case 251: return "__NR_epoll_ctl"; |
| case 252: return "__NR_epoll_wait"; |
| case 253: return "__NR_remap_file_pages"; |
| case 256: return "__NR_set_tid_address"; |
| case 257: return "__NR_timer_create"; |
| case 258: return "__NR_timer_settime"; |
| case 259: return "__NR_timer_gettime"; |
| case 260: return "__NR_timer_getoverrun"; |
| case 261: return "__NR_timer_delete"; |
| case 262: return "__NR_clock_settime"; |
| case 263: return "__NR_clock_gettime"; |
| case 264: return "__NR_clock_getres"; |
| case 265: return "__NR_clock_nanosleep"; |
| case 266: return "__NR_statfs64"; |
| case 267: return "__NR_fstatfs64"; |
| case 268: return "__NR_tgkill"; |
| case 269: return "__NR_utimes"; |
| case 270: return "__NR_arm_fadvise64_64"; |
| case 271: return "__NR_pciconfig_iobase"; |
| case 272: return "__NR_pciconfig_read"; |
| case 273: return "__NR_pciconfig_write"; |
| case 274: return "__NR_mq_open"; |
| case 275: return "__NR_mq_unlink"; |
| case 276: return "__NR_mq_timedsend"; |
| case 277: return "__NR_mq_timedreceive"; |
| case 278: return "__NR_mq_notify"; |
| case 279: return "__NR_mq_getsetattr"; |
| case 280: return "__NR_waitid"; |
| case 281: return "__NR_socket"; |
| case 282: return "__NR_bind"; |
| case 283: return "__NR_connect"; |
| case 284: return "__NR_listen"; |
| case 285: return "__NR_accept"; |
| case 286: return "__NR_getsockname"; |
| case 287: return "__NR_getpeername"; |
| case 288: return "__NR_socketpair"; |
| case 289: return "__NR_send"; |
| case 290: return "__NR_sendto"; |
| case 291: return "__NR_recv"; |
| case 292: return "__NR_recvfrom"; |
| case 293: return "__NR_shutdown"; |
| case 294: return "__NR_setsockopt"; |
| case 295: return "__NR_getsockopt"; |
| case 296: return "__NR_sendmsg"; |
| case 297: return "__NR_recvmsg"; |
| case 298: return "__NR_semop"; |
| case 299: return "__NR_semget"; |
| case 300: return "__NR_semctl"; |
| case 301: return "__NR_msgsnd"; |
| case 302: return "__NR_msgrcv"; |
| case 303: return "__NR_msgget"; |
| case 304: return "__NR_msgctl"; |
| case 305: return "__NR_shmat"; |
| case 306: return "__NR_shmdt"; |
| case 307: return "__NR_shmget"; |
| case 308: return "__NR_shmctl"; |
| case 309: return "__NR_add_key"; |
| case 310: return "__NR_request_key"; |
| case 311: return "__NR_keyctl"; |
| case 312: return "__NR_semtimedop"; |
| case 313: return "__NR_vserver"; |
| case 314: return "__NR_ioprio_set"; |
| case 315: return "__NR_ioprio_get"; |
| case 316: return "__NR_inotify_init"; |
| case 317: return "__NR_inotify_add_watch"; |
| case 318: return "__NR_inotify_rm_watch"; |
| case 319: return "__NR_mbind"; |
| case 320: return "__NR_get_mempolicy"; |
| case 321: return "__NR_set_mempolicy"; |
| case 322: return "__NR_openat"; |
| case 323: return "__NR_mkdirat"; |
| case 324: return "__NR_mknodat"; |
| case 325: return "__NR_fchownat"; |
| case 326: return "__NR_futimesat"; |
| case 327: return "__NR_fstatat64"; |
| case 328: return "__NR_unlinkat"; |
| case 329: return "__NR_renameat"; |
| case 330: return "__NR_linkat"; |
| case 331: return "__NR_symlinkat"; |
| case 332: return "__NR_readlinkat"; |
| case 333: return "__NR_fchmodat"; |
| case 334: return "__NR_faccessat"; |
| case 335: return "__NR_pselect6"; |
| case 336: return "__NR_ppoll"; |
| case 337: return "__NR_unshare"; |
| case 338: return "__NR_set_robust_list"; |
| case 339: return "__NR_get_robust_list"; |
| case 340: return "__NR_splice"; |
| case 341: return "__NR_arm_sync_file_range"; |
| case 342: return "__NR_tee"; |
| case 343: return "__NR_vmsplice"; |
| case 344: return "__NR_move_pages"; |
| case 345: return "__NR_getcpu"; |
| case 346: return "__NR_epoll_pwait"; |
| case 347: return "__NR_kexec_load"; |
| case 348: return "__NR_utimensat"; |
| case 349: return "__NR_signalfd"; |
| case 350: return "__NR_timerfd_create"; |
| case 351: return "__NR_eventfd"; |
| case 352: return "__NR_fallocate"; |
| case 353: return "__NR_timerfd_settime"; |
| case 354: return "__NR_timerfd_gettime"; |
| case 355: return "__NR_signalfd4"; |
| case 356: return "__NR_eventfd2"; |
| case 357: return "__NR_epoll_create1"; |
| case 358: return "__NR_dup3"; |
| case 359: return "__NR_pipe2"; |
| case 360: return "__NR_inotify_init1"; |
| case 361: return "__NR_preadv"; |
| case 362: return "__NR_pwritev"; |
| case 363: return "__NR_rt_tgsigqueueinfo"; |
| case 364: return "__NR_perf_event_open"; |
| case 365: return "__NR_recvmmsg"; |
| case 366: return "__NR_accept4"; |
| case 367: return "__NR_fanotify_init"; |
| case 368: return "__NR_fanotify_mark"; |
| case 369: return "__NR_prlimit64"; |
| case 370: return "__NR_name_to_handle_at"; |
| case 371: return "__NR_open_by_handle_at"; |
| case 372: return "__NR_clock_adjtime"; |
| case 373: return "__NR_syncfs"; |
| case 374: return "__NR_sendmmsg"; |
| case 375: return "__NR_setns"; |
| case 376: return "__NR_process_vm_readv"; |
| case 377: return "__NR_process_vm_writev"; |
| case 378: return "__NR_kcmp"; |
| case 379: return "__NR_finit_module"; |
| case 380: return "__NR_sched_setattr"; |
| case 381: return "__NR_sched_getattr"; |
| case 0xf0001: return "__ARM_NR_breakpoint"; |
| case 0xf0002: return "__ARM_NR_cacheflush"; |
| case 0xf0003: return "__ARM_NR_usr26"; |
| case 0xf0004: return "__ARM_NR_usr32"; |
| case 0xf0005: return "__ARM_NR_set_tls"; |
| default: |
| break; |
| } |
| return base::StringPrintf("%d???", arm_sysno); |
| } |
| |
| #if defined(__i386__) |
| std::string GetX86SyscallStr(int sysno) { |
| // Based on android/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h. |
| std::string result; |
| switch (sysno) { |
| CASE_ASSIGN_ENUM_STR(__NR_restart_syscall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_exit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fork, result); |
| CASE_ASSIGN_ENUM_STR(__NR_read, result); |
| CASE_ASSIGN_ENUM_STR(__NR_write, result); |
| CASE_ASSIGN_ENUM_STR(__NR_open, result); |
| CASE_ASSIGN_ENUM_STR(__NR_close, result); |
| CASE_ASSIGN_ENUM_STR(__NR_waitpid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_creat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_link, result); |
| CASE_ASSIGN_ENUM_STR(__NR_unlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_execve, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_time, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mknod, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chmod, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lchown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_break, result); |
| CASE_ASSIGN_ENUM_STR(__NR_oldstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lseek, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mount, result); |
| CASE_ASSIGN_ENUM_STR(__NR_umount, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_stime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ptrace, result); |
| CASE_ASSIGN_ENUM_STR(__NR_alarm, result); |
| CASE_ASSIGN_ENUM_STR(__NR_oldfstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pause, result); |
| CASE_ASSIGN_ENUM_STR(__NR_utime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_stty, result); |
| CASE_ASSIGN_ENUM_STR(__NR_gtty, result); |
| CASE_ASSIGN_ENUM_STR(__NR_access, result); |
| CASE_ASSIGN_ENUM_STR(__NR_nice, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ftime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_kill, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rename, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mkdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rmdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_dup, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pipe, result); |
| CASE_ASSIGN_ENUM_STR(__NR_times, result); |
| CASE_ASSIGN_ENUM_STR(__NR_prof, result); |
| CASE_ASSIGN_ENUM_STR(__NR_brk, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_signal, result); |
| CASE_ASSIGN_ENUM_STR(__NR_geteuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getegid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_acct, result); |
| CASE_ASSIGN_ENUM_STR(__NR_umount2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fcntl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mpx, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setpgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ulimit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_oldolduname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_umask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chroot, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ustat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_dup2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getppid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpgrp, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setsid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigaction, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sgetmask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ssetmask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setreuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setregid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigsuspend, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigpending, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sethostname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setrlimit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getrlimit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getrusage, result); |
| CASE_ASSIGN_ENUM_STR(__NR_gettimeofday, result); |
| CASE_ASSIGN_ENUM_STR(__NR_settimeofday, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getgroups, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setgroups, result); |
| CASE_ASSIGN_ENUM_STR(__NR_select, result); |
| CASE_ASSIGN_ENUM_STR(__NR_symlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_oldlstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_uselib, result); |
| CASE_ASSIGN_ENUM_STR(__NR_swapon, result); |
| CASE_ASSIGN_ENUM_STR(__NR_reboot, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mmap, result); |
| CASE_ASSIGN_ENUM_STR(__NR_munmap, result); |
| CASE_ASSIGN_ENUM_STR(__NR_truncate, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ftruncate, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchmod, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpriority, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setpriority, result); |
| CASE_ASSIGN_ENUM_STR(__NR_profil, result); |
| CASE_ASSIGN_ENUM_STR(__NR_statfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstatfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioperm, result); |
| CASE_ASSIGN_ENUM_STR(__NR_socketcall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_syslog, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setitimer, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getitimer, result); |
| CASE_ASSIGN_ENUM_STR(__NR_stat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_olduname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_iopl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vhangup, result); |
| CASE_ASSIGN_ENUM_STR(__NR_idle, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vm86old, result); |
| CASE_ASSIGN_ENUM_STR(__NR_wait4, result); |
| CASE_ASSIGN_ENUM_STR(__NR_swapoff, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sysinfo, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ipc, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fsync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigreturn, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clone, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setdomainname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_uname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_modify_ldt, result); |
| CASE_ASSIGN_ENUM_STR(__NR_adjtimex, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mprotect, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigprocmask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_create_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_init_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_delete_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_get_kernel_syms, result); |
| CASE_ASSIGN_ENUM_STR(__NR_quotactl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_bdflush, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sysfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_personality, result); |
| CASE_ASSIGN_ENUM_STR(__NR_afs_syscall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setfsuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setfsgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR__llseek, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getdents, result); |
| CASE_ASSIGN_ENUM_STR(__NR__newselect, result); |
| CASE_ASSIGN_ENUM_STR(__NR_flock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_msync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_writev, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getsid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fdatasync, result); |
| CASE_ASSIGN_ENUM_STR(__NR__sysctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mlock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_munlock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mlockall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_munlockall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setparam, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getparam, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setscheduler, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getscheduler, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_yield, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_get_priority_max, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_get_priority_min, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_rr_get_interval, result); |
| CASE_ASSIGN_ENUM_STR(__NR_nanosleep, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mremap, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setresuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getresuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vm86, result); |
| CASE_ASSIGN_ENUM_STR(__NR_query_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_poll, result); |
| CASE_ASSIGN_ENUM_STR(__NR_nfsservctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setresgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getresgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_prctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigreturn, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigaction, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigprocmask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigpending, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigtimedwait, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigqueueinfo, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigsuspend, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pread64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pwrite64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getcwd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_capget, result); |
| CASE_ASSIGN_ENUM_STR(__NR_capset, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigaltstack, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendfile, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_putpmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vfork, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ugetrlimit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mmap2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_truncate64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ftruncate64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_stat64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lstat64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstat64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lchown32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getgid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_geteuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getegid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setreuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setregid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getgroups32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setgroups32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchown32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setresuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getresuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setresgid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getresgid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chown32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setgid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setfsuid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setfsgid32, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pivot_root, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mincore, result); |
| CASE_ASSIGN_ENUM_STR(__NR_madvise, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getdents64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fcntl64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_gettid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readahead, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lsetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fsetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lgetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fgetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_listxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_llistxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_flistxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_removexattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lremovexattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fremovexattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tkill, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendfile64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_futex, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setaffinity, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getaffinity, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_thread_area, result); |
| CASE_ASSIGN_ENUM_STR(__NR_get_thread_area, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_setup, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_destroy, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_getevents, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_submit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_cancel, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fadvise64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_exit_group, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lookup_dcookie, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_create, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_ctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_wait, result); |
| CASE_ASSIGN_ENUM_STR(__NR_remap_file_pages, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_tid_address, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_create, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_settime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_gettime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_getoverrun, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_delete, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_settime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_gettime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_getres, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_nanosleep, result); |
| CASE_ASSIGN_ENUM_STR(__NR_statfs64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstatfs64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tgkill, result); |
| CASE_ASSIGN_ENUM_STR(__NR_utimes, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fadvise64_64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vserver, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mbind, result); |
| CASE_ASSIGN_ENUM_STR(__NR_get_mempolicy, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_mempolicy, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_open, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_unlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_timedsend, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_timedreceive, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_notify, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_getsetattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_kexec_load, result); |
| CASE_ASSIGN_ENUM_STR(__NR_waitid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_add_key, result); |
| CASE_ASSIGN_ENUM_STR(__NR_request_key, result); |
| CASE_ASSIGN_ENUM_STR(__NR_keyctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioprio_set, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioprio_get, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_init, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_add_watch, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_rm_watch, result); |
| CASE_ASSIGN_ENUM_STR(__NR_migrate_pages, result); |
| CASE_ASSIGN_ENUM_STR(__NR_openat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mkdirat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mknodat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchownat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_futimesat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstatat64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_unlinkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_renameat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_linkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_symlinkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readlinkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchmodat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_faccessat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pselect6, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ppoll, result); |
| CASE_ASSIGN_ENUM_STR(__NR_unshare, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_robust_list, result); |
| CASE_ASSIGN_ENUM_STR(__NR_get_robust_list, result); |
| CASE_ASSIGN_ENUM_STR(__NR_splice, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sync_file_range, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tee, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vmsplice, result); |
| CASE_ASSIGN_ENUM_STR(__NR_move_pages, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getcpu, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_pwait, result); |
| CASE_ASSIGN_ENUM_STR(__NR_utimensat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_signalfd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timerfd_create, result); |
| CASE_ASSIGN_ENUM_STR(__NR_eventfd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fallocate, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timerfd_settime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timerfd_gettime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_signalfd4, result); |
| CASE_ASSIGN_ENUM_STR(__NR_eventfd2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_create1, result); |
| CASE_ASSIGN_ENUM_STR(__NR_dup3, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pipe2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_init1, result); |
| CASE_ASSIGN_ENUM_STR(__NR_preadv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pwritev, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_tgsigqueueinfo, result); |
| CASE_ASSIGN_ENUM_STR(__NR_perf_event_open, result); |
| CASE_ASSIGN_ENUM_STR(__NR_recvmmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fanotify_init, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fanotify_mark, result); |
| CASE_ASSIGN_ENUM_STR(__NR_prlimit64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_name_to_handle_at, result); |
| CASE_ASSIGN_ENUM_STR(__NR_open_by_handle_at, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_adjtime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_syncfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendmmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setns, result); |
| CASE_ASSIGN_ENUM_STR(__NR_process_vm_readv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_process_vm_writev, result); |
| CASE_ASSIGN_ENUM_STR(__NR_kcmp, result); |
| CASE_ASSIGN_ENUM_STR(__NR_finit_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getattr, result); |
| default: |
| result = base::StringPrintf("%d???", sysno); |
| break; |
| } |
| return result; |
| } |
| #elif defined(__ILP32__) && !defined(__arm__) |
| std::string GetX86SyscallStr(int sysno) { |
| // Based on android/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h. |
| std::string result; |
| switch (sysno) { |
| CASE_ASSIGN_ENUM_STR(__NR_read, result); |
| CASE_ASSIGN_ENUM_STR(__NR_write, result); |
| CASE_ASSIGN_ENUM_STR(__NR_open, result); |
| CASE_ASSIGN_ENUM_STR(__NR_close, result); |
| CASE_ASSIGN_ENUM_STR(__NR_stat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lstat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_poll, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lseek, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mmap, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mprotect, result); |
| CASE_ASSIGN_ENUM_STR(__NR_munmap, result); |
| CASE_ASSIGN_ENUM_STR(__NR_brk, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigprocmask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pread64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pwrite64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_access, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pipe, result); |
| CASE_ASSIGN_ENUM_STR(__NR_select, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_yield, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mremap, result); |
| CASE_ASSIGN_ENUM_STR(__NR_msync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mincore, result); |
| CASE_ASSIGN_ENUM_STR(__NR_madvise, result); |
| CASE_ASSIGN_ENUM_STR(__NR_shmget, result); |
| CASE_ASSIGN_ENUM_STR(__NR_shmat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_shmctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_dup, result); |
| CASE_ASSIGN_ENUM_STR(__NR_dup2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pause, result); |
| CASE_ASSIGN_ENUM_STR(__NR_nanosleep, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getitimer, result); |
| CASE_ASSIGN_ENUM_STR(__NR_alarm, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setitimer, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendfile, result); |
| CASE_ASSIGN_ENUM_STR(__NR_socket, result); |
| CASE_ASSIGN_ENUM_STR(__NR_connect, result); |
| CASE_ASSIGN_ENUM_STR(__NR_accept, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendto, result); |
| CASE_ASSIGN_ENUM_STR(__NR_shutdown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_bind, result); |
| CASE_ASSIGN_ENUM_STR(__NR_listen, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getsockname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpeername, result); |
| CASE_ASSIGN_ENUM_STR(__NR_socketpair, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clone, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fork, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vfork, result); |
| CASE_ASSIGN_ENUM_STR(__NR_exit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_wait4, result); |
| CASE_ASSIGN_ENUM_STR(__NR_kill, result); |
| CASE_ASSIGN_ENUM_STR(__NR_uname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_semget, result); |
| CASE_ASSIGN_ENUM_STR(__NR_semop, result); |
| CASE_ASSIGN_ENUM_STR(__NR_semctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_shmdt, result); |
| CASE_ASSIGN_ENUM_STR(__NR_msgget, result); |
| CASE_ASSIGN_ENUM_STR(__NR_msgsnd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_msgrcv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_msgctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fcntl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_flock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fsync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fdatasync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_truncate, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ftruncate, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getdents, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getcwd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rename, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mkdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rmdir, result); |
| CASE_ASSIGN_ENUM_STR(__NR_creat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_link, result); |
| CASE_ASSIGN_ENUM_STR(__NR_unlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_symlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chmod, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchmod, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lchown, result); |
| CASE_ASSIGN_ENUM_STR(__NR_umask, result); |
| CASE_ASSIGN_ENUM_STR(__NR_gettimeofday, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getrlimit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getrusage, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sysinfo, result); |
| CASE_ASSIGN_ENUM_STR(__NR_times, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_syslog, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_geteuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getegid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setpgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getppid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpgrp, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setsid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setreuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setregid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getgroups, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setgroups, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setresuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getresuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setresgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getresgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setfsuid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setfsgid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getsid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_capget, result); |
| CASE_ASSIGN_ENUM_STR(__NR_capset, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigsuspend, result); |
| CASE_ASSIGN_ENUM_STR(__NR_utime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mknod, result); |
| CASE_ASSIGN_ENUM_STR(__NR_personality, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ustat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_statfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fstatfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sysfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpriority, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setpriority, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setparam, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getparam, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setscheduler, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getscheduler, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_get_priority_max, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_get_priority_min, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_rr_get_interval, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mlock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_munlock, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mlockall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_munlockall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vhangup, result); |
| CASE_ASSIGN_ENUM_STR(__NR_modify_ldt, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pivot_root, result); |
| CASE_ASSIGN_ENUM_STR(__NR_prctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_arch_prctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_adjtimex, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setrlimit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_chroot, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sync, result); |
| CASE_ASSIGN_ENUM_STR(__NR_acct, result); |
| CASE_ASSIGN_ENUM_STR(__NR_settimeofday, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mount, result); |
| CASE_ASSIGN_ENUM_STR(__NR_umount2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_swapon, result); |
| CASE_ASSIGN_ENUM_STR(__NR_swapoff, result); |
| CASE_ASSIGN_ENUM_STR(__NR_reboot, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sethostname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setdomainname, result); |
| CASE_ASSIGN_ENUM_STR(__NR_iopl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioperm, result); |
| CASE_ASSIGN_ENUM_STR(__NR_init_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_delete_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_quotactl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getpmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_putpmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_afs_syscall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tuxcall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_security, result); |
| CASE_ASSIGN_ENUM_STR(__NR_gettid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readahead, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lsetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fsetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lgetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fgetxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_listxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_llistxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_flistxattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_removexattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lremovexattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fremovexattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tkill, result); |
| CASE_ASSIGN_ENUM_STR(__NR_time, result); |
| CASE_ASSIGN_ENUM_STR(__NR_futex, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setaffinity, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getaffinity, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_setup, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_destroy, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_getevents, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_submit, result); |
| CASE_ASSIGN_ENUM_STR(__NR_io_cancel, result); |
| CASE_ASSIGN_ENUM_STR(__NR_lookup_dcookie, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_create, result); |
| CASE_ASSIGN_ENUM_STR(__NR_remap_file_pages, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getdents64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_tid_address, result); |
| CASE_ASSIGN_ENUM_STR(__NR_restart_syscall, result); |
| CASE_ASSIGN_ENUM_STR(__NR_semtimedop, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fadvise64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_settime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_gettime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_getoverrun, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_delete, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_settime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_gettime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_getres, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_nanosleep, result); |
| CASE_ASSIGN_ENUM_STR(__NR_exit_group, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_wait, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_ctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tgkill, result); |
| CASE_ASSIGN_ENUM_STR(__NR_utimes, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mbind, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_mempolicy, result); |
| CASE_ASSIGN_ENUM_STR(__NR_get_mempolicy, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_open, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_unlink, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_timedsend, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_timedreceive, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_getsetattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_add_key, result); |
| CASE_ASSIGN_ENUM_STR(__NR_request_key, result); |
| CASE_ASSIGN_ENUM_STR(__NR_keyctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioprio_set, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioprio_get, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_init, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_add_watch, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_rm_watch, result); |
| CASE_ASSIGN_ENUM_STR(__NR_migrate_pages, result); |
| CASE_ASSIGN_ENUM_STR(__NR_openat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mkdirat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mknodat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchownat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_futimesat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_newfstatat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_unlinkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_renameat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_linkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_symlinkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readlinkat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fchmodat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_faccessat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pselect6, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ppoll, result); |
| CASE_ASSIGN_ENUM_STR(__NR_unshare, result); |
| CASE_ASSIGN_ENUM_STR(__NR_splice, result); |
| CASE_ASSIGN_ENUM_STR(__NR_tee, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sync_file_range, result); |
| CASE_ASSIGN_ENUM_STR(__NR_utimensat, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_pwait, result); |
| CASE_ASSIGN_ENUM_STR(__NR_signalfd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timerfd_create, result); |
| CASE_ASSIGN_ENUM_STR(__NR_eventfd, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fallocate, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timerfd_settime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timerfd_gettime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_accept4, result); |
| CASE_ASSIGN_ENUM_STR(__NR_signalfd4, result); |
| CASE_ASSIGN_ENUM_STR(__NR_eventfd2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_epoll_create1, result); |
| CASE_ASSIGN_ENUM_STR(__NR_dup3, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pipe2, result); |
| CASE_ASSIGN_ENUM_STR(__NR_inotify_init1, result); |
| CASE_ASSIGN_ENUM_STR(__NR_perf_event_open, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fanotify_init, result); |
| CASE_ASSIGN_ENUM_STR(__NR_fanotify_mark, result); |
| CASE_ASSIGN_ENUM_STR(__NR_prlimit64, result); |
| CASE_ASSIGN_ENUM_STR(__NR_name_to_handle_at, result); |
| CASE_ASSIGN_ENUM_STR(__NR_open_by_handle_at, result); |
| CASE_ASSIGN_ENUM_STR(__NR_clock_adjtime, result); |
| CASE_ASSIGN_ENUM_STR(__NR_syncfs, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setns, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getcpu, result); |
| CASE_ASSIGN_ENUM_STR(__NR_kcmp, result); |
| CASE_ASSIGN_ENUM_STR(__NR_finit_module, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_setattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sched_getattr, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigaction, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigreturn, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ioctl, result); |
| CASE_ASSIGN_ENUM_STR(__NR_readv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_writev, result); |
| CASE_ASSIGN_ENUM_STR(__NR_recvfrom, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_recvmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_execve, result); |
| CASE_ASSIGN_ENUM_STR(__NR_ptrace, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigpending, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigtimedwait, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_sigqueueinfo, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sigaltstack, result); |
| CASE_ASSIGN_ENUM_STR(__NR_timer_create, result); |
| CASE_ASSIGN_ENUM_STR(__NR_mq_notify, result); |
| CASE_ASSIGN_ENUM_STR(__NR_kexec_load, result); |
| CASE_ASSIGN_ENUM_STR(__NR_waitid, result); |
| CASE_ASSIGN_ENUM_STR(__NR_set_robust_list, result); |
| CASE_ASSIGN_ENUM_STR(__NR_get_robust_list, result); |
| CASE_ASSIGN_ENUM_STR(__NR_vmsplice, result); |
| CASE_ASSIGN_ENUM_STR(__NR_move_pages, result); |
| CASE_ASSIGN_ENUM_STR(__NR_preadv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_pwritev, result); |
| CASE_ASSIGN_ENUM_STR(__NR_rt_tgsigqueueinfo, result); |
| CASE_ASSIGN_ENUM_STR(__NR_recvmmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_sendmmsg, result); |
| CASE_ASSIGN_ENUM_STR(__NR_process_vm_readv, result); |
| CASE_ASSIGN_ENUM_STR(__NR_process_vm_writev, result); |
| CASE_ASSIGN_ENUM_STR(__NR_setsockopt, result); |
| CASE_ASSIGN_ENUM_STR(__NR_getsockopt, result); |
| default: |
| result = base::StringPrintf("%d???", sysno); |
| break; |
| } |
| return result; |
| } |
| #endif |
| |
| std::string GetSyscallStr(int sysno) { |
| #if defined(__arm__) |
| return GetArmSyscallStr(sysno); |
| #else |
| return GetX86SyscallStr(sysno); |
| #endif |
| } |
| |
| } // namespace arc |