#ifndef SYSCALLS_H #define SYSCALLS_H __asm__ ( "syscall:\n" "mov %rdi, %rax\n" "mov %rsi, %rdi\n" "mov %rdx, %rsi\n" "mov %rcx, %rdx\n" "mov %r8, %r10\n" "mov %r9, %r8\n" "mov 8(%rsp), %r9\n" "syscall\n" "ret\n" ); enum { READ, WRITE, OPEN, CLOSE, STAT, FSTAT, LSTAT, POLL, LSEEK, MMAP, MPROTECT, MUNMAP, BRK, RT_SIGACTION, RT_SIGPROCMASK, RT_SIGRETURN, IOCTL, PREAD64, PWRITE64, READV, WRITEV, ACCESS, PIPE, SELECT, SCHED_YIELD, MREMAP, MSYNC, MINCORE, MADVISE, SHMGET, SHMAT, SHMCTL, DUP, DUP2, PAUSE, NANOSLEEP, GETITIMER, ALARM, SETITIMER, GETPID, SENDFILE, SOCKET, CONNECT, ACCEPT, SENDTO, RECVFROM, SENDMSG, RECVMSG, SHUTDOWN, BIND, LISTEN, GETSOCKNAME, GETPEERNAME, SOCKETPAIR, SETSOCKOPT, GETSOCKOPT, CLONE, FORK, VFORK, EXECVE, EXIT, WAIT4, KILL, UNAME, SEMGET, SEMOP, SEMCTL, SHMDT, MSGGET, MSGSND, MSGRCV, MSGCTL, FCNTL, FLOCK, FSYNC, FDATASYNC, TRUNCATE, FTRUNCATE, GETDENTS, GETCWD, CHDIR, FCHDIR, RENAME, MKDIR, RMDIR, CREAT, LINK, UNLINK, SYMLINK, READLINK, CHMOD, FCHMOD, CHOWN, FCHOWN, LCHOWN, UMASK, GETTIMEOFDAY, GETRLIMIT, GETRUSAGE, SYSINFO, TIMES, PTRACE, GETUID, SYSLOG, GETGID, SETUID, SETGID, GETEUID, GETEGID, SETPGID, GETPPID, GETPGRP, SETSID, SETREUID, SETREGID, GETGROUPS, SETGROUPS, SETRESUID, GETRESUID, SETRESGID, GETRESGID, GETPGID, SETFSUID, SETFSGID, GETSID, CAPGET, CAPSET, RT_SIGPENDING, RT_SIGTIMEDWAIT, RT_SIGQUEUEINFO, RT_SIGSUSPEND, SIGALTSTACK, UTIME, MKNOD, USELIB, PERSONALITY, USTAT, STATFS, FSTATFS, SYSFS, GETPRIORITY, SETPRIORITY, SCHED_SETPARAM, SCHED_GETPARAM, SCHED_SETSCHEDULER, SCHED_GETSCHEDULER, SCHED_GET_PRIORITY_MAX, SCHED_GET_PRIORITY_MIN, SCHED_RR_GET_INTERVAL, MLOCK, MUNLOCK, MLOCKALL, MUNLOCKALL, VHANGUP, MODIFY_LDT, PIVOT_ROOT, _SYSCTL, PRCTL, ARCH_PRCTL, ADJTIMEX, SETRLIMIT, CHROOT, SYNC, ACCT, SETTIMEOFDAY, MOUNT, UMOUNT2, SWAPON, SWAPOFF, REBOOT, SETHOSTNAME, SETDOMAINNAME, IOPL, IOPERM, CREATE_MODULE, INIT_MODULE, DELETE_MODULE, GET_KERNEL_SYMS, QUERY_MODULE, QUOTACTL, NFSSERVCTL, GETPMSG, PUTPMSG, AFS_SYSCALL, TUXCALL, SECURITY, GETTID, READAHEAD, SETXATTR, LSETXATTR, FSETXATTR, GETXATTR, LGETXATTR, FGETXATTR, LISTXATTR, LLISTXATTR, FLISTXATTR, REMOVEXATTR, LREMOVEXATTR, FREMOVEXATTR, TKILL, TIME, FUTEX, SCHED_SETAFFINITY, SCHED_GETAFFINITY, SET_THREAD_AREA, IO_SETUP, IO_DESTROY, IO_GETEVENTS, IO_SUBMIT, IO_CANCEL, GET_THREAD_AREA, LOOKUP_DCOOKIE, EPOLL_CREATE, EPOLL_CTL_OLD, EPOLL_WAIT_OLD, REMAP_FILE_PAGES, GETDENTS64, SET_TID_ADDRESS, RESTART_SYSCALL, SEMTIMEDOP, FADVISE64, TIMER_CREATE, TIMER_SETTIME, TIMER_GETTIME, TIMER_GETOVERRUN, TIMER_DELETE, CLOCK_SETTIME, CLOCK_GETTIME, CLOCK_GETRES, CLOCK_NANOSLEEP, EXIT_GROUP, EPOLL_WAIT, EPOLL_CTL, TGKILL, UTIMES, VSERVER, MBIND, SET_MEMPOLICY, GET_MEMPOLICY, MQ_OPEN, MQ_UNLINK, MQ_TIMEDSEND, MQ_TIMEDRECEIVE, MQ_NOTIFY, MQ_GETSETATTR, KEXEC_LOAD, WAITID, ADD_KEY, REQUEST_KEY, KEYCTL, IOPRIO_SET, IOPRIO_GET, INOTIFY_INIT, INOTIFY_ADD_WATCH, INOTIFY_RM_WATCH, MIGRATE_PAGES, OPENAT, MKDIRAT, MKNODAT, FCHOWNAT, FUTIMESAT, NEWFSTATAT, UNLINKAT, RENAMEAT, LINKAT, SYMLINKAT, READLINKAT, FCHMODAT, FACCESSAT, PSELECT6, PPOLL, UNSHARE, SET_ROBUST_LIST, GET_ROBUST_LIST, SPLICE, TEE, SYNC_FILE_RANGE, VMSPLICE, MOVE_PAGES, UTIMENSAT, EPOLL_PWAIT, SIGNALFD, TIMERFD_CREATE, EVENTFD, FALLOCATE, TIMERFD_SETTIME, TIMERFD_GETTIME, ACCEPT4, SIGNALFD4, EVENTFD2, EPOLL_CREATE1, DUP3, PIPE2, INOTIFY_INIT1, PREADV, PWRITEV, RT_TGSIGQUEUEINFO, PERF_EVENT_OPEN, RECVMMSG, FANOTIFY_INIT, FANOTIFY_MARK, PRLIMIT64, NAME_TO_HANDLE_AT, OPEN_BY_HANDLE_AT, CLOCK_ADJTIME, SYNCFS, SENDMMSG, SETNS, GETCPU, PROCESS_VM_READV, PROCESS_VM_WRITEV, KCMP, FINIT_MODULE, }; #endif