Skip to content

Instantly share code, notes, and snippets.

@willb
Created October 3, 2008 01:57
Show Gist options
  • Select an option

  • Save willb/14488 to your computer and use it in GitHub Desktop.

Select an option

Save willb/14488 to your computer and use it in GitHub Desktop.

Revisions

  1. willb revised this gist Oct 3, 2008. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ptr_inspect.c
    Original file line number Diff line number Diff line change
    @@ -66,7 +66,7 @@ int main(int argc, char* argv[]) {
    ptrace(PTRACE_SYSCALL, child, NULL, NULL);
    }
    }
    return 0;
    exit(0);
    }

    const char* callname(long call) {
  2. willb revised this gist Oct 3, 2008. 1 changed file with 2 additions and 5 deletions.
    7 changes: 2 additions & 5 deletions ptr_inspect.c
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@
    I got inspiration and a starting point from this old LJ article:
    http://www.linuxjournal.com/article/6100
    I release this code to the public domain. Share and enjoy.
    This code is in the public domain. Share and enjoy.
    Will Benton
    Madison, 2008
    @@ -69,10 +69,6 @@ int main(int argc, char* argv[]) {
    return 0;
    }

    /* callname */

    static char* callname_buf[256];

    const char* callname(long call) {
    switch(call) {

    @@ -900,6 +896,7 @@ const char* callname(long call) {
    case SYS_settimeofday : return "settimeofday";
    #endif


    #ifdef SYS_setuid
    case SYS_setuid : return "setuid";
    #endif
  3. willb created this gist Oct 3, 2008.
    1,510 changes: 1,510 additions & 0 deletions ptr_inspect.c
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1510 @@
    /*
    ptr_inspect.c
    Demonstration code; shows how to trace the system calls in a child
    process with ptrace. Only works on 64-bit x86 Linux for now, I'm
    afraid. (Even worse, it's only tested on Linux 2.6....)
    The callname() function looks clunky and machine-generated because it
    *is* clunky and machine-generated.
    I got inspiration and a starting point from this old LJ article:
    http://www.linuxjournal.com/article/6100
    I release this code to the public domain. Share and enjoy.
    Will Benton
    Madison, 2008
    */

    #include <sys/ptrace.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    #include <sys/user.h>

    #include <syscall.h>

    #include <unistd.h>
    #include <stdio.h>
    #include <stdlib.h>

    const char* callname(long call);

    #if __WORDSIZE == 64
    #define REG(reg) reg.orig_rax
    #else
    #define REG(reg) reg.orig_eax
    #endif

    int main(int argc, char* argv[]) {
    pid_t child;

    if (argc == 1) {
    exit(0);
    }

    char* chargs[argc];
    int i = 0;

    while (i < argc - 1) {
    chargs[i] = argv[i+1];
    i++;
    }
    chargs[i] = NULL;

    child = fork();
    if(child == 0) {
    ptrace(PTRACE_TRACEME, 0, NULL, NULL);
    execvp(chargs[0], chargs);
    } else {
    int status;

    while(waitpid(child, &status, 0) && ! WIFEXITED(status)) {
    struct user_regs_struct regs;
    ptrace(PTRACE_GETREGS, child, NULL, &regs);
    fprintf(stderr, "system call %s from pid %d\n", callname(REG(regs)), child);
    ptrace(PTRACE_SYSCALL, child, NULL, NULL);
    }
    }
    return 0;
    }

    /* callname */

    static char* callname_buf[256];

    const char* callname(long call) {
    switch(call) {

    #ifdef SYS__sysctl
    case SYS__sysctl : return "_sysctl";
    #endif

    #ifdef SYS_access
    case SYS_access : return "access";
    #endif

    #ifdef SYS_acct
    case SYS_acct : return "acct";
    #endif

    #ifdef SYS_add_key
    case SYS_add_key : return "add_key";
    #endif

    #ifdef SYS_adjtimex
    case SYS_adjtimex : return "adjtimex";
    #endif

    #ifdef SYS_afs_syscall
    case SYS_afs_syscall : return "afs_syscall";
    #endif

    #ifdef SYS_alarm
    case SYS_alarm : return "alarm";
    #endif

    #ifdef SYS_brk
    case SYS_brk : return "brk";
    #endif

    #ifdef SYS_capget
    case SYS_capget : return "capget";
    #endif

    #ifdef SYS_capset
    case SYS_capset : return "capset";
    #endif

    #ifdef SYS_chdir
    case SYS_chdir : return "chdir";
    #endif

    #ifdef SYS_chmod
    case SYS_chmod : return "chmod";
    #endif

    #ifdef SYS_chown
    case SYS_chown : return "chown";
    #endif

    #ifdef SYS_chroot
    case SYS_chroot : return "chroot";
    #endif

    #ifdef SYS_clock_getres
    case SYS_clock_getres : return "clock_getres";
    #endif

    #ifdef SYS_clock_gettime
    case SYS_clock_gettime : return "clock_gettime";
    #endif

    #ifdef SYS_clock_nanosleep
    case SYS_clock_nanosleep : return "clock_nanosleep";
    #endif

    #ifdef SYS_clock_settime
    case SYS_clock_settime : return "clock_settime";
    #endif

    #ifdef SYS_clone
    case SYS_clone : return "clone";
    #endif

    #ifdef SYS_close
    case SYS_close : return "close";
    #endif

    #ifdef SYS_creat
    case SYS_creat : return "creat";
    #endif

    #ifdef SYS_create_module
    case SYS_create_module : return "create_module";
    #endif

    #ifdef SYS_delete_module
    case SYS_delete_module : return "delete_module";
    #endif

    #ifdef SYS_dup
    case SYS_dup : return "dup";
    #endif

    #ifdef SYS_dup2
    case SYS_dup2 : return "dup2";
    #endif

    #ifdef SYS_epoll_create
    case SYS_epoll_create : return "epoll_create";
    #endif

    #ifdef SYS_epoll_ctl
    case SYS_epoll_ctl : return "epoll_ctl";
    #endif

    #ifdef SYS_epoll_pwait
    case SYS_epoll_pwait : return "epoll_pwait";
    #endif

    #ifdef SYS_epoll_wait
    case SYS_epoll_wait : return "epoll_wait";
    #endif

    #ifdef SYS_eventfd
    case SYS_eventfd : return "eventfd";
    #endif

    #ifdef SYS_execve
    case SYS_execve : return "execve";
    #endif

    #ifdef SYS_exit
    case SYS_exit : return "exit";
    #endif

    #ifdef SYS_exit_group
    case SYS_exit_group : return "exit_group";
    #endif

    #ifdef SYS_faccessat
    case SYS_faccessat : return "faccessat";
    #endif

    #ifdef SYS_fadvise64
    case SYS_fadvise64 : return "fadvise64";
    #endif

    #ifdef SYS_fallocate
    case SYS_fallocate : return "fallocate";
    #endif

    #ifdef SYS_fchdir
    case SYS_fchdir : return "fchdir";
    #endif

    #ifdef SYS_fchmod
    case SYS_fchmod : return "fchmod";
    #endif

    #ifdef SYS_fchmodat
    case SYS_fchmodat : return "fchmodat";
    #endif

    #ifdef SYS_fchown
    case SYS_fchown : return "fchown";
    #endif

    #ifdef SYS_fchownat
    case SYS_fchownat : return "fchownat";
    #endif

    #ifdef SYS_fcntl
    case SYS_fcntl : return "fcntl";
    #endif

    #ifdef SYS_fdatasync
    case SYS_fdatasync : return "fdatasync";
    #endif

    #ifdef SYS_fgetxattr
    case SYS_fgetxattr : return "fgetxattr";
    #endif

    #ifdef SYS_flistxattr
    case SYS_flistxattr : return "flistxattr";
    #endif

    #ifdef SYS_flock
    case SYS_flock : return "flock";
    #endif

    #ifdef SYS_fork
    case SYS_fork : return "fork";
    #endif

    #ifdef SYS_fremovexattr
    case SYS_fremovexattr : return "fremovexattr";
    #endif

    #ifdef SYS_fsetxattr
    case SYS_fsetxattr : return "fsetxattr";
    #endif

    #ifdef SYS_fstat
    case SYS_fstat : return "fstat";
    #endif

    #ifdef SYS_fstatfs
    case SYS_fstatfs : return "fstatfs";
    #endif

    #ifdef SYS_fsync
    case SYS_fsync : return "fsync";
    #endif

    #ifdef SYS_ftruncate
    case SYS_ftruncate : return "ftruncate";
    #endif

    #ifdef SYS_futex
    case SYS_futex : return "futex";
    #endif

    #ifdef SYS_futimesat
    case SYS_futimesat : return "futimesat";
    #endif

    #ifdef SYS_get_kernel_syms
    case SYS_get_kernel_syms : return "get_kernel_syms";
    #endif

    #ifdef SYS_get_mempolicy
    case SYS_get_mempolicy : return "get_mempolicy";
    #endif

    #ifdef SYS_get_robust_list
    case SYS_get_robust_list : return "get_robust_list";
    #endif

    #ifdef SYS_get_thread_area
    case SYS_get_thread_area : return "get_thread_area";
    #endif

    #ifdef SYS_getcwd
    case SYS_getcwd : return "getcwd";
    #endif

    #ifdef SYS_getdents
    case SYS_getdents : return "getdents";
    #endif

    #ifdef SYS_getdents64
    case SYS_getdents64 : return "getdents64";
    #endif

    #ifdef SYS_getegid
    case SYS_getegid : return "getegid";
    #endif

    #ifdef SYS_geteuid
    case SYS_geteuid : return "geteuid";
    #endif

    #ifdef SYS_getgid
    case SYS_getgid : return "getgid";
    #endif

    #ifdef SYS_getgroups
    case SYS_getgroups : return "getgroups";
    #endif

    #ifdef SYS_getitimer
    case SYS_getitimer : return "getitimer";
    #endif

    #ifdef SYS_getpgid
    case SYS_getpgid : return "getpgid";
    #endif

    #ifdef SYS_getpgrp
    case SYS_getpgrp : return "getpgrp";
    #endif

    #ifdef SYS_getpid
    case SYS_getpid : return "getpid";
    #endif

    #ifdef SYS_getpmsg
    case SYS_getpmsg : return "getpmsg";
    #endif

    #ifdef SYS_getppid
    case SYS_getppid : return "getppid";
    #endif

    #ifdef SYS_getpriority
    case SYS_getpriority : return "getpriority";
    #endif

    #ifdef SYS_getresgid
    case SYS_getresgid : return "getresgid";
    #endif

    #ifdef SYS_getresuid
    case SYS_getresuid : return "getresuid";
    #endif

    #ifdef SYS_getrlimit
    case SYS_getrlimit : return "getrlimit";
    #endif

    #ifdef SYS_getrusage
    case SYS_getrusage : return "getrusage";
    #endif

    #ifdef SYS_getsid
    case SYS_getsid : return "getsid";
    #endif

    #ifdef SYS_gettid
    case SYS_gettid : return "gettid";
    #endif

    #ifdef SYS_gettimeofday
    case SYS_gettimeofday : return "gettimeofday";
    #endif

    #ifdef SYS_getuid
    case SYS_getuid : return "getuid";
    #endif

    #ifdef SYS_getxattr
    case SYS_getxattr : return "getxattr";
    #endif

    #ifdef SYS_init_module
    case SYS_init_module : return "init_module";
    #endif

    #ifdef SYS_inotify_add_watch
    case SYS_inotify_add_watch : return "inotify_add_watch";
    #endif

    #ifdef SYS_inotify_init
    case SYS_inotify_init : return "inotify_init";
    #endif

    #ifdef SYS_inotify_rm_watch
    case SYS_inotify_rm_watch : return "inotify_rm_watch";
    #endif

    #ifdef SYS_io_cancel
    case SYS_io_cancel : return "io_cancel";
    #endif

    #ifdef SYS_io_destroy
    case SYS_io_destroy : return "io_destroy";
    #endif

    #ifdef SYS_io_getevents
    case SYS_io_getevents : return "io_getevents";
    #endif

    #ifdef SYS_io_setup
    case SYS_io_setup : return "io_setup";
    #endif

    #ifdef SYS_io_submit
    case SYS_io_submit : return "io_submit";
    #endif

    #ifdef SYS_ioctl
    case SYS_ioctl : return "ioctl";
    #endif

    #ifdef SYS_ioperm
    case SYS_ioperm : return "ioperm";
    #endif

    #ifdef SYS_iopl
    case SYS_iopl : return "iopl";
    #endif

    #ifdef SYS_ioprio_get
    case SYS_ioprio_get : return "ioprio_get";
    #endif

    #ifdef SYS_ioprio_set
    case SYS_ioprio_set : return "ioprio_set";
    #endif

    #ifdef SYS_kexec_load
    case SYS_kexec_load : return "kexec_load";
    #endif

    #ifdef SYS_keyctl
    case SYS_keyctl : return "keyctl";
    #endif

    #ifdef SYS_kill
    case SYS_kill : return "kill";
    #endif

    #ifdef SYS_lchown
    case SYS_lchown : return "lchown";
    #endif

    #ifdef SYS_lgetxattr
    case SYS_lgetxattr : return "lgetxattr";
    #endif

    #ifdef SYS_link
    case SYS_link : return "link";
    #endif

    #ifdef SYS_linkat
    case SYS_linkat : return "linkat";
    #endif

    #ifdef SYS_listxattr
    case SYS_listxattr : return "listxattr";
    #endif

    #ifdef SYS_llistxattr
    case SYS_llistxattr : return "llistxattr";
    #endif

    #ifdef SYS_lookup_dcookie
    case SYS_lookup_dcookie : return "lookup_dcookie";
    #endif

    #ifdef SYS_lremovexattr
    case SYS_lremovexattr : return "lremovexattr";
    #endif

    #ifdef SYS_lseek
    case SYS_lseek : return "lseek";
    #endif

    #ifdef SYS_lsetxattr
    case SYS_lsetxattr : return "lsetxattr";
    #endif

    #ifdef SYS_lstat
    case SYS_lstat : return "lstat";
    #endif

    #ifdef SYS_madvise
    case SYS_madvise : return "madvise";
    #endif

    #ifdef SYS_mbind
    case SYS_mbind : return "mbind";
    #endif

    #ifdef SYS_migrate_pages
    case SYS_migrate_pages : return "migrate_pages";
    #endif

    #ifdef SYS_mincore
    case SYS_mincore : return "mincore";
    #endif

    #ifdef SYS_mkdir
    case SYS_mkdir : return "mkdir";
    #endif

    #ifdef SYS_mkdirat
    case SYS_mkdirat : return "mkdirat";
    #endif

    #ifdef SYS_mknod
    case SYS_mknod : return "mknod";
    #endif

    #ifdef SYS_mknodat
    case SYS_mknodat : return "mknodat";
    #endif

    #ifdef SYS_mlock
    case SYS_mlock : return "mlock";
    #endif

    #ifdef SYS_mlockall
    case SYS_mlockall : return "mlockall";
    #endif

    #ifdef SYS_mmap
    case SYS_mmap : return "mmap";
    #endif

    #ifdef SYS_modify_ldt
    case SYS_modify_ldt : return "modify_ldt";
    #endif

    #ifdef SYS_mount
    case SYS_mount : return "mount";
    #endif

    #ifdef SYS_move_pages
    case SYS_move_pages : return "move_pages";
    #endif

    #ifdef SYS_mprotect
    case SYS_mprotect : return "mprotect";
    #endif

    #ifdef SYS_mq_getsetattr
    case SYS_mq_getsetattr : return "mq_getsetattr";
    #endif

    #ifdef SYS_mq_notify
    case SYS_mq_notify : return "mq_notify";
    #endif

    #ifdef SYS_mq_open
    case SYS_mq_open : return "mq_open";
    #endif

    #ifdef SYS_mq_timedreceive
    case SYS_mq_timedreceive : return "mq_timedreceive";
    #endif

    #ifdef SYS_mq_timedsend
    case SYS_mq_timedsend : return "mq_timedsend";
    #endif

    #ifdef SYS_mq_unlink
    case SYS_mq_unlink : return "mq_unlink";
    #endif

    #ifdef SYS_mremap
    case SYS_mremap : return "mremap";
    #endif

    #ifdef SYS_msync
    case SYS_msync : return "msync";
    #endif

    #ifdef SYS_munlock
    case SYS_munlock : return "munlock";
    #endif

    #ifdef SYS_munlockall
    case SYS_munlockall : return "munlockall";
    #endif

    #ifdef SYS_munmap
    case SYS_munmap : return "munmap";
    #endif

    #ifdef SYS_nanosleep
    case SYS_nanosleep : return "nanosleep";
    #endif

    #ifdef SYS_nfsservctl
    case SYS_nfsservctl : return "nfsservctl";
    #endif

    #ifdef SYS_open
    case SYS_open : return "open";
    #endif

    #ifdef SYS_openat
    case SYS_openat : return "openat";
    #endif

    #ifdef SYS_pause
    case SYS_pause : return "pause";
    #endif

    #ifdef SYS_personality
    case SYS_personality : return "personality";
    #endif

    #ifdef SYS_pipe
    case SYS_pipe : return "pipe";
    #endif

    #ifdef SYS_pivot_root
    case SYS_pivot_root : return "pivot_root";
    #endif

    #ifdef SYS_poll
    case SYS_poll : return "poll";
    #endif

    #ifdef SYS_ppoll
    case SYS_ppoll : return "ppoll";
    #endif

    #ifdef SYS_prctl
    case SYS_prctl : return "prctl";
    #endif

    #ifdef SYS_pread64
    case SYS_pread64 : return "pread64";
    #endif

    #ifdef SYS_pselect6
    case SYS_pselect6 : return "pselect6";
    #endif

    #ifdef SYS_ptrace
    case SYS_ptrace : return "ptrace";
    #endif

    #ifdef SYS_putpmsg
    case SYS_putpmsg : return "putpmsg";
    #endif

    #ifdef SYS_pwrite64
    case SYS_pwrite64 : return "pwrite64";
    #endif

    #ifdef SYS_query_module
    case SYS_query_module : return "query_module";
    #endif

    #ifdef SYS_quotactl
    case SYS_quotactl : return "quotactl";
    #endif

    #ifdef SYS_read
    case SYS_read : return "read";
    #endif

    #ifdef SYS_readahead
    case SYS_readahead : return "readahead";
    #endif

    #ifdef SYS_readlink
    case SYS_readlink : return "readlink";
    #endif

    #ifdef SYS_readlinkat
    case SYS_readlinkat : return "readlinkat";
    #endif

    #ifdef SYS_readv
    case SYS_readv : return "readv";
    #endif

    #ifdef SYS_reboot
    case SYS_reboot : return "reboot";
    #endif

    #ifdef SYS_remap_file_pages
    case SYS_remap_file_pages : return "remap_file_pages";
    #endif

    #ifdef SYS_removexattr
    case SYS_removexattr : return "removexattr";
    #endif

    #ifdef SYS_rename
    case SYS_rename : return "rename";
    #endif

    #ifdef SYS_renameat
    case SYS_renameat : return "renameat";
    #endif

    #ifdef SYS_request_key
    case SYS_request_key : return "request_key";
    #endif

    #ifdef SYS_restart_syscall
    case SYS_restart_syscall : return "restart_syscall";
    #endif

    #ifdef SYS_rmdir
    case SYS_rmdir : return "rmdir";
    #endif

    #ifdef SYS_rt_sigaction
    case SYS_rt_sigaction : return "rt_sigaction";
    #endif

    #ifdef SYS_rt_sigpending
    case SYS_rt_sigpending : return "rt_sigpending";
    #endif

    #ifdef SYS_rt_sigprocmask
    case SYS_rt_sigprocmask : return "rt_sigprocmask";
    #endif

    #ifdef SYS_rt_sigqueueinfo
    case SYS_rt_sigqueueinfo : return "rt_sigqueueinfo";
    #endif

    #ifdef SYS_rt_sigreturn
    case SYS_rt_sigreturn : return "rt_sigreturn";
    #endif

    #ifdef SYS_rt_sigsuspend
    case SYS_rt_sigsuspend : return "rt_sigsuspend";
    #endif

    #ifdef SYS_rt_sigtimedwait
    case SYS_rt_sigtimedwait : return "rt_sigtimedwait";
    #endif

    #ifdef SYS_sched_get_priority_max
    case SYS_sched_get_priority_max : return "sched_get_priority_max";
    #endif

    #ifdef SYS_sched_get_priority_min
    case SYS_sched_get_priority_min : return "sched_get_priority_min";
    #endif

    #ifdef SYS_sched_getaffinity
    case SYS_sched_getaffinity : return "sched_getaffinity";
    #endif

    #ifdef SYS_sched_getparam
    case SYS_sched_getparam : return "sched_getparam";
    #endif

    #ifdef SYS_sched_getscheduler
    case SYS_sched_getscheduler : return "sched_getscheduler";
    #endif

    #ifdef SYS_sched_rr_get_interval
    case SYS_sched_rr_get_interval : return "sched_rr_get_interval";
    #endif

    #ifdef SYS_sched_setaffinity
    case SYS_sched_setaffinity : return "sched_setaffinity";
    #endif

    #ifdef SYS_sched_setparam
    case SYS_sched_setparam : return "sched_setparam";
    #endif

    #ifdef SYS_sched_setscheduler
    case SYS_sched_setscheduler : return "sched_setscheduler";
    #endif

    #ifdef SYS_sched_yield
    case SYS_sched_yield : return "sched_yield";
    #endif

    #ifdef SYS_select
    case SYS_select : return "select";
    #endif

    #ifdef SYS_sendfile
    case SYS_sendfile : return "sendfile";
    #endif

    #ifdef SYS_set_mempolicy
    case SYS_set_mempolicy : return "set_mempolicy";
    #endif

    #ifdef SYS_set_robust_list
    case SYS_set_robust_list : return "set_robust_list";
    #endif

    #ifdef SYS_set_thread_area
    case SYS_set_thread_area : return "set_thread_area";
    #endif

    #ifdef SYS_set_tid_address
    case SYS_set_tid_address : return "set_tid_address";
    #endif

    #ifdef SYS_setdomainname
    case SYS_setdomainname : return "setdomainname";
    #endif

    #ifdef SYS_setfsgid
    case SYS_setfsgid : return "setfsgid";
    #endif

    #ifdef SYS_setfsuid
    case SYS_setfsuid : return "setfsuid";
    #endif

    #ifdef SYS_setgid
    case SYS_setgid : return "setgid";
    #endif

    #ifdef SYS_setgroups
    case SYS_setgroups : return "setgroups";
    #endif

    #ifdef SYS_sethostname
    case SYS_sethostname : return "sethostname";
    #endif

    #ifdef SYS_setitimer
    case SYS_setitimer : return "setitimer";
    #endif

    #ifdef SYS_setpgid
    case SYS_setpgid : return "setpgid";
    #endif

    #ifdef SYS_setpriority
    case SYS_setpriority : return "setpriority";
    #endif

    #ifdef SYS_setregid
    case SYS_setregid : return "setregid";
    #endif

    #ifdef SYS_setresgid
    case SYS_setresgid : return "setresgid";
    #endif

    #ifdef SYS_setresuid
    case SYS_setresuid : return "setresuid";
    #endif

    #ifdef SYS_setreuid
    case SYS_setreuid : return "setreuid";
    #endif

    #ifdef SYS_setrlimit
    case SYS_setrlimit : return "setrlimit";
    #endif

    #ifdef SYS_setsid
    case SYS_setsid : return "setsid";
    #endif

    #ifdef SYS_settimeofday
    case SYS_settimeofday : return "settimeofday";
    #endif

    #ifdef SYS_setuid
    case SYS_setuid : return "setuid";
    #endif

    #ifdef SYS_setxattr
    case SYS_setxattr : return "setxattr";
    #endif

    #ifdef SYS_sigaltstack
    case SYS_sigaltstack : return "sigaltstack";
    #endif

    #ifdef SYS_signalfd
    case SYS_signalfd : return "signalfd";
    #endif

    #ifdef SYS_splice
    case SYS_splice : return "splice";
    #endif

    #ifdef SYS_stat
    case SYS_stat : return "stat";
    #endif

    #ifdef SYS_statfs
    case SYS_statfs : return "statfs";
    #endif

    #ifdef SYS_swapoff
    case SYS_swapoff : return "swapoff";
    #endif

    #ifdef SYS_swapon
    case SYS_swapon : return "swapon";
    #endif

    #ifdef SYS_symlink
    case SYS_symlink : return "symlink";
    #endif

    #ifdef SYS_symlinkat
    case SYS_symlinkat : return "symlinkat";
    #endif

    #ifdef SYS_sync
    case SYS_sync : return "sync";
    #endif

    #ifdef SYS_sync_file_range
    case SYS_sync_file_range : return "sync_file_range";
    #endif

    #ifdef SYS_sysfs
    case SYS_sysfs : return "sysfs";
    #endif

    #ifdef SYS_sysinfo
    case SYS_sysinfo : return "sysinfo";
    #endif

    #ifdef SYS_syslog
    case SYS_syslog : return "syslog";
    #endif

    #ifdef SYS_tee
    case SYS_tee : return "tee";
    #endif

    #ifdef SYS_tgkill
    case SYS_tgkill : return "tgkill";
    #endif

    #ifdef SYS_time
    case SYS_time : return "time";
    #endif

    #ifdef SYS_timer_create
    case SYS_timer_create : return "timer_create";
    #endif

    #ifdef SYS_timer_delete
    case SYS_timer_delete : return "timer_delete";
    #endif

    #ifdef SYS_timer_getoverrun
    case SYS_timer_getoverrun : return "timer_getoverrun";
    #endif

    #ifdef SYS_timer_gettime
    case SYS_timer_gettime : return "timer_gettime";
    #endif

    #ifdef SYS_timer_settime
    case SYS_timer_settime : return "timer_settime";
    #endif

    #ifdef SYS_timerfd_create
    case SYS_timerfd_create : return "timerfd_create";
    #endif

    #ifdef SYS_timerfd_gettime
    case SYS_timerfd_gettime : return "timerfd_gettime";
    #endif

    #ifdef SYS_timerfd_settime
    case SYS_timerfd_settime : return "timerfd_settime";
    #endif

    #ifdef SYS_times
    case SYS_times : return "times";
    #endif

    #ifdef SYS_tkill
    case SYS_tkill : return "tkill";
    #endif

    #ifdef SYS_truncate
    case SYS_truncate : return "truncate";
    #endif

    #ifdef SYS_umask
    case SYS_umask : return "umask";
    #endif

    #ifdef SYS_umount2
    case SYS_umount2 : return "umount2";
    #endif

    #ifdef SYS_uname
    case SYS_uname : return "uname";
    #endif

    #ifdef SYS_unlink
    case SYS_unlink : return "unlink";
    #endif

    #ifdef SYS_unlinkat
    case SYS_unlinkat : return "unlinkat";
    #endif

    #ifdef SYS_unshare
    case SYS_unshare : return "unshare";
    #endif

    #ifdef SYS_uselib
    case SYS_uselib : return "uselib";
    #endif

    #ifdef SYS_ustat
    case SYS_ustat : return "ustat";
    #endif

    #ifdef SYS_utime
    case SYS_utime : return "utime";
    #endif

    #ifdef SYS_utimensat
    case SYS_utimensat : return "utimensat";
    #endif

    #ifdef SYS_utimes
    case SYS_utimes : return "utimes";
    #endif

    #ifdef SYS_vfork
    case SYS_vfork : return "vfork";
    #endif

    #ifdef SYS_vhangup
    case SYS_vhangup : return "vhangup";
    #endif

    #ifdef SYS_vmsplice
    case SYS_vmsplice : return "vmsplice";
    #endif

    #ifdef SYS_vserver
    case SYS_vserver : return "vserver";
    #endif

    #ifdef SYS_wait4
    case SYS_wait4 : return "wait4";
    #endif

    #ifdef SYS_waitid
    case SYS_waitid : return "waitid";
    #endif

    #ifdef SYS_write
    case SYS_write : return "write";
    #endif

    #ifdef SYS_writev
    case SYS_writev : return "writev";
    #endif

    #ifdef SYS_accept
    case SYS_accept : return "accept";
    #endif

    #ifdef SYS_arch_prctl
    case SYS_arch_prctl : return "arch_prctl";
    #endif

    #ifdef SYS_bind
    case SYS_bind : return "bind";
    #endif

    #ifdef SYS_connect
    case SYS_connect : return "connect";
    #endif

    #ifdef SYS_epoll_ctl_old
    case SYS_epoll_ctl_old : return "epoll_ctl_old";
    #endif

    #ifdef SYS_epoll_wait_old
    case SYS_epoll_wait_old : return "epoll_wait_old";
    #endif

    #ifdef SYS_getpeername
    case SYS_getpeername : return "getpeername";
    #endif

    #ifdef SYS_getsockname
    case SYS_getsockname : return "getsockname";
    #endif

    #ifdef SYS_getsockopt
    case SYS_getsockopt : return "getsockopt";
    #endif

    #ifdef SYS_listen
    case SYS_listen : return "listen";
    #endif

    #ifdef SYS_msgctl
    case SYS_msgctl : return "msgctl";
    #endif

    #ifdef SYS_msgget
    case SYS_msgget : return "msgget";
    #endif

    #ifdef SYS_msgrcv
    case SYS_msgrcv : return "msgrcv";
    #endif

    #ifdef SYS_msgsnd
    case SYS_msgsnd : return "msgsnd";
    #endif

    #ifdef SYS_newfstatat
    case SYS_newfstatat : return "newfstatat";
    #endif

    #ifdef SYS_recvfrom
    case SYS_recvfrom : return "recvfrom";
    #endif

    #ifdef SYS_recvmsg
    case SYS_recvmsg : return "recvmsg";
    #endif

    #ifdef SYS_security
    case SYS_security : return "security";
    #endif

    #ifdef SYS_semctl
    case SYS_semctl : return "semctl";
    #endif

    #ifdef SYS_semget
    case SYS_semget : return "semget";
    #endif

    #ifdef SYS_semop
    case SYS_semop : return "semop";
    #endif

    #ifdef SYS_semtimedop
    case SYS_semtimedop : return "semtimedop";
    #endif

    #ifdef SYS_sendmsg
    case SYS_sendmsg : return "sendmsg";
    #endif

    #ifdef SYS_sendto
    case SYS_sendto : return "sendto";
    #endif

    #ifdef SYS_setsockopt
    case SYS_setsockopt : return "setsockopt";
    #endif

    #ifdef SYS_shmat
    case SYS_shmat : return "shmat";
    #endif

    #ifdef SYS_shmctl
    case SYS_shmctl : return "shmctl";
    #endif

    #ifdef SYS_shmdt
    case SYS_shmdt : return "shmdt";
    #endif

    #ifdef SYS_shmget
    case SYS_shmget : return "shmget";
    #endif

    #ifdef SYS_shutdown
    case SYS_shutdown : return "shutdown";
    #endif

    #ifdef SYS_socket
    case SYS_socket : return "socket";
    #endif

    #ifdef SYS_socketpair
    case SYS_socketpair : return "socketpair";
    #endif

    #ifdef SYS_tuxcall
    case SYS_tuxcall : return "tuxcall";
    #endif

    #ifdef SYS__llseek
    case SYS__llseek : return "_llseek";
    #endif

    #ifdef SYS__newselect
    case SYS__newselect : return "_newselect";
    #endif

    #ifdef SYS_bdflush
    case SYS_bdflush : return "bdflush";
    #endif

    #ifdef SYS_break
    case SYS_break : return "break";
    #endif

    #ifdef SYS_chown32
    case SYS_chown32 : return "chown32";
    #endif

    #ifdef SYS_fadvise64_64
    case SYS_fadvise64_64 : return "fadvise64_64";
    #endif

    #ifdef SYS_fchown32
    case SYS_fchown32 : return "fchown32";
    #endif

    #ifdef SYS_fcntl64
    case SYS_fcntl64 : return "fcntl64";
    #endif

    #ifdef SYS_fstat64
    case SYS_fstat64 : return "fstat64";
    #endif

    #ifdef SYS_fstatat64
    case SYS_fstatat64 : return "fstatat64";
    #endif

    #ifdef SYS_fstatfs64
    case SYS_fstatfs64 : return "fstatfs64";
    #endif

    #ifdef SYS_ftime
    case SYS_ftime : return "ftime";
    #endif

    #ifdef SYS_ftruncate64
    case SYS_ftruncate64 : return "ftruncate64";
    #endif

    #ifdef SYS_getcpu
    case SYS_getcpu : return "getcpu";
    #endif

    #ifdef SYS_getegid32
    case SYS_getegid32 : return "getegid32";
    #endif

    #ifdef SYS_geteuid32
    case SYS_geteuid32 : return "geteuid32";
    #endif

    #ifdef SYS_getgid32
    case SYS_getgid32 : return "getgid32";
    #endif

    #ifdef SYS_getgroups32
    case SYS_getgroups32 : return "getgroups32";
    #endif

    #ifdef SYS_getresgid32
    case SYS_getresgid32 : return "getresgid32";
    #endif

    #ifdef SYS_getresuid32
    case SYS_getresuid32 : return "getresuid32";
    #endif

    #ifdef SYS_getuid32
    case SYS_getuid32 : return "getuid32";
    #endif

    #ifdef SYS_gtty
    case SYS_gtty : return "gtty";
    #endif

    #ifdef SYS_idle
    case SYS_idle : return "idle";
    #endif

    #ifdef SYS_ipc
    case SYS_ipc : return "ipc";
    #endif

    #ifdef SYS_lchown32
    case SYS_lchown32 : return "lchown32";
    #endif

    #ifdef SYS_lock
    case SYS_lock : return "lock";
    #endif

    #ifdef SYS_lstat64
    case SYS_lstat64 : return "lstat64";
    #endif

    #ifdef SYS_madvise1
    case SYS_madvise1 : return "madvise1";
    #endif

    #ifdef SYS_mmap2
    case SYS_mmap2 : return "mmap2";
    #endif

    #ifdef SYS_mpx
    case SYS_mpx : return "mpx";
    #endif

    #ifdef SYS_nice
    case SYS_nice : return "nice";
    #endif

    #ifdef SYS_oldfstat
    case SYS_oldfstat : return "oldfstat";
    #endif

    #ifdef SYS_oldlstat
    case SYS_oldlstat : return "oldlstat";
    #endif

    #ifdef SYS_oldolduname
    case SYS_oldolduname : return "oldolduname";
    #endif

    #ifdef SYS_oldstat
    case SYS_oldstat : return "oldstat";
    #endif

    #ifdef SYS_olduname
    case SYS_olduname : return "olduname";
    #endif

    #ifdef SYS_prof
    case SYS_prof : return "prof";
    #endif

    #ifdef SYS_profil
    case SYS_profil : return "profil";
    #endif

    #ifdef SYS_readdir
    case SYS_readdir : return "readdir";
    #endif

    #ifdef SYS_sendfile64
    case SYS_sendfile64 : return "sendfile64";
    #endif

    #ifdef SYS_setfsgid32
    case SYS_setfsgid32 : return "setfsgid32";
    #endif

    #ifdef SYS_setfsuid32
    case SYS_setfsuid32 : return "setfsuid32";
    #endif

    #ifdef SYS_setgid32
    case SYS_setgid32 : return "setgid32";
    #endif

    #ifdef SYS_setgroups32
    case SYS_setgroups32 : return "setgroups32";
    #endif

    #ifdef SYS_setregid32
    case SYS_setregid32 : return "setregid32";
    #endif

    #ifdef SYS_setresgid32
    case SYS_setresgid32 : return "setresgid32";
    #endif

    #ifdef SYS_setresuid32
    case SYS_setresuid32 : return "setresuid32";
    #endif

    #ifdef SYS_setreuid32
    case SYS_setreuid32 : return "setreuid32";
    #endif

    #ifdef SYS_setuid32
    case SYS_setuid32 : return "setuid32";
    #endif

    #ifdef SYS_sgetmask
    case SYS_sgetmask : return "sgetmask";
    #endif

    #ifdef SYS_sigaction
    case SYS_sigaction : return "sigaction";
    #endif

    #ifdef SYS_signal
    case SYS_signal : return "signal";
    #endif

    #ifdef SYS_sigpending
    case SYS_sigpending : return "sigpending";
    #endif

    #ifdef SYS_sigprocmask
    case SYS_sigprocmask : return "sigprocmask";
    #endif

    #ifdef SYS_sigreturn
    case SYS_sigreturn : return "sigreturn";
    #endif

    #ifdef SYS_sigsuspend
    case SYS_sigsuspend : return "sigsuspend";
    #endif

    #ifdef SYS_socketcall
    case SYS_socketcall : return "socketcall";
    #endif

    #ifdef SYS_ssetmask
    case SYS_ssetmask : return "ssetmask";
    #endif

    #ifdef SYS_stat64
    case SYS_stat64 : return "stat64";
    #endif

    #ifdef SYS_statfs64
    case SYS_statfs64 : return "statfs64";
    #endif

    #ifdef SYS_stime
    case SYS_stime : return "stime";
    #endif

    #ifdef SYS_stty
    case SYS_stty : return "stty";
    #endif

    #ifdef SYS_truncate64
    case SYS_truncate64 : return "truncate64";
    #endif

    #ifdef SYS_ugetrlimit
    case SYS_ugetrlimit : return "ugetrlimit";
    #endif

    #ifdef SYS_ulimit
    case SYS_ulimit : return "ulimit";
    #endif

    #ifdef SYS_umount
    case SYS_umount : return "umount";
    #endif

    #ifdef SYS_vm86
    case SYS_vm86 : return "vm86";
    #endif

    #ifdef SYS_vm86old
    case SYS_vm86old : return "vm86old";
    #endif

    #ifdef SYS_waitpid
    case SYS_waitpid : return "waitpid";
    #endif

    default:
    return "unknown";
    }
    }