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