/* Target-dependent code for GNU/Linux AMD64. Copyright (C) 2006-2012 Free Software Foundation, Inc. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef AMD64_LINUX_TDEP_H #define AMD64_LINUX_TDEP_H /* Like for i386 GNU/Linux, there is an extra "register" used to control syscall restarting. */ /* Register number for the "orig_rax" register. If this register contains a value >= 0 it is interpreted as the system call number that the kernel is supposed to restart. */ #define AMD64_LINUX_ORIG_RAX_REGNUM (AMD64_YMM15H_REGNUM + 1) /* Total number of registers for GNU/Linux. */ #define AMD64_LINUX_NUM_REGS (AMD64_LINUX_ORIG_RAX_REGNUM + 1) /* Linux target description. */ extern struct target_desc *tdesc_amd64_linux; extern struct target_desc *tdesc_amd64_avx_linux; extern struct target_desc *tdesc_x32_linux; extern struct target_desc *tdesc_x32_avx_linux; /* Enum that defines the syscall identifiers for amd64 linux. Used for process record/replay, these will be translated into a gdb-canonical set of syscall ids in linux-record.c. */ enum amd64_syscall { amd64_sys_read = 0, amd64_sys_write = 1, amd64_sys_open = 2, amd64_sys_close = 3, amd64_sys_newstat = 4, amd64_sys_newfstat = 5, amd64_sys_newlstat = 6, amd64_sys_poll = 7, amd64_sys_lseek = 8, amd64_sys_mmap = 9, amd64_sys_mprotect = 10, amd64_sys_munmap = 11, amd64_sys_brk = 12, amd64_sys_rt_sigaction = 13, amd64_sys_rt_sigprocmask = 14, amd64_sys_rt_sigreturn = 15, amd64_sys_ioctl = 16, amd64_sys_pread64 = 17, amd64_sys_pwrite64 = 18, amd64_sys_readv = 19, amd64_sys_writev = 20, amd64_sys_access = 21, amd64_sys_pipe = 22, amd64_sys_select = 23, amd64_sys_sched_yield = 24, amd64_sys_mremap = 25, amd64_sys_msync = 26, amd64_sys_mincore = 27, amd64_sys_madvise = 28, amd64_sys_shmget = 29, amd64_sys_shmat = 30, amd64_sys_shmctl = 31, amd64_sys_dup = 32, amd64_sys_dup2 = 33, amd64_sys_pause = 34, amd64_sys_nanosleep = 35, amd64_sys_getitimer = 36, amd64_sys_alarm = 37, amd64_sys_setitimer = 38, amd64_sys_getpid = 39, amd64_sys_sendfile64 = 40, amd64_sys_socket = 41, amd64_sys_connect = 42, amd64_sys_accept = 43, amd64_sys_sendto = 44, amd64_sys_recvfrom = 45, amd64_sys_sendmsg = 46, amd64_sys_recvmsg = 47, amd64_sys_shutdown = 48, amd64_sys_bind = 49, amd64_sys_listen = 50, amd64_sys_getsockname = 51, amd64_sys_getpeername = 52, amd64_sys_socketpair = 53, amd64_sys_setsockopt = 54, amd64_sys_getsockopt = 55, amd64_sys_clone = 56, amd64_sys_fork = 57, amd64_sys_vfork = 58, amd64_sys_execve = 59, amd64_sys_exit = 60, amd64_sys_wait4 = 61, amd64_sys_kill = 62, amd64_sys_uname = 63, amd64_sys_semget = 64, amd64_sys_semop = 65, amd64_sys_semctl = 66, amd64_sys_shmdt = 67, amd64_sys_msgget = 68, amd64_sys_msgsnd = 69, amd64_sys_msgrcv = 70, amd64_sys_msgctl = 71, amd64_sys_fcntl = 72, amd64_sys_flock = 73, amd64_sys_fsync = 74, amd64_sys_fdatasync = 75, amd64_sys_truncate = 76, amd64_sys_ftruncate = 77, amd64_sys_getdents = 78, amd64_sys_getcwd = 79, amd64_sys_chdir = 80, amd64_sys_fchdir = 81, amd64_sys_rename = 82, amd64_sys_mkdir = 83, amd64_sys_rmdir = 84, amd64_sys_creat = 85, amd64_sys_link = 86, amd64_sys_unlink = 87, amd64_sys_symlink = 88, amd64_sys_readlink = 89, amd64_sys_chmod = 90, amd64_sys_fchmod = 91, amd64_sys_chown = 92, amd64_sys_fchown = 93, amd64_sys_lchown = 94, amd64_sys_umask = 95, amd64_sys_gettimeofday = 96, amd64_sys_getrlimit = 97, amd64_sys_getrusage = 98, amd64_sys_sysinfo = 99, amd64_sys_times = 100, amd64_sys_ptrace = 101, amd64_sys_getuid = 102, amd64_sys_syslog = 103, amd64_sys_getgid = 104, amd64_sys_setuid = 105, amd64_sys_setgid = 106, amd64_sys_geteuid = 107, amd64_sys_getegid = 108, amd64_sys_setpgid = 109, amd64_sys_getppid = 110, amd64_sys_getpgrp = 111, amd64_sys_setsid = 112, amd64_sys_setreuid = 113, amd64_sys_setregid = 114, amd64_sys_getgroups = 115, amd64_sys_setgroups = 116, amd64_sys_setresuid = 117, amd64_sys_getresuid = 118, amd64_sys_setresgid = 119, amd64_sys_getresgid = 120, amd64_sys_getpgid = 121, amd64_sys_setfsuid = 122, amd64_sys_setfsgid = 123, amd64_sys_getsid = 124, amd64_sys_capget = 125, amd64_sys_capset = 126, amd64_sys_rt_sigpending = 127, amd64_sys_rt_sigtimedwait = 128, amd64_sys_rt_sigqueueinfo = 129, amd64_sys_rt_sigsuspend = 130, amd64_sys_sigaltstack = 131, amd64_sys_utime = 132, amd64_sys_mknod = 133, amd64_sys_personality = 135, amd64_sys_ustat = 136, amd64_sys_statfs = 137, amd64_sys_fstatfs = 138, amd64_sys_sysfs = 139, amd64_sys_getpriority = 140, amd64_sys_setpriority = 141, amd64_sys_sched_setparam = 142, amd64_sys_sched_getparam = 143, amd64_sys_sched_setscheduler = 144, amd64_sys_sched_getscheduler = 145, amd64_sys_sched_get_priority_max = 146, amd64_sys_sched_get_priority_min = 147, amd64_sys_sched_rr_get_interval = 148, amd64_sys_mlock = 149, amd64_sys_munlock = 150, amd64_sys_mlockall = 151, amd64_sys_munlockall = 152, amd64_sys_vhangup = 153, amd64_sys_modify_ldt = 154, amd64_sys_pivot_root = 155, amd64_sys_sysctl = 156, amd64_sys_prctl = 157, amd64_sys_arch_prctl = 158, amd64_sys_adjtimex = 159, amd64_sys_setrlimit = 160, amd64_sys_chroot = 161, amd64_sys_sync = 162, amd64_sys_acct = 163, amd64_sys_settimeofday = 164, amd64_sys_mount = 165, amd64_sys_umount = 166, amd64_sys_swapon = 167, amd64_sys_swapoff = 168, amd64_sys_reboot = 169, amd64_sys_sethostname = 170, amd64_sys_setdomainname = 171, amd64_sys_iopl = 172, amd64_sys_ioperm = 173, amd64_sys_init_module = 175, amd64_sys_delete_module = 176, amd64_sys_quotactl = 179, amd64_sys_nfsservctl = 180, amd64_sys_gettid = 186, amd64_sys_readahead = 187, amd64_sys_setxattr = 188, amd64_sys_lsetxattr = 189, amd64_sys_fsetxattr = 190, amd64_sys_getxattr = 191, amd64_sys_lgetxattr = 192, amd64_sys_fgetxattr = 193, amd64_sys_listxattr = 194, amd64_sys_llistxattr = 195, amd64_sys_flistxattr = 196, amd64_sys_removexattr = 197, amd64_sys_lremovexattr = 198, amd64_sys_fremovexattr = 199, amd64_sys_tkill = 200, amd64_sys_time = 201, amd64_sys_futex = 202, amd64_sys_sched_setaffinity = 203, amd64_sys_sched_getaffinity = 204, amd64_sys_io_setup = 206, amd64_sys_io_destroy = 207, amd64_sys_io_getevents = 208, amd64_sys_io_submit = 209, amd64_sys_io_cancel = 210, amd64_sys_lookup_dcookie = 212, amd64_sys_epoll_create = 213, amd64_sys_remap_file_pages = 216, amd64_sys_getdents64 = 217, amd64_sys_set_tid_address = 218, amd64_sys_restart_syscall = 219, amd64_sys_semtimedop = 220, amd64_sys_fadvise64 = 221, amd64_sys_timer_create = 222, amd64_sys_timer_settime = 223, amd64_sys_timer_gettime = 224, amd64_sys_timer_getoverrun = 225, amd64_sys_timer_delete = 226, amd64_sys_clock_settime = 227, amd64_sys_clock_gettime = 228, amd64_sys_clock_getres = 229, amd64_sys_clock_nanosleep = 230, amd64_sys_exit_group = 231, amd64_sys_epoll_wait = 232, amd64_sys_epoll_ctl = 233, amd64_sys_tgkill = 234, amd64_sys_utimes = 235, amd64_sys_mbind = 237, amd64_sys_set_mempolicy = 238, amd64_sys_get_mempolicy = 239, amd64_sys_mq_open = 240, amd64_sys_mq_unlink = 241, amd64_sys_mq_timedsend = 242, amd64_sys_mq_timedreceive = 243, amd64_sys_mq_notify = 244, amd64_sys_mq_getsetattr = 245, amd64_sys_kexec_load = 246, amd64_sys_waitid = 247, amd64_sys_add_key = 248, amd64_sys_request_key = 249, amd64_sys_keyctl = 250, amd64_sys_ioprio_set = 251, amd64_sys_ioprio_get = 252, amd64_sys_inotify_init = 253, amd64_sys_inotify_add_watch = 254, amd64_sys_inotify_rm_watch = 255, amd64_sys_migrate_pages = 256, amd64_sys_openat = 257, amd64_sys_mkdirat = 258, amd64_sys_mknodat = 259, amd64_sys_fchownat = 260, amd64_sys_futimesat = 261, amd64_sys_newfstatat = 262, amd64_sys_unlinkat = 263, amd64_sys_renameat = 264, amd64_sys_linkat = 265, amd64_sys_symlinkat = 266, amd64_sys_readlinkat = 267, amd64_sys_fchmodat = 268, amd64_sys_faccessat = 269, amd64_sys_pselect6 = 270, amd64_sys_ppoll = 271, amd64_sys_unshare = 272, amd64_sys_set_robust_list = 273, amd64_sys_get_robust_list = 274, amd64_sys_splice = 275, amd64_sys_tee = 276, amd64_sys_sync_file_range = 277, amd64_sys_vmsplice = 278, amd64_sys_move_pages = 279, }; #endif /* amd64-linux-tdep.h */