Commit | Line | Data |
---|---|---|
8695c747 DJ |
1 | /* Target-dependent code for GNU/Linux AMD64. |
2 | ||
28e7fd62 | 3 | Copyright (C) 2006-2013 Free Software Foundation, Inc. |
8695c747 DJ |
4 | |
5 | This file is part of GDB. | |
6 | ||
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 | |
a9762ec7 | 9 | the Free Software Foundation; either version 3 of the License, or |
8695c747 DJ |
10 | (at your option) any later version. |
11 | ||
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. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
a9762ec7 | 18 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
8695c747 DJ |
19 | |
20 | #ifndef AMD64_LINUX_TDEP_H | |
21 | #define AMD64_LINUX_TDEP_H | |
22 | ||
23 | /* Like for i386 GNU/Linux, there is an extra "register" | |
24 | used to control syscall restarting. */ | |
25 | ||
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. */ | |
a055a187 | 29 | #define AMD64_LINUX_ORIG_RAX_REGNUM (AMD64_YMM15H_REGNUM + 1) |
8695c747 DJ |
30 | |
31 | /* Total number of registers for GNU/Linux. */ | |
32 | #define AMD64_LINUX_NUM_REGS (AMD64_LINUX_ORIG_RAX_REGNUM + 1) | |
33 | ||
90884b2b L |
34 | /* Linux target description. */ |
35 | extern struct target_desc *tdesc_amd64_linux; | |
a055a187 | 36 | extern struct target_desc *tdesc_amd64_avx_linux; |
f24afd6d L |
37 | extern struct target_desc *tdesc_x32_linux; |
38 | extern struct target_desc *tdesc_x32_avx_linux; | |
90884b2b | 39 | |
13b6d1d4 MS |
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. */ | |
43 | ||
44 | enum amd64_syscall { | |
45 | amd64_sys_read = 0, | |
46 | amd64_sys_write = 1, | |
47 | amd64_sys_open = 2, | |
48 | amd64_sys_close = 3, | |
49 | amd64_sys_newstat = 4, | |
50 | amd64_sys_newfstat = 5, | |
51 | amd64_sys_newlstat = 6, | |
52 | amd64_sys_poll = 7, | |
53 | amd64_sys_lseek = 8, | |
54 | amd64_sys_mmap = 9, | |
55 | amd64_sys_mprotect = 10, | |
56 | amd64_sys_munmap = 11, | |
57 | amd64_sys_brk = 12, | |
58 | amd64_sys_rt_sigaction = 13, | |
59 | amd64_sys_rt_sigprocmask = 14, | |
60 | amd64_sys_rt_sigreturn = 15, | |
61 | amd64_sys_ioctl = 16, | |
62 | amd64_sys_pread64 = 17, | |
63 | amd64_sys_pwrite64 = 18, | |
64 | amd64_sys_readv = 19, | |
65 | amd64_sys_writev = 20, | |
66 | amd64_sys_access = 21, | |
67 | amd64_sys_pipe = 22, | |
68 | amd64_sys_select = 23, | |
69 | amd64_sys_sched_yield = 24, | |
70 | amd64_sys_mremap = 25, | |
71 | amd64_sys_msync = 26, | |
72 | amd64_sys_mincore = 27, | |
73 | amd64_sys_madvise = 28, | |
74 | amd64_sys_shmget = 29, | |
75 | amd64_sys_shmat = 30, | |
76 | amd64_sys_shmctl = 31, | |
77 | amd64_sys_dup = 32, | |
78 | amd64_sys_dup2 = 33, | |
79 | amd64_sys_pause = 34, | |
80 | amd64_sys_nanosleep = 35, | |
81 | amd64_sys_getitimer = 36, | |
82 | amd64_sys_alarm = 37, | |
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, | |
94 | amd64_sys_bind = 49, | |
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, | |
102 | amd64_sys_fork = 57, | |
103 | amd64_sys_vfork = 58, | |
104 | amd64_sys_execve = 59, | |
105 | amd64_sys_exit = 60, | |
106 | amd64_sys_wait4 = 61, | |
107 | amd64_sys_kill = 62, | |
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, | |
131 | amd64_sys_link = 86, | |
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, | |
307 | amd64_sys_tee = 276, | |
308 | amd64_sys_sync_file_range = 277, | |
309 | amd64_sys_vmsplice = 278, | |
310 | amd64_sys_move_pages = 279, | |
311 | }; | |
312 | ||
8695c747 | 313 | #endif /* amd64-linux-tdep.h */ |