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