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