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 */