You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

928 lines
18 KiB

/*
* Copyright 2002-2019 Intel Corporation.
*
* This software is provided to you as Sample Source Code as defined in the accompanying
* End User License Agreement for the Intel(R) Software Development Products ("Agreement")
* section 1.L.
*
* This software and the related documents are provided as is, with no express or implied
* warranties, other than those that are expressly stated in the License.
*/
#include "pin.H"
#if defined(PIN_GNU_COMPATIBLE)
#endif
#if !defined(TARGET_WINDOWS)
#include <sys/syscall.h>
#include <iostream>
#include "syscall_names.H"
// This is a generic isa/kernel version method to translate syscall numbers to
// names. Every kernel has different syscalls, and different numbers for the
// same syscalls, so this is a static map from numbers to names.
// Hopefully g++ handles switches well
//
// To add a syscall "foo"
// In syscall_names.H:
// 1. Add NUM_SYS_foo to the end of SYSCALL_NUMS
// In syscall_names.C:
// 2. Add "SYS_foo" to the end of _syscall_names[]
// 3. Add DO_CASE(foo); to the end of the big switch statement
//
// To remove a syscall
// 0. Don't
// 1. wrap the DO_CASE statement with:
// #ifdef __NR_foo
// DO_CASE(foo);
// #endif
//
enum SYSCALL_NUMS {
NUM_SYS_NYI,
NUM_SYS_UNKNOWN,
///////START OF LIST////////////
NUM_SYS_restart_syscall,
NUM_SYS_exit,
NUM_SYS_fork,
NUM_SYS_read,
NUM_SYS_write,
NUM_SYS_open,
NUM_SYS_close,
NUM_SYS_waitpid,
NUM_SYS_creat,
NUM_SYS_link,
NUM_SYS_unlink,
NUM_SYS_execve,
NUM_SYS_chdir,
NUM_SYS_time,
NUM_SYS_mknod,
NUM_SYS_chmod,
NUM_SYS_lchown,
NUM_SYS_break,
NUM_SYS_oldstat,
NUM_SYS_lseek,
NUM_SYS_getpid,
NUM_SYS_mount,
NUM_SYS_umount,
NUM_SYS_setuid,
NUM_SYS_getuid,
NUM_SYS_stime,
NUM_SYS_ptrace,
NUM_SYS_alarm,
NUM_SYS_oldfstat,
NUM_SYS_pause,
NUM_SYS_utime,
NUM_SYS_stty,
NUM_SYS_gtty,
NUM_SYS_access,
NUM_SYS_nice,
NUM_SYS_ftime,
NUM_SYS_sync,
NUM_SYS_kill,
NUM_SYS_rename,
NUM_SYS_mkdir,
NUM_SYS_rmdir,
NUM_SYS_dup,
NUM_SYS_pipe,
NUM_SYS_times,
NUM_SYS_prof,
NUM_SYS_brk,
NUM_SYS_setgid,
NUM_SYS_getgid,
NUM_SYS_signal,
NUM_SYS_geteuid,
NUM_SYS_getegid,
NUM_SYS_acct,
NUM_SYS_umount2,
NUM_SYS_lock,
NUM_SYS_ioctl,
NUM_SYS_fcntl,
NUM_SYS_mpx,
NUM_SYS_setpgid,
NUM_SYS_ulimit,
NUM_SYS_oldolduname,
NUM_SYS_umask,
NUM_SYS_chroot,
NUM_SYS_ustat,
NUM_SYS_dup2,
NUM_SYS_getppid,
NUM_SYS_getpgrp,
NUM_SYS_setsid,
NUM_SYS_sigaction,
NUM_SYS_sgetmask,
NUM_SYS_ssetmask,
NUM_SYS_setreuid,
NUM_SYS_setregid,
NUM_SYS_sigsuspend,
NUM_SYS_sigpending,
NUM_SYS_sethostname,
NUM_SYS_setrlimit,
NUM_SYS_getrlimit,
NUM_SYS_getrusage,
NUM_SYS_gettimeofday,
NUM_SYS_settimeofday,
NUM_SYS_getgroups,
NUM_SYS_setgroups,
NUM_SYS_select,
NUM_SYS_symlink,
NUM_SYS_oldlstat,
NUM_SYS_readlink,
NUM_SYS_uselib,
NUM_SYS_swapon,
NUM_SYS_reboot,
NUM_SYS_readdir,
NUM_SYS_mmap,
NUM_SYS_munmap,
NUM_SYS_truncate,
NUM_SYS_ftruncate,
NUM_SYS_fchmod,
NUM_SYS_fchown,
NUM_SYS_getpriority,
NUM_SYS_setpriority,
NUM_SYS_profil,
NUM_SYS_statfs,
NUM_SYS_fstatfs,
NUM_SYS_ioperm,
NUM_SYS_socketcall,
NUM_SYS_syslog,
NUM_SYS_setitimer,
NUM_SYS_getitimer,
NUM_SYS_stat,
NUM_SYS_lstat,
NUM_SYS_fstat,
NUM_SYS_olduname,
NUM_SYS_iopl,
NUM_SYS_vhangup,
NUM_SYS_idle,
NUM_SYS_vm86old,
NUM_SYS_wait4,
NUM_SYS_swapoff,
NUM_SYS_sysinfo,
NUM_SYS_ipc,
NUM_SYS_fsync,
NUM_SYS_sigreturn,
NUM_SYS_clone,
NUM_SYS_setdomainname,
NUM_SYS_uname,
NUM_SYS_modify_ldt,
NUM_SYS_adjtimex,
NUM_SYS_mprotect,
NUM_SYS_sigprocmask,
NUM_SYS_create_module,
NUM_SYS_init_module,
NUM_SYS_delete_module,
NUM_SYS_get_kernel_syms,
NUM_SYS_quotactl,
NUM_SYS_getpgid,
NUM_SYS_fchdir,
NUM_SYS_bdflush,
NUM_SYS_sysfs,
NUM_SYS_personality,
NUM_SYS_afs_syscall,
NUM_SYS_setfsuid,
NUM_SYS_setfsgid,
NUM_SYS__llseek,
NUM_SYS_getdents,
NUM_SYS__newselect,
NUM_SYS_flock,
NUM_SYS_msync,
NUM_SYS_readv,
NUM_SYS_writev,
NUM_SYS_getsid,
NUM_SYS_fdatasync,
NUM_SYS__sysctl,
NUM_SYS_mlock,
NUM_SYS_munlock,
NUM_SYS_mlockall,
NUM_SYS_munlockall,
NUM_SYS_sched_setparam,
NUM_SYS_sched_getparam,
NUM_SYS_sched_setscheduler,
NUM_SYS_sched_getscheduler,
NUM_SYS_sched_yield,
NUM_SYS_sched_get_priority_max,
NUM_SYS_sched_get_priority_min,
NUM_SYS_sched_rr_get_interval,
NUM_SYS_nanosleep,
NUM_SYS_mremap,
NUM_SYS_setresuid,
NUM_SYS_getresuid,
NUM_SYS_vm86,
NUM_SYS_query_module,
NUM_SYS_poll,
NUM_SYS_nfsservctl,
NUM_SYS_setresgid,
NUM_SYS_getresgid,
NUM_SYS_prctl,
NUM_SYS_rt_sigreturn,
NUM_SYS_rt_sigaction,
NUM_SYS_rt_sigprocmask,
NUM_SYS_rt_sigpending,
NUM_SYS_rt_sigtimedwait,
NUM_SYS_rt_sigqueueinfo,
NUM_SYS_rt_sigsuspend,
NUM_SYS_pread64,
NUM_SYS_pwrite64,
NUM_SYS_chown,
NUM_SYS_getcwd,
NUM_SYS_capget,
NUM_SYS_capset,
NUM_SYS_sigaltstack,
NUM_SYS_sendfile,
NUM_SYS_getpmsg,
NUM_SYS_putpmsg,
NUM_SYS_vfork,
NUM_SYS_ugetrlimit,
NUM_SYS_mmap2,
NUM_SYS_truncate64,
NUM_SYS_ftruncate64,
NUM_SYS_stat64,
NUM_SYS_lstat64,
NUM_SYS_fstat64,
NUM_SYS_lchown32,
NUM_SYS_getuid32,
NUM_SYS_getgid32,
NUM_SYS_geteuid32,
NUM_SYS_getegid32,
NUM_SYS_setreuid32,
NUM_SYS_setregid32,
NUM_SYS_getgroups32,
NUM_SYS_setgroups32,
NUM_SYS_fchown32,
NUM_SYS_setresuid32,
NUM_SYS_getresuid32,
NUM_SYS_setresgid32,
NUM_SYS_getresgid32,
NUM_SYS_chown32,
NUM_SYS_setuid32,
NUM_SYS_setgid32,
NUM_SYS_setfsuid32,
NUM_SYS_setfsgid32,
NUM_SYS_pivot_root,
NUM_SYS_mincore,
NUM_SYS_madvise,
NUM_SYS_madvise1,
NUM_SYS_getdents64,
NUM_SYS_fcntl64,
NUM_SYS_security,
NUM_SYS_gettid,
NUM_SYS_readahead,
NUM_SYS_setxattr,
NUM_SYS_lsetxattr,
NUM_SYS_fsetxattr,
NUM_SYS_getxattr,
NUM_SYS_lgetxattr,
NUM_SYS_fgetxattr,
NUM_SYS_listxattr,
NUM_SYS_llistxattr,
NUM_SYS_flistxattr,
NUM_SYS_removexattr,
NUM_SYS_lremovexattr,
NUM_SYS_fremovexattr,
NUM_SYS_tkill,
NUM_SYS_sendfile64,
NUM_SYS_futex,
NUM_SYS_sched_setaffinity,
NUM_SYS_sched_getaffinity,
NUM_SYS_set_thread_area,
NUM_SYS_get_thread_area,
NUM_SYS_io_setup,
NUM_SYS_io_destroy,
NUM_SYS_io_getevents,
NUM_SYS_io_submit,
NUM_SYS_io_cancel,
NUM_SYS_alloc_hugepages,
NUM_SYS_free_hugepages,
NUM_SYS_exit_group,
NUM_SYS_set_tid_address
//Add new NUM_SYS_ here
///////END OF LIST////////////
};
const char *_syscall_names[] = {
"NYI",
"UNKNOWN",
///////START OF LIST////////////
"SYS_restart_syscall",
"SYS_exit",
"SYS_fork",
"SYS_read",
"SYS_write",
"SYS_open",
"SYS_close",
"SYS_waitpid",
"SYS_creat",
"SYS_link",
"SYS_unlink",
"SYS_execve",
"SYS_chdir",
"SYS_time",
"SYS_mknod",
"SYS_chmod",
"SYS_lchown",
"SYS_break",
"SYS_oldstat",
"SYS_lseek",
"SYS_getpid",
"SYS_mount",
"SYS_umount",
"SYS_setuid",
"SYS_getuid",
"SYS_stime",
"SYS_ptrace",
"SYS_alarm",
"SYS_oldfstat",
"SYS_pause",
"SYS_utime",
"SYS_stty",
"SYS_gtty",
"SYS_access",
"SYS_nice",
"SYS_ftime",
"SYS_sync",
"SYS_kill",
"SYS_rename",
"SYS_mkdir",
"SYS_rmdir",
"SYS_dup",
"SYS_pipe",
"SYS_times",
"SYS_prof",
"SYS_brk",
"SYS_setgid",
"SYS_getgid",
"SYS_signal",
"SYS_geteuid",
"SYS_getegid",
"SYS_acct",
"SYS_umount2",
"SYS_lock",
"SYS_ioctl",
"SYS_fcntl",
"SYS_mpx",
"SYS_setpgid",
"SYS_ulimit",
"SYS_oldolduname",
"SYS_umask",
"SYS_chroot",
"SYS_ustat",
"SYS_dup2",
"SYS_getppid",
"SYS_getpgrp",
"SYS_setsid",
"SYS_sigaction",
"SYS_sgetmask",
"SYS_ssetmask",
"SYS_setreuid",
"SYS_setregid",
"SYS_sigsuspend",
"SYS_sigpending",
"SYS_sethostname",
"SYS_setrlimit",
"SYS_getrlimit",
"SYS_getrusage",
"SYS_gettimeofday",
"SYS_settimeofday",
"SYS_getgroups",
"SYS_setgroups",
"SYS_select",
"SYS_symlink",
"SYS_oldlstat",
"SYS_readlink",
"SYS_uselib",
"SYS_swapon",
"SYS_reboot",
"SYS_readdir",
"SYS_mmap",
"SYS_munmap",
"SYS_truncate",
"SYS_ftruncate",
"SYS_fchmod",
"SYS_fchown",
"SYS_getpriority",
"SYS_setpriority",
"SYS_profil",
"SYS_statfs",
"SYS_fstatfs",
"SYS_ioperm",
"SYS_socketcall",
"SYS_syslog",
"SYS_setitimer",
"SYS_getitimer",
"SYS_stat",
"SYS_lstat",
"SYS_fstat",
"SYS_olduname",
"SYS_iopl",
"SYS_vhangup",
"SYS_idle",
"SYS_vm86old",
"SYS_wait4",
"SYS_swapoff",
"SYS_sysinfo",
"SYS_ipc",
"SYS_fsync",
"SYS_sigreturn",
"SYS_clone",
"SYS_setdomainname",
"SYS_uname",
"SYS_modify_ldt",
"SYS_adjtimex",
"SYS_mprotect",
"SYS_sigprocmask",
"SYS_create_module",
"SYS_init_module",
"SYS_delete_module",
"SYS_get_kernel_syms",
"SYS_quotactl",
"SYS_getpgid",
"SYS_fchdir",
"SYS_bdflush",
"SYS_sysfs",
"SYS_personality",
"SYS_afs_syscall",
"SYS_setfsuid",
"SYS_setfsgid",
"SYS__llseek",
"SYS_getdents",
"SYS__newselect",
"SYS_flock",
"SYS_msync",
"SYS_readv",
"SYS_writev",
"SYS_getsid",
"SYS_fdatasync",
"SYS__sysctl",
"SYS_mlock",
"SYS_munlock",
"SYS_mlockall",
"SYS_munlockall",
"SYS_sched_setparam",
"SYS_sched_getparam",
"SYS_sched_setscheduler",
"SYS_sched_getscheduler",
"SYS_sched_yield",
"SYS_sched_get_priority_max",
"SYS_sched_get_priority_min",
"SYS_sched_rr_get_interval",
"SYS_nanosleep",
"SYS_mremap",
"SYS_setresuid",
"SYS_getresuid",
"SYS_vm86",
"SYS_query_module",
"SYS_poll",
"SYS_nfsservctl",
"SYS_setresgid",
"SYS_getresgid",
"SYS_prctl",
"SYS_rt_sigreturn",
"SYS_rt_sigaction",
"SYS_rt_sigprocmask",
"SYS_rt_sigpending",
"SYS_rt_sigtimedwait",
"SYS_rt_sigqueueinfo",
"SYS_rt_sigsuspend",
"SYS_pread64",
"SYS_pwrite64",
"SYS_chown",
"SYS_getcwd",
"SYS_capget",
"SYS_capset",
"SYS_sigaltstack",
"SYS_sendfile",
"SYS_getpmsg",
"SYS_putpmsg",
"SYS_vfork",
"SYS_ugetrlimit",
"SYS_mmap2",
"SYS_truncate64",
"SYS_ftruncate64",
"SYS_stat64",
"SYS_lstat64",
"SYS_fstat64",
"SYS_lchown32",
"SYS_getuid32",
"SYS_getgid32",
"SYS_geteuid32",
"SYS_getegid32",
"SYS_setreuid32",
"SYS_setregid32",
"SYS_getgroups32",
"SYS_setgroups32",
"SYS_fchown32",
"SYS_setresuid32",
"SYS_getresuid32",
"SYS_setresgid32",
"SYS_getresgid32",
"SYS_chown32",
"SYS_setuid32",
"SYS_setgid32",
"SYS_setfsuid32",
"SYS_setfsgid32",
"SYS_pivot_root",
"SYS_mincore",
"SYS_madvise",
"SYS_madvise1",
"SYS_getdents64",
"SYS_fcntl64",
"SYS_security",
"SYS_gettid",
"SYS_readahead",
"SYS_setxattr",
"SYS_lsetxattr",
"SYS_fsetxattr",
"SYS_getxattr",
"SYS_lgetxattr",
"SYS_fgetxattr",
"SYS_listxattr",
"SYS_llistxattr",
"SYS_flistxattr",
"SYS_removexattr",
"SYS_lremovexattr",
"SYS_fremovexattr",
"SYS_tkill",
"SYS_sendfile64",
"SYS_futex",
"SYS_sched_setaffinity",
"SYS_sched_getaffinity",
"SYS_set_thread_area",
"SYS_get_thread_area",
"SYS_io_setup",
"SYS_io_destroy",
"SYS_io_getevents",
"SYS_io_submit",
"SYS_io_cancel",
"SYS_alloc_hugepages",
"SYS_free_hugepages",
"SYS_exit_group",
"SYS_set_tid_address"
// Add new "SYS_" here
///////END OF _syscall_names[]////////////
};
const char *SYS_SyscallName(int num)
{
#define DO_CASE(n) case __NR_ ## n: return _syscall_names[NUM_SYS_ ## n]
switch(num) {
#ifdef __NR_restart_syscall
DO_CASE(restart_syscall);
#endif
DO_CASE(exit);
DO_CASE(fork);
DO_CASE(read);
DO_CASE(write);
DO_CASE(open);
DO_CASE(close);
DO_CASE(waitpid);
DO_CASE(creat);
DO_CASE(link);
DO_CASE(unlink);
DO_CASE(execve);
DO_CASE(chdir);
DO_CASE(time);
DO_CASE(mknod);
DO_CASE(chmod);
DO_CASE(lchown);
DO_CASE(break);
DO_CASE(oldstat);
DO_CASE(lseek);
DO_CASE(getpid);
DO_CASE(mount);
DO_CASE(umount);
DO_CASE(setuid);
DO_CASE(getuid);
DO_CASE(stime);
DO_CASE(ptrace);
DO_CASE(alarm);
DO_CASE(oldfstat);
DO_CASE(pause);
DO_CASE(utime);
DO_CASE(stty);
DO_CASE(gtty);
DO_CASE(access);
DO_CASE(nice);
DO_CASE(ftime);
DO_CASE(sync);
DO_CASE(kill);
DO_CASE(rename);
DO_CASE(mkdir);
DO_CASE(rmdir);
DO_CASE(dup);
DO_CASE(pipe);
DO_CASE(times);
DO_CASE(prof);
DO_CASE(brk);
DO_CASE(setgid);
DO_CASE(getgid);
DO_CASE(signal);
DO_CASE(geteuid);
DO_CASE(getegid);
DO_CASE(acct);
DO_CASE(umount2);
DO_CASE(lock);
DO_CASE(ioctl);
DO_CASE(fcntl);
DO_CASE(mpx);
DO_CASE(setpgid);
DO_CASE(ulimit);
DO_CASE(oldolduname);
DO_CASE(umask);
DO_CASE(chroot);
DO_CASE(ustat);
DO_CASE(dup2);
DO_CASE(getppid);
DO_CASE(getpgrp);
DO_CASE(setsid);
DO_CASE(sigaction);
DO_CASE(sgetmask);
DO_CASE(ssetmask);
DO_CASE(setreuid);
DO_CASE(setregid);
DO_CASE(sigsuspend);
DO_CASE(sigpending);
DO_CASE(sethostname);
DO_CASE(setrlimit);
DO_CASE(getrlimit);
DO_CASE(getrusage);
DO_CASE(gettimeofday);
DO_CASE(settimeofday);
DO_CASE(getgroups);
DO_CASE(setgroups);
DO_CASE(select);
DO_CASE(symlink);
DO_CASE(oldlstat);
DO_CASE(readlink);
DO_CASE(uselib);
DO_CASE(swapon);
DO_CASE(reboot);
DO_CASE(readdir);
DO_CASE(mmap);
DO_CASE(munmap);
DO_CASE(truncate);
DO_CASE(ftruncate);
DO_CASE(fchmod);
DO_CASE(fchown);
DO_CASE(getpriority);
DO_CASE(setpriority);
DO_CASE(profil);
DO_CASE(statfs);
DO_CASE(fstatfs);
DO_CASE(ioperm);
DO_CASE(socketcall);
DO_CASE(syslog);
DO_CASE(setitimer);
DO_CASE(getitimer);
DO_CASE(stat);
DO_CASE(lstat);
DO_CASE(fstat);
DO_CASE(olduname);
DO_CASE(iopl);
DO_CASE(vhangup);
DO_CASE(idle);
DO_CASE(vm86old);
DO_CASE(wait4);
DO_CASE(swapoff);
DO_CASE(sysinfo);
DO_CASE(ipc);
DO_CASE(fsync);
DO_CASE(sigreturn);
DO_CASE(clone);
DO_CASE(setdomainname);
DO_CASE(uname);
DO_CASE(modify_ldt);
DO_CASE(adjtimex);
DO_CASE(mprotect);
DO_CASE(sigprocmask);
DO_CASE(create_module);
DO_CASE(init_module);
DO_CASE(delete_module);
DO_CASE(get_kernel_syms);
DO_CASE(quotactl);
DO_CASE(getpgid);
DO_CASE(fchdir);
DO_CASE(bdflush);
DO_CASE(sysfs);
DO_CASE(personality);
DO_CASE(afs_syscall);
DO_CASE(setfsuid);
DO_CASE(setfsgid);
DO_CASE(_llseek);
DO_CASE(getdents);
DO_CASE(_newselect);
DO_CASE(flock);
DO_CASE(msync);
DO_CASE(readv);
DO_CASE(writev);
DO_CASE(getsid);
DO_CASE(fdatasync);
DO_CASE(_sysctl);
DO_CASE(mlock);
DO_CASE(munlock);
DO_CASE(mlockall);
DO_CASE(munlockall);
DO_CASE(sched_setparam);
DO_CASE(sched_getparam);
DO_CASE(sched_setscheduler);
DO_CASE(sched_getscheduler);
DO_CASE(sched_yield);
DO_CASE(sched_get_priority_max);
DO_CASE(sched_get_priority_min);
DO_CASE(sched_rr_get_interval);
DO_CASE(nanosleep);
DO_CASE(mremap);
DO_CASE(setresuid);
DO_CASE(getresuid);
DO_CASE(vm86);
DO_CASE(query_module);
DO_CASE(poll);
DO_CASE(nfsservctl);
DO_CASE(setresgid);
DO_CASE(getresgid);
DO_CASE(prctl);
DO_CASE(rt_sigreturn);
DO_CASE(rt_sigaction);
DO_CASE(rt_sigprocmask);
DO_CASE(rt_sigpending);
DO_CASE(rt_sigtimedwait);
DO_CASE(rt_sigqueueinfo);
DO_CASE(rt_sigsuspend);
#ifdef __NR_pread64
DO_CASE(pread64);
#endif
#ifdef __NR_pwrite64
DO_CASE(pwrite64);
#endif
DO_CASE(chown);
DO_CASE(getcwd);
DO_CASE(capget);
DO_CASE(capset);
DO_CASE(sigaltstack);
DO_CASE(sendfile);
DO_CASE(getpmsg);
DO_CASE(putpmsg);
DO_CASE(vfork);
DO_CASE(ugetrlimit);
DO_CASE(mmap2);
#ifdef __NR_truncate64
DO_CASE(truncate64);
#endif
#ifdef __NR_ftruncate64
DO_CASE(ftruncate64);
#endif
#ifdef __NR_stat64
DO_CASE(stat64);
#endif
#ifdef __NR_lstat64
DO_CASE(lstat64);
#endif
#ifdef __NR_fstat64
DO_CASE(fstat64);
#endif
DO_CASE(lchown32);
DO_CASE(getuid32);
DO_CASE(getgid32);
DO_CASE(geteuid32);
DO_CASE(getegid32);
DO_CASE(setreuid32);
DO_CASE(setregid32);
DO_CASE(getgroups32);
DO_CASE(setgroups32);
DO_CASE(fchown32);
DO_CASE(setresuid32);
DO_CASE(getresuid32);
DO_CASE(setresgid32);
DO_CASE(getresgid32);
DO_CASE(chown32);
DO_CASE(setuid32);
DO_CASE(setgid32);
DO_CASE(setfsuid32);
DO_CASE(setfsgid32);
DO_CASE(pivot_root);
DO_CASE(mincore);
DO_CASE(madvise);
#ifdef __NR_madvise1
# if __NR_madvise != __NR_madvise1
DO_CASE(madvise1); //DUPLICATE of madvise?
# endif
#endif // __NR_madvise1 defined
#ifdef __NR_getdents64
DO_CASE(getdents64);
#endif
#ifdef __NR_fcntl64
DO_CASE(fcntl64);
#endif
#ifdef __NR_security
DO_CASE(security);
#endif
#ifdef __NR_gettid
DO_CASE(gettid);
#endif
#ifdef __NR_readahead
DO_CASE(readahead);
#endif
#ifdef __NR_setxattr
DO_CASE(setxattr);
#endif
#ifdef __NR_lsetxattr
DO_CASE(lsetxattr);
#endif
#ifdef __NR_fsetxattr
DO_CASE(fsetxattr);
#endif
#ifdef __NR_getxattr
DO_CASE(getxattr);
#endif
#ifdef __NR_lgetxattr
DO_CASE(lgetxattr);
#endif
#ifdef __NR_fgetxattr
DO_CASE(fgetxattr);
#endif
#ifdef __NR_listxattr
DO_CASE(listxattr);
#endif
#ifdef __NR_llistxattr
DO_CASE(llistxattr);
#endif
#ifdef __NR_flistxattr
DO_CASE(flistxattr);
#endif
#ifdef __NR_removexattr
DO_CASE(removexattr);
#endif
#ifdef __NR_lremovexattr
DO_CASE(lremovexattr);
#endif
#ifdef __NR_fremovexattr
DO_CASE(fremovexattr);
#endif
#ifdef __NR_tkill
DO_CASE(tkill);
#endif
#ifdef __NR_sendfile64
DO_CASE(sendfile64);
#endif
#ifdef __NR_futex
DO_CASE(futex);
#endif
#ifdef __NR_sched_setaffinity
DO_CASE(sched_setaffinity);
#endif
#ifdef __NR_sched_getaffinity
DO_CASE(sched_getaffinity);
#endif
#ifdef __NR_set_thread_area
DO_CASE(set_thread_area);
#endif
#ifdef __NR_get_thread_area
DO_CASE(get_thread_area);
#endif
#ifdef __NR_io_setup
DO_CASE(io_setup);
#endif
#ifdef __NR_io_destroy
DO_CASE(io_destroy);
#endif
#ifdef __NR_io_getevents
DO_CASE(io_getevents);
#endif
#ifdef __NR_io_submit
DO_CASE(io_submit);
#endif
#ifdef __NR_io_cancel
DO_CASE(io_cancel);
#endif
#ifdef __NR_io_alloc_hugepages
DO_CASE(alloc_hugepages);
#endif
#ifdef __NR_io_free_hugepages
DO_CASE(free_hugepages);
#endif
#ifdef __NR_exit_group
DO_CASE(exit_group);
#endif
#ifdef __NR_set_tid_address
DO_CASE(set_tid_address);
#endif
// Add new DO_CASE here
///////END OF SWITCH////////////
default:
cout << "UNKNOWN SYSCALL: " << num << endl;
return _syscall_names[NUM_SYS_UNKNOWN];
}
#undef DO_CASE
}
#endif