GDB (xrefs)

/tmp/gdb-8.1/gdb/aarch64-linux-tdep.c
Go to the documentation of this file.
1 /* Target-dependent code for GNU/Linux AArch64.
2
3 Copyright (C) 2009-2018 Free Software Foundation, Inc.
4 Contributed by ARM Ltd.
5
6 This file is part of GDB.
7
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.
12
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.
17
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/>. */
20
21 #include "defs.h"
22
23 #include "gdbarch.h"
24 #include "arch-utils.h"
25 #include "glibc-tdep.h"
26 #include "linux-tdep.h"
27 #include "aarch64-tdep.h"
28 #include "aarch64-linux-tdep.h"
29 #include "osabi.h"
30 #include "solib-svr4.h"
31 #include "symtab.h"
32 #include "tramp-frame.h"
33 #include "trad-frame.h"
34
35 #include "inferior.h"
36 #include "regcache.h"
37 #include "regset.h"
38
39 #include "cli/cli-utils.h"
40 #include "stap-probe.h"
41 #include "parser-defs.h"
42 #include "user-regs.h"
43 #include "xml-syscall.h"
44 #include <ctype.h>
45
46 #include "record-full.h"
47 #include "linux-record.h"
48 #include "auxv.h"
49 #include "elf/common.h"
50
51 /* Signal frame handling.
52
53 +------------+ ^
54 | saved lr | |
55 +->| saved fp |--+
56 | | |
57 | | |
58 | +------------+
59 | | saved lr |
60 +--| saved fp |
61 ^ | |
62 | | |
63 | +------------+
64 ^ | |
65 | | signal |
66 | | | SIGTRAMP_FRAME (struct rt_sigframe)
67 | | saved regs |
68 +--| saved sp |--> interrupted_sp
69 | | saved pc |--> interrupted_pc
70 | | |
71 | +------------+
72 | | saved lr |--> default_restorer (movz x8, NR_sys_rt_sigreturn; svc 0)
73 +--| saved fp |<- FP
74 | | NORMAL_FRAME
75 | |<- SP
76 +------------+
77
78 On signal delivery, the kernel will create a signal handler stack
79 frame and setup the return address in LR to point at restorer stub.
80 The signal stack frame is defined by:
81
82 struct rt_sigframe
83 {
84 siginfo_t info;
85 struct ucontext uc;
86 };
87
88 typedef struct
89 {
90 ... 128 bytes
91 } siginfo_t;
92
93 The ucontext has the following form:
94 struct ucontext
95 {
96 unsigned long uc_flags;
97 struct ucontext *uc_link;
98 stack_t uc_stack;
99 sigset_t uc_sigmask;
100 struct sigcontext uc_mcontext;
101 };
102
103 typedef struct sigaltstack
104 {
105 void *ss_sp;
106 int ss_flags;
107 size_t ss_size;
108 } stack_t;
109
110 struct sigcontext
111 {
112 unsigned long fault_address;
113 unsigned long regs[31];
114 unsigned long sp; / * 31 * /
115 unsigned long pc; / * 32 * /
116 unsigned long pstate; / * 33 * /
117 __u8 __reserved[4096]
118 };
119
120 The restorer stub will always have the form:
121
122 d28015a8 movz x8, #0xad
123 d4000001 svc #0x0
124
125 This is a system call sys_rt_sigreturn.
126
127 We detect signal frames by snooping the return code for the restorer
128 instruction sequence.
129
130 The handler then needs to recover the saved register set from
131 ucontext.uc_mcontext. */
132
133 /* These magic numbers need to reflect the layout of the kernel
134 defined struct rt_sigframe and ucontext. */
135 #define AARCH64_SIGCONTEXT_REG_SIZE 8
136 #define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET 128
137 #define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET 176
138 #define AARCH64_SIGCONTEXT_XO_OFFSET 8
139
140 /* Implement the "init" method of struct tramp_frame. */
141
142 static void
143 aarch64_linux_sigframe_init (const struct tramp_frame *self,
144 struct frame_info *this_frame,
145 struct trad_frame_cache *this_cache,
146 CORE_ADDR func)
147 {
148 CORE_ADDR sp = get_frame_register_unsigned (this_frame, AARCH64_SP_REGNUM);
149 CORE_ADDR sigcontext_addr =
150 sp
151 + AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET
152 + AARCH64_UCONTEXT_SIGCONTEXT_OFFSET;
153 int i;
154
155 for (i = 0; i < 31; i++)
156 {
157 trad_frame_set_reg_addr (this_cache,
158 AARCH64_X0_REGNUM + i,
159 sigcontext_addr + AARCH64_SIGCONTEXT_XO_OFFSET
160 + i * AARCH64_SIGCONTEXT_REG_SIZE);
161 }
162 trad_frame_set_reg_addr (this_cache, AARCH64_SP_REGNUM,
163 sigcontext_addr + AARCH64_SIGCONTEXT_XO_OFFSET
164 + 31 * AARCH64_SIGCONTEXT_REG_SIZE);
165 trad_frame_set_reg_addr (this_cache, AARCH64_PC_REGNUM,
166 sigcontext_addr + AARCH64_SIGCONTEXT_XO_OFFSET
167 + 32 * AARCH64_SIGCONTEXT_REG_SIZE);
168
169 trad_frame_set_id (this_cache, frame_id_build (sp, func));
170 }
171
172 static const struct tramp_frame aarch64_linux_rt_sigframe =
173 {
174 SIGTRAMP_FRAME,
175 4,
176 {
177 /* movz x8, 0x8b (S=1,o=10,h=0,i=0x8b,r=8)
178 Soo1 0010 1hhi iiii iiii iiii iiir rrrr */
179 {0xd2801168, -1},
180
181 /* svc 0x0 (o=0, l=1)
182 1101 0100 oooi iiii iiii iiii iii0 00ll */
183 {0xd4000001, -1},
184 {TRAMP_SENTINEL_INSN, -1}
185 },
186 aarch64_linux_sigframe_init
187 };
188
189 /* Register maps. */
190
191 static const struct regcache_map_entry aarch64_linux_gregmap[] =
192 {
193 { 31, AARCH64_X0_REGNUM, 8 }, /* x0 ... x30 */
194 { 1, AARCH64_SP_REGNUM, 8 },
195 { 1, AARCH64_PC_REGNUM, 8 },
196 { 1, AARCH64_CPSR_REGNUM, 8 },
197 { 0 }
198 };
199
200 static const struct regcache_map_entry aarch64_linux_fpregmap[] =
201 {
202 { 32, AARCH64_V0_REGNUM, 16 }, /* v0 ... v31 */
203 { 1, AARCH64_FPSR_REGNUM, 4 },
204 { 1, AARCH64_FPCR_REGNUM, 4 },
205 { 0 }
206 };
207
208 /* Register set definitions. */
209
210 const struct regset aarch64_linux_gregset =
211 {
212 aarch64_linux_gregmap,
213 regcache_supply_regset, regcache_collect_regset
214 };
215
216 const struct regset aarch64_linux_fpregset =
217 {
218 aarch64_linux_fpregmap,
219 regcache_supply_regset, regcache_collect_regset
220 };
221
222 /* Implement the "regset_from_core_section" gdbarch method. */
223
224 static void
225 aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
226 iterate_over_regset_sections_cb *cb,
227 void *cb_data,
228 const struct regcache *regcache)
229 {
230 cb (".reg", AARCH64_LINUX_SIZEOF_GREGSET, &aarch64_linux_gregset,
231 NULL, cb_data);
232 cb (".reg2", AARCH64_LINUX_SIZEOF_FPREGSET, &aarch64_linux_fpregset,
233 NULL, cb_data);
234 }
235
236 /* Implement the "core_read_description" gdbarch method. */
237
238 static const struct target_desc *
239 aarch64_linux_core_read_description (struct gdbarch *gdbarch,
240 struct target_ops *target, bfd *abfd)
241 {
242 CORE_ADDR aarch64_hwcap = 0;
243
244 if (target_auxv_search (target, AT_HWCAP, &aarch64_hwcap) != 1)
245 return NULL;
246
247 return aarch64_read_description ();
248 }
249
250 /* Implementation of `gdbarch_stap_is_single_operand', as defined in
251 gdbarch.h. */
252
253 static int
254 aarch64_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
255 {
256 return (*s == '#' || isdigit (*s) /* Literal number. */
257 || *s == '[' /* Register indirection. */
258 || isalpha (*s)); /* Register value. */
259 }
260
261 /* This routine is used to parse a special token in AArch64's assembly.
262
263 The special tokens parsed by it are:
264
265 - Register displacement (e.g, [fp, #-8])
266
267 It returns one if the special token has been parsed successfully,
268 or zero if the current token is not considered special. */
269
270 static int
271 aarch64_stap_parse_special_token (struct gdbarch *gdbarch,
272 struct stap_parse_info *p)
273 {
274 if (*p->arg == '[')
275 {
276 /* Temporary holder for lookahead. */
277 const char *tmp = p->arg;
278 char *endp;
279 /* Used to save the register name. */
280 const char *start;
281 char *regname;
282 int len;
283 int got_minus = 0;
284 long displacement;
285 struct stoken str;
286
287 ++tmp;
288 start = tmp;
289
290 /* Register name. */
291 while (isalnum (*tmp))
292 ++tmp;
293
294 if (*tmp != ',')
295 return 0;
296
297 len = tmp - start;
298 regname = (char *) alloca (len + 2);
299
300 strncpy (regname, start, len);
301 regname[len] = '\0';
302
303 if (user_reg_map_name_to_regnum (gdbarch, regname, len) == -1)
304 error (_("Invalid register name `%s' on expression `%s'."),
305 regname, p->saved_arg);
306
307 ++tmp;
308 tmp = skip_spaces (tmp);
309 /* Now we expect a number. It can begin with '#' or simply
310 a digit. */
311 if (*tmp == '#')
312 ++tmp;
313
314 if (*tmp == '-')
315 {
316 ++tmp;
317 got_minus = 1;
318 }
319 else if (*tmp == '+')
320 ++tmp;
321
322 if (!isdigit (*tmp))
323 return 0;
324
325 displacement = strtol (tmp, &endp, 10);
326 tmp = endp;
327
328 /* Skipping last `]'. */
329 if (*tmp++ != ']')
330 return 0;
331
332 /* The displacement. */
333 write_exp_elt_opcode (&p->pstate, OP_LONG);
334 write_exp_elt_type (&p->pstate, builtin_type (gdbarch)->builtin_long);
335 write_exp_elt_longcst (&p->pstate, displacement);
336 write_exp_elt_opcode (&p->pstate, OP_LONG);
337 if (got_minus)
338 write_exp_elt_opcode (&p->pstate, UNOP_NEG);
339
340 /* The register name. */
341 write_exp_elt_opcode (&p->pstate, OP_REGISTER);
342 str.ptr = regname;
343 str.length = len;
344 write_exp_string (&p->pstate, str);
345 write_exp_elt_opcode (&p->pstate, OP_REGISTER);
346
347 write_exp_elt_opcode (&p->pstate, BINOP_ADD);
348
349 /* Casting to the expected type. */
350 write_exp_elt_opcode (&p->pstate, UNOP_CAST);
351 write_exp_elt_type (&p->pstate, lookup_pointer_type (p->arg_type));
352 write_exp_elt_opcode (&p->pstate, UNOP_CAST);
353
354 write_exp_elt_opcode (&p->pstate, UNOP_IND);
355
356 p->arg = tmp;
357 }
358 else
359 return 0;
360
361 return 1;
362 }
363
364 /* Implement the "get_syscall_number" gdbarch method. */
365
366 static LONGEST
367 aarch64_linux_get_syscall_number (struct gdbarch *gdbarch,
368 ptid_t ptid)
369 {
370 struct regcache *regs = get_thread_regcache (ptid);
371 enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
372
373 /* The content of register x8. */
374 gdb_byte buf[X_REGISTER_SIZE];
375 /* The result. */
376 LONGEST ret;
377
378 /* Getting the system call number from the register x8. */
379 regcache_cooked_read (regs, AARCH64_DWARF_X0 + 8, buf);
380
381 ret = extract_signed_integer (buf, X_REGISTER_SIZE, byte_order);
382
383 return ret;
384 }
385
386 /* AArch64 process record-replay constructs: syscall, signal etc. */
387
388 struct linux_record_tdep aarch64_linux_record_tdep;
389
390 /* Enum that defines the AArch64 linux specific syscall identifiers used for
391 process record/replay. */
392
393 enum aarch64_syscall {
394 aarch64_sys_io_setup = 0,
395 aarch64_sys_io_destroy = 1,
396 aarch64_sys_io_submit = 2,
397 aarch64_sys_io_cancel = 3,
398 aarch64_sys_io_getevents = 4,
399 aarch64_sys_setxattr = 5,
400 aarch64_sys_lsetxattr = 6,
401 aarch64_sys_fsetxattr = 7,
402 aarch64_sys_getxattr = 8,
403 aarch64_sys_lgetxattr = 9,
404 aarch64_sys_fgetxattr = 10,
405 aarch64_sys_listxattr = 11,
406 aarch64_sys_llistxattr = 12,
407 aarch64_sys_flistxattr = 13,
408 aarch64_sys_removexattr = 14,
409 aarch64_sys_lremovexattr = 15,
410 aarch64_sys_fremovexattr = 16,
411 aarch64_sys_getcwd = 17,
412 aarch64_sys_lookup_dcookie = 18,
413 aarch64_sys_eventfd2 = 19,
414 aarch64_sys_epoll_create1 = 20,
415 aarch64_sys_epoll_ctl = 21,
416 aarch64_sys_epoll_pwait = 22,
417 aarch64_sys_dup = 23,
418 aarch64_sys_dup3 = 24,
419 aarch64_sys_fcntl = 25,
420 aarch64_sys_inotify_init1 = 26,
421 aarch64_sys_inotify_add_watch = 27,
422 aarch64_sys_inotify_rm_watch = 28,
423 aarch64_sys_ioctl = 29,
424 aarch64_sys_ioprio_set = 30,
425 aarch64_sys_ioprio_get = 31,
426 aarch64_sys_flock = 32,
427 aarch64_sys_mknodat = 33,
428 aarch64_sys_mkdirat = 34,
429 aarch64_sys_unlinkat = 35,
430 aarch64_sys_symlinkat = 36,
431 aarch64_sys_linkat = 37,
432 aarch64_sys_renameat = 38,
433 aarch64_sys_umount2 = 39,
434 aarch64_sys_mount = 40,
435 aarch64_sys_pivot_root = 41,
436 aarch64_sys_nfsservctl = 42,
437 aarch64_sys_statfs = 43,
438 aarch64_sys_fstatfs = 44,
439 aarch64_sys_truncate = 45,
440 aarch64_sys_ftruncate = 46,
441 aarch64_sys_fallocate = 47,
442 aarch64_sys_faccessat = 48,
443 aarch64_sys_chdir = 49,
444 aarch64_sys_fchdir = 50,
445 aarch64_sys_chroot = 51,
446 aarch64_sys_fchmod = 52,
447 aarch64_sys_fchmodat = 53,
448 aarch64_sys_fchownat = 54,
449 aarch64_sys_fchown = 55,
450 aarch64_sys_openat = 56,
451 aarch64_sys_close = 57,
452 aarch64_sys_vhangup = 58,
453 aarch64_sys_pipe2 = 59,
454 aarch64_sys_quotactl = 60,
455 aarch64_sys_getdents64 = 61,
456 aarch64_sys_lseek = 62,
457 aarch64_sys_read = 63,
458 aarch64_sys_write = 64,
459 aarch64_sys_readv = 65,
460 aarch64_sys_writev = 66,
461 aarch64_sys_pread64 = 67,
462 aarch64_sys_pwrite64 = 68,
463 aarch64_sys_preadv = 69,
464 aarch64_sys_pwritev = 70,
465 aarch64_sys_sendfile = 71,
466 aarch64_sys_pselect6 = 72,
467 aarch64_sys_ppoll = 73,
468 aarch64_sys_signalfd4 = 74,
469 aarch64_sys_vmsplice = 75,
470 aarch64_sys_splice = 76,
471 aarch64_sys_tee = 77,
472 aarch64_sys_readlinkat = 78,
473 aarch64_sys_newfstatat = 79,
474 aarch64_sys_fstat = 80,
475 aarch64_sys_sync = 81,
476 aarch64_sys_fsync = 82,
477 aarch64_sys_fdatasync = 83,
478 aarch64_sys_sync_file_range2 = 84,
479 aarch64_sys_sync_file_range = 84,
480 aarch64_sys_timerfd_create = 85,
481 aarch64_sys_timerfd_settime = 86,
482 aarch64_sys_timerfd_gettime = 87,
483 aarch64_sys_utimensat = 88,
484 aarch64_sys_acct = 89,
485 aarch64_sys_capget = 90,
486 aarch64_sys_capset = 91,
487 aarch64_sys_personality = 92,
488 aarch64_sys_exit = 93,
489 aarch64_sys_exit_group = 94,
490 aarch64_sys_waitid = 95,
491 aarch64_sys_set_tid_address = 96,
492 aarch64_sys_unshare = 97,
493 aarch64_sys_futex = 98,
494 aarch64_sys_set_robust_list = 99,
495 aarch64_sys_get_robust_list = 100,
496 aarch64_sys_nanosleep = 101,
497 aarch64_sys_getitimer = 102,
498 aarch64_sys_setitimer = 103,
499 aarch64_sys_kexec_load = 104,
500 aarch64_sys_init_module = 105,
501 aarch64_sys_delete_module = 106,
502 aarch64_sys_timer_create = 107,
503 aarch64_sys_timer_gettime = 108,
504 aarch64_sys_timer_getoverrun = 109,
505 aarch64_sys_timer_settime = 110,
506 aarch64_sys_timer_delete = 111,
507 aarch64_sys_clock_settime = 112,
508 aarch64_sys_clock_gettime = 113,
509 aarch64_sys_clock_getres = 114,
510 aarch64_sys_clock_nanosleep = 115,
511 aarch64_sys_syslog = 116,
512 aarch64_sys_ptrace = 117,
513 aarch64_sys_sched_setparam = 118,
514 aarch64_sys_sched_setscheduler = 119,
515 aarch64_sys_sched_getscheduler = 120,
516 aarch64_sys_sched_getparam = 121,
517 aarch64_sys_sched_setaffinity = 122,
518 aarch64_sys_sched_getaffinity = 123,
519 aarch64_sys_sched_yield = 124,
520 aarch64_sys_sched_get_priority_max = 125,
521 aarch64_sys_sched_get_priority_min = 126,
522 aarch64_sys_sched_rr_get_interval = 127,
523 aarch64_sys_kill = 129,
524 aarch64_sys_tkill = 130,
525 aarch64_sys_tgkill = 131,
526 aarch64_sys_sigaltstack = 132,
527 aarch64_sys_rt_sigsuspend = 133,
528 aarch64_sys_rt_sigaction = 134,
529 aarch64_sys_rt_sigprocmask = 135,
530 aarch64_sys_rt_sigpending = 136,
531 aarch64_sys_rt_sigtimedwait = 137,
532 aarch64_sys_rt_sigqueueinfo = 138,
533 aarch64_sys_rt_sigreturn = 139,
534 aarch64_sys_setpriority = 140,
535 aarch64_sys_getpriority = 141,
536 aarch64_sys_reboot = 142,
537 aarch64_sys_setregid = 143,
538 aarch64_sys_setgid = 144,
539 aarch64_sys_setreuid = 145,
540 aarch64_sys_setuid = 146,
541 aarch64_sys_setresuid = 147,
542 aarch64_sys_getresuid = 148,
543 aarch64_sys_setresgid = 149,
544 aarch64_sys_getresgid = 150,
545 aarch64_sys_setfsuid = 151,
546 aarch64_sys_setfsgid = 152,
547 aarch64_sys_times = 153,
548 aarch64_sys_setpgid = 154,
549 aarch64_sys_getpgid = 155,
550 aarch64_sys_getsid = 156,
551 aarch64_sys_setsid = 157,
552 aarch64_sys_getgroups = 158,
553 aarch64_sys_setgroups = 159,
554 aarch64_sys_uname = 160,
555 aarch64_sys_sethostname = 161,
556 aarch64_sys_setdomainname = 162,
557 aarch64_sys_getrlimit = 163,
558 aarch64_sys_setrlimit = 164,
559 aarch64_sys_getrusage = 165,
560 aarch64_sys_umask = 166,
561 aarch64_sys_prctl = 167,
562 aarch64_sys_getcpu = 168,
563 aarch64_sys_gettimeofday = 169,
564 aarch64_sys_settimeofday = 170,
565 aarch64_sys_adjtimex = 171,
566 aarch64_sys_getpid = 172,
567 aarch64_sys_getppid = 173,
568 aarch64_sys_getuid = 174,
569 aarch64_sys_geteuid = 175,
570 aarch64_sys_getgid = 176,
571 aarch64_sys_getegid = 177,
572 aarch64_sys_gettid = 178,
573 aarch64_sys_sysinfo = 179,
574 aarch64_sys_mq_open = 180,
575 aarch64_sys_mq_unlink = 181,
576 aarch64_sys_mq_timedsend = 182,
577 aarch64_sys_mq_timedreceive = 183,
578 aarch64_sys_mq_notify = 184,
579 aarch64_sys_mq_getsetattr = 185,
580 aarch64_sys_msgget = 186,
581 aarch64_sys_msgctl = 187,
582 aarch64_sys_msgrcv = 188,
583 aarch64_sys_msgsnd = 189,
584 aarch64_sys_semget = 190,
585 aarch64_sys_semctl = 191,
586 aarch64_sys_semtimedop = 192,
587 aarch64_sys_semop = 193,
588 aarch64_sys_shmget = 194,
589 aarch64_sys_shmctl = 195,
590 aarch64_sys_shmat = 196,
591 aarch64_sys_shmdt = 197,
592 aarch64_sys_socket = 198,
593 aarch64_sys_socketpair = 199,
594 aarch64_sys_bind = 200,
595 aarch64_sys_listen = 201,
596 aarch64_sys_accept = 202,
597 aarch64_sys_connect = 203,
598 aarch64_sys_getsockname = 204,
599 aarch64_sys_getpeername = 205,
600 aarch64_sys_sendto = 206,
601 aarch64_sys_recvfrom = 207,
602 aarch64_sys_setsockopt = 208,
603 aarch64_sys_getsockopt = 209,
604 aarch64_sys_shutdown = 210,
605 aarch64_sys_sendmsg = 211,
606 aarch64_sys_recvmsg = 212,
607 aarch64_sys_readahead = 213,
608 aarch64_sys_brk = 214,
609 aarch64_sys_munmap = 215,
610 aarch64_sys_mremap = 216,
611 aarch64_sys_add_key = 217,
612 aarch64_sys_request_key = 218,
613 aarch64_sys_keyctl = 219,
614 aarch64_sys_clone = 220,
615 aarch64_sys_execve = 221,
616 aarch64_sys_mmap = 222,
617 aarch64_sys_fadvise64 = 223,
618 aarch64_sys_swapon = 224,
619 aarch64_sys_swapoff = 225,
620 aarch64_sys_mprotect = 226,
621 aarch64_sys_msync = 227,
622 aarch64_sys_mlock = 228,
623 aarch64_sys_munlock = 229,
624 aarch64_sys_mlockall = 230,
625 aarch64_sys_munlockall = 231,
626 aarch64_sys_mincore = 232,
627 aarch64_sys_madvise = 233,
628 aarch64_sys_remap_file_pages = 234,
629 aarch64_sys_mbind = 235,
630 aarch64_sys_get_mempolicy = 236,
631 aarch64_sys_set_mempolicy = 237,
632 aarch64_sys_migrate_pages = 238,
633 aarch64_sys_move_pages = 239,
634 aarch64_sys_rt_tgsigqueueinfo = 240,
635 aarch64_sys_perf_event_open = 241,
636 aarch64_sys_accept4 = 242,
637 aarch64_sys_recvmmsg = 243,
638 aarch64_sys_wait4 = 260,
639 aarch64_sys_prlimit64 = 261,
640 aarch64_sys_fanotify_init = 262,
641 aarch64_sys_fanotify_mark = 263,
642 aarch64_sys_name_to_handle_at = 264,
643 aarch64_sys_open_by_handle_at = 265,
644 aarch64_sys_clock_adjtime = 266,
645 aarch64_sys_syncfs = 267,
646 aarch64_sys_setns = 268,
647 aarch64_sys_sendmmsg = 269,
648 aarch64_sys_process_vm_readv = 270,
649 aarch64_sys_process_vm_writev = 271,
650 aarch64_sys_kcmp = 272,
651 aarch64_sys_finit_module = 273,
652 aarch64_sys_sched_setattr = 274,
653 aarch64_sys_sched_getattr = 275,
654 };
655
656 /* aarch64_canonicalize_syscall maps syscall ids from the native AArch64
657 linux set of syscall ids into a canonical set of syscall ids used by
658 process record. */
659
660 static enum gdb_syscall
661 aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
662 {
663 #define SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
664 return gdb_sys_##SYSCALL
665
666 #define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
667 return gdb_sys_no_syscall
668
669 switch (syscall_number)
670 {
671 SYSCALL_MAP (io_setup);
672 SYSCALL_MAP (io_destroy);
673 SYSCALL_MAP (io_submit);
674 SYSCALL_MAP (io_cancel);
675 SYSCALL_MAP (io_getevents);
676
677 SYSCALL_MAP (setxattr);
678 SYSCALL_MAP (lsetxattr);
679 SYSCALL_MAP (fsetxattr);
680 SYSCALL_MAP (getxattr);
681 SYSCALL_MAP (lgetxattr);
682 SYSCALL_MAP (fgetxattr);
683 SYSCALL_MAP (listxattr);
684 SYSCALL_MAP (llistxattr);
685 SYSCALL_MAP (flistxattr);
686 SYSCALL_MAP (removexattr);
687 SYSCALL_MAP (lremovexattr);
688 SYSCALL_MAP (fremovexattr);
689 SYSCALL_MAP (getcwd);
690 SYSCALL_MAP (lookup_dcookie);
691 SYSCALL_MAP (eventfd2);
692 SYSCALL_MAP (epoll_create1);
693 SYSCALL_MAP (epoll_ctl);
694 SYSCALL_MAP (epoll_pwait);
695 SYSCALL_MAP (dup);
696 SYSCALL_MAP (dup3);
697 SYSCALL_MAP (fcntl);
698 SYSCALL_MAP (inotify_init1);
699 SYSCALL_MAP (inotify_add_watch);
700 SYSCALL_MAP (inotify_rm_watch);
701 SYSCALL_MAP (ioctl);
702 SYSCALL_MAP (ioprio_set);
703 SYSCALL_MAP (ioprio_get);
704 SYSCALL_MAP (flock);
705 SYSCALL_MAP (mknodat);
706 SYSCALL_MAP (mkdirat);
707 SYSCALL_MAP (unlinkat);
708 SYSCALL_MAP (symlinkat);
709 SYSCALL_MAP (linkat);
710 SYSCALL_MAP (renameat);
711 UNSUPPORTED_SYSCALL_MAP (umount2);
712 SYSCALL_MAP (mount);
713 SYSCALL_MAP (pivot_root);
714 SYSCALL_MAP (nfsservctl);
715 SYSCALL_MAP (statfs);
716 SYSCALL_MAP (truncate);
717 SYSCALL_MAP (ftruncate);
718 SYSCALL_MAP (fallocate);
719 SYSCALL_MAP (faccessat);
720 SYSCALL_MAP (fchdir);
721 SYSCALL_MAP (chroot);
722 SYSCALL_MAP (fchmod);
723 SYSCALL_MAP (fchmodat);
724 SYSCALL_MAP (fchownat);
725 SYSCALL_MAP (fchown);
726 SYSCALL_MAP (openat);
727 SYSCALL_MAP (close);
728 SYSCALL_MAP (vhangup);
729 SYSCALL_MAP (pipe2);
730 SYSCALL_MAP (quotactl);
731 SYSCALL_MAP (getdents64);
732 SYSCALL_MAP (lseek);
733 SYSCALL_MAP (read);
734 SYSCALL_MAP (write);
735 SYSCALL_MAP (readv);
736 SYSCALL_MAP (writev);
737 SYSCALL_MAP (pread64);
738 SYSCALL_MAP (pwrite64);
739 UNSUPPORTED_SYSCALL_MAP (preadv);
740 UNSUPPORTED_SYSCALL_MAP (pwritev);
741 SYSCALL_MAP (sendfile);
742 SYSCALL_MAP (pselect6);
743 SYSCALL_MAP (ppoll);
744 UNSUPPORTED_SYSCALL_MAP (signalfd4);
745 SYSCALL_MAP (vmsplice);
746 SYSCALL_MAP (splice);
747 SYSCALL_MAP (tee);
748 SYSCALL_MAP (readlinkat);
749 SYSCALL_MAP (newfstatat);
750
751 SYSCALL_MAP (fstat);
752 SYSCALL_MAP (sync);
753 SYSCALL_MAP (fsync);
754 SYSCALL_MAP (fdatasync);
755 SYSCALL_MAP (sync_file_range);
756 UNSUPPORTED_SYSCALL_MAP (timerfd_create);
757 UNSUPPORTED_SYSCALL_MAP (timerfd_settime);
758 UNSUPPORTED_SYSCALL_MAP (timerfd_gettime);
759 UNSUPPORTED_SYSCALL_MAP (utimensat);
760 SYSCALL_MAP (acct);
761 SYSCALL_MAP (capget);
762 SYSCALL_MAP (capset);
763 SYSCALL_MAP (personality);
764 SYSCALL_MAP (exit);
765 SYSCALL_MAP (exit_group);
766 SYSCALL_MAP (waitid);
767 SYSCALL_MAP (set_tid_address);
768 SYSCALL_MAP (unshare);
769 SYSCALL_MAP (futex);
770 SYSCALL_MAP (set_robust_list);
771 SYSCALL_MAP (get_robust_list);
772 SYSCALL_MAP (nanosleep);
773
774 SYSCALL_MAP (getitimer);
775 SYSCALL_MAP (setitimer);
776 SYSCALL_MAP (kexec_load);
777 SYSCALL_MAP (init_module);
778 SYSCALL_MAP (delete_module);
779 SYSCALL_MAP (timer_create);
780 SYSCALL_MAP (timer_settime);
781 SYSCALL_MAP (timer_gettime);
782 SYSCALL_MAP (timer_getoverrun);
783 SYSCALL_MAP (timer_delete);
784 SYSCALL_MAP (clock_settime);
785 SYSCALL_MAP (clock_gettime);
786 SYSCALL_MAP (clock_getres);
787 SYSCALL_MAP (clock_nanosleep);
788 SYSCALL_MAP (syslog);
789 SYSCALL_MAP (ptrace);
790 SYSCALL_MAP (sched_setparam);
791 SYSCALL_MAP (sched_setscheduler);
792 SYSCALL_MAP (sched_getscheduler);
793 SYSCALL_MAP (sched_getparam);
794 SYSCALL_MAP (sched_setaffinity);
795 SYSCALL_MAP (sched_getaffinity);
796 SYSCALL_MAP (sched_yield);
797 SYSCALL_MAP (sched_get_priority_max);
798 SYSCALL_MAP (sched_get_priority_min);
799 SYSCALL_MAP (sched_rr_get_interval);
800 SYSCALL_MAP (kill);
801 SYSCALL_MAP (tkill);
802 SYSCALL_MAP (tgkill);
803 SYSCALL_MAP (sigaltstack);
804 SYSCALL_MAP (rt_sigsuspend);
805 SYSCALL_MAP (rt_sigaction);
806 SYSCALL_MAP (rt_sigprocmask);
807 SYSCALL_MAP (rt_sigpending);
808 SYSCALL_MAP (rt_sigtimedwait);
809 SYSCALL_MAP (rt_sigqueueinfo);
810 SYSCALL_MAP (rt_sigreturn);
811 SYSCALL_MAP (setpriority);
812 SYSCALL_MAP (getpriority);
813 SYSCALL_MAP (reboot);
814 SYSCALL_MAP (setregid);
815 SYSCALL_MAP (setgid);
816 SYSCALL_MAP (setreuid);
817 SYSCALL_MAP (setuid);
818 SYSCALL_MAP (setresuid);
819 SYSCALL_MAP (getresuid);
820 SYSCALL_MAP (setresgid);
821 SYSCALL_MAP (getresgid);
822 SYSCALL_MAP (setfsuid);
823 SYSCALL_MAP (setfsgid);
824 SYSCALL_MAP (times);
825 SYSCALL_MAP (setpgid);
826 SYSCALL_MAP (getpgid);
827 SYSCALL_MAP (getsid);
828 SYSCALL_MAP (setsid);
829 SYSCALL_MAP (getgroups);
830 SYSCALL_MAP (setgroups);
831 SYSCALL_MAP (uname);
832 SYSCALL_MAP (sethostname);
833 SYSCALL_MAP (setdomainname);
834 SYSCALL_MAP (getrlimit);
835 SYSCALL_MAP (setrlimit);
836 SYSCALL_MAP (getrusage);
837 SYSCALL_MAP (umask);
838 SYSCALL_MAP (prctl);
839 SYSCALL_MAP (getcpu);
840 SYSCALL_MAP (gettimeofday);
841 SYSCALL_MAP (settimeofday);
842 SYSCALL_MAP (adjtimex);
843 SYSCALL_MAP (getpid);
844 SYSCALL_MAP (getppid);
845 SYSCALL_MAP (getuid);
846 SYSCALL_MAP (geteuid);
847 SYSCALL_MAP (getgid);
848 SYSCALL_MAP (getegid);
849 SYSCALL_MAP (gettid);
850 SYSCALL_MAP (sysinfo);
851 SYSCALL_MAP (mq_open);
852 SYSCALL_MAP (mq_unlink);
853 SYSCALL_MAP (mq_timedsend);
854 SYSCALL_MAP (mq_timedreceive);
855 SYSCALL_MAP (mq_notify);
856 SYSCALL_MAP (mq_getsetattr);
857 SYSCALL_MAP (msgget);
858 SYSCALL_MAP (msgctl);
859 SYSCALL_MAP (msgrcv);
860 SYSCALL_MAP (msgsnd);
861 SYSCALL_MAP (semget);
862 SYSCALL_MAP (semctl);
863 SYSCALL_MAP (semtimedop);
864 SYSCALL_MAP (semop);
865 SYSCALL_MAP (shmget);
866 SYSCALL_MAP (shmctl);
867 SYSCALL_MAP (shmat);
868 SYSCALL_MAP (shmdt);
869 SYSCALL_MAP (socket);
870 SYSCALL_MAP (socketpair);
871 SYSCALL_MAP (bind);
872 SYSCALL_MAP (listen);
873 SYSCALL_MAP (accept);
874 SYSCALL_MAP (connect);
875 SYSCALL_MAP (getsockname);
876 SYSCALL_MAP (getpeername);
877 SYSCALL_MAP (sendto);
878 SYSCALL_MAP (recvfrom);
879 SYSCALL_MAP (setsockopt);
880 SYSCALL_MAP (getsockopt);
881 SYSCALL_MAP (shutdown);
882 SYSCALL_MAP (sendmsg);
883 SYSCALL_MAP (recvmsg);
884 SYSCALL_MAP (readahead);
885 SYSCALL_MAP (brk);
886 SYSCALL_MAP (munmap);
887 SYSCALL_MAP (mremap);
888 SYSCALL_MAP (add_key);
889 SYSCALL_MAP (request_key);
890 SYSCALL_MAP (keyctl);
891 SYSCALL_MAP (clone);
892 SYSCALL_MAP (execve);
893
894 case aarch64_sys_mmap:
895 return gdb_sys_mmap2;
896
897 SYSCALL_MAP (fadvise64);
898 SYSCALL_MAP (swapon);
899 SYSCALL_MAP (swapoff);
900 SYSCALL_MAP (mprotect);
901 SYSCALL_MAP (msync);
902 SYSCALL_MAP (mlock);
903 SYSCALL_MAP (munlock);
904 SYSCALL_MAP (mlockall);
905 SYSCALL_MAP (munlockall);
906 SYSCALL_MAP (mincore);
907 SYSCALL_MAP (madvise);
908 SYSCALL_MAP (remap_file_pages);
909 SYSCALL_MAP (mbind);
910 SYSCALL_MAP (get_mempolicy);
911 SYSCALL_MAP (set_mempolicy);
912 SYSCALL_MAP (migrate_pages);
913 SYSCALL_MAP (move_pages);
914 UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo);
915 UNSUPPORTED_SYSCALL_MAP (perf_event_open);
916 UNSUPPORTED_SYSCALL_MAP (accept4);
917 UNSUPPORTED_SYSCALL_MAP (recvmmsg);
918
919 SYSCALL_MAP (wait4);
920
921 UNSUPPORTED_SYSCALL_MAP (prlimit64);
922 UNSUPPORTED_SYSCALL_MAP (fanotify_init);
923 UNSUPPORTED_SYSCALL_MAP (fanotify_mark);
924 UNSUPPORTED_SYSCALL_MAP (name_to_handle_at);
925 UNSUPPORTED_SYSCALL_MAP (open_by_handle_at);
926 UNSUPPORTED_SYSCALL_MAP (clock_adjtime);
927 UNSUPPORTED_SYSCALL_MAP (syncfs);
928 UNSUPPORTED_SYSCALL_MAP (setns);
929 UNSUPPORTED_SYSCALL_MAP (sendmmsg);
930 UNSUPPORTED_SYSCALL_MAP (process_vm_readv);
931 UNSUPPORTED_SYSCALL_MAP (process_vm_writev);
932 UNSUPPORTED_SYSCALL_MAP (kcmp);
933 UNSUPPORTED_SYSCALL_MAP (finit_module);
934 UNSUPPORTED_SYSCALL_MAP (sched_setattr);
935 UNSUPPORTED_SYSCALL_MAP (sched_getattr);
936 default:
937 return gdb_sys_no_syscall;
938 }
939 }
940
941 /* Record all registers but PC register for process-record. */
942
943 static int
944 aarch64_all_but_pc_registers_record (struct regcache *regcache)
945 {
946 int i;
947
948 for (i = AARCH64_X0_REGNUM; i < AARCH64_PC_REGNUM; i++)
949 if (record_full_arch_list_add_reg (regcache, i))
950 return -1;
951
952 if (record_full_arch_list_add_reg (regcache, AARCH64_CPSR_REGNUM))
953 return -1;
954
955 return 0;
956 }
957
958 /* Handler for aarch64 system call instruction recording. */
959
960 static int
961 aarch64_linux_syscall_record (struct regcache *regcache,
962 unsigned long svc_number)
963 {
964 int ret = 0;
965 enum gdb_syscall syscall_gdb;
966
967 syscall_gdb =
968 aarch64_canonicalize_syscall ((enum aarch64_syscall) svc_number);
969
970 if (syscall_gdb < 0)
971 {
972 printf_unfiltered (_("Process record and replay target doesn't "
973 "support syscall number %s\n"),
974 plongest (svc_number));
975 return -1;
976 }
977
978 if (syscall_gdb == gdb_sys_sigreturn
979 || syscall_gdb == gdb_sys_rt_sigreturn)
980 {
981 if (aarch64_all_but_pc_registers_record (regcache))
982 return -1;
983 return 0;
984 }
985
986 ret = record_linux_system_call (syscall_gdb, regcache,
987 &aarch64_linux_record_tdep);
988 if (ret != 0)
989 return ret;
990
991 /* Record the return value of the system call. */
992 if (record_full_arch_list_add_reg (regcache, AARCH64_X0_REGNUM))
993 return -1;
994 /* Record LR. */
995 if (record_full_arch_list_add_reg (regcache, AARCH64_LR_REGNUM))
996 return -1;
997 /* Record CPSR. */
998 if (record_full_arch_list_add_reg (regcache, AARCH64_CPSR_REGNUM))
999 return -1;
1000
1001 return 0;
1002 }
1003
1004 /* Implement the "gcc_target_options" gdbarch method. */
1005
1006 static char *
1007 aarch64_linux_gcc_target_options (struct gdbarch *gdbarch)
1008 {
1009 /* GCC doesn't know "-m64". */
1010 return NULL;
1011 }
1012
1013 static void
1014 aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
1015 {
1016 static const char *const stap_integer_prefixes[] = { "#", "", NULL };
1017 static const char *const stap_register_prefixes[] = { "", NULL };
1018 static const char *const stap_register_indirection_prefixes[] = { "[",
1019 NULL };
1020 static const char *const stap_register_indirection_suffixes[] = { "]",
1021 NULL };
1022 struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
1023
1024 tdep->lowest_pc = 0x8000;
1025
1026 linux_init_abi (info, gdbarch);
1027
1028 set_solib_svr4_fetch_link_map_offsets (gdbarch,
1029 svr4_lp64_fetch_link_map_offsets);
1030
1031 /* Enable TLS support. */
1032 set_gdbarch_fetch_tls_load_module_address (gdbarch,
1033 svr4_fetch_objfile_link_map);
1034
1035 /* Shared library handling. */
1036 set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
1037 set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
1038
1039 tramp_frame_prepend_unwinder (gdbarch, &aarch64_linux_rt_sigframe);
1040
1041 /* Enable longjmp. */
1042 tdep->jb_pc = 11;
1043
1044 set_gdbarch_iterate_over_regset_sections
1045 (gdbarch, aarch64_linux_iterate_over_regset_sections);
1046 set_gdbarch_core_read_description
1047 (gdbarch, aarch64_linux_core_read_description);
1048
1049 /* SystemTap related. */
1050 set_gdbarch_stap_integer_prefixes (gdbarch, stap_integer_prefixes);
1051 set_gdbarch_stap_register_prefixes (gdbarch, stap_register_prefixes);
1052 set_gdbarch_stap_register_indirection_prefixes (gdbarch,
1053 stap_register_indirection_prefixes);
1054 set_gdbarch_stap_register_indirection_suffixes (gdbarch,
1055 stap_register_indirection_suffixes);
1056 set_gdbarch_stap_is_single_operand (gdbarch, aarch64_stap_is_single_operand);
1057 set_gdbarch_stap_parse_special_token (gdbarch,
1058 aarch64_stap_parse_special_token);
1059
1060 /* Reversible debugging, process record. */
1061 set_gdbarch_process_record (gdbarch, aarch64_process_record);
1062 /* Syscall record. */
1063 tdep->aarch64_syscall_record = aarch64_linux_syscall_record;
1064
1065 /* Initialize the aarch64_linux_record_tdep. */
1066 /* These values are the size of the type that will be used in a system
1067 call. They are obtained from Linux Kernel source. */
1068 aarch64_linux_record_tdep.size_pointer
1069 = gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
1070 aarch64_linux_record_tdep.size__old_kernel_stat = 32;
1071 aarch64_linux_record_tdep.size_tms = 32;
1072 aarch64_linux_record_tdep.size_loff_t = 8;
1073 aarch64_linux_record_tdep.size_flock = 32;
1074 aarch64_linux_record_tdep.size_oldold_utsname = 45;
1075 aarch64_linux_record_tdep.size_ustat = 32;
1076 aarch64_linux_record_tdep.size_old_sigaction = 32;
1077 aarch64_linux_record_tdep.size_old_sigset_t = 8;
1078 aarch64_linux_record_tdep.size_rlimit = 16;
1079 aarch64_linux_record_tdep.size_rusage = 144;
1080 aarch64_linux_record_tdep.size_timeval = 16;
1081 aarch64_linux_record_tdep.size_timezone = 8;
1082 aarch64_linux_record_tdep.size_old_gid_t = 2;
1083 aarch64_linux_record_tdep.size_old_uid_t = 2;
1084 aarch64_linux_record_tdep.size_fd_set = 128;
1085 aarch64_linux_record_tdep.size_old_dirent = 280;
1086 aarch64_linux_record_tdep.size_statfs = 120;
1087 aarch64_linux_record_tdep.size_statfs64 = 120;
1088 aarch64_linux_record_tdep.size_sockaddr = 16;
1089 aarch64_linux_record_tdep.size_int
1090 = gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT;
1091 aarch64_linux_record_tdep.size_long
1092 = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
1093 aarch64_linux_record_tdep.size_ulong
1094 = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
1095 aarch64_linux_record_tdep.size_msghdr = 56;
1096 aarch64_linux_record_tdep.size_itimerval = 32;
1097 aarch64_linux_record_tdep.size_stat = 144;
1098 aarch64_linux_record_tdep.size_old_utsname = 325;
1099 aarch64_linux_record_tdep.size_sysinfo = 112;
1100 aarch64_linux_record_tdep.size_msqid_ds = 120;
1101 aarch64_linux_record_tdep.size_shmid_ds = 112;
1102 aarch64_linux_record_tdep.size_new_utsname = 390;
1103 aarch64_linux_record_tdep.size_timex = 208;
1104 aarch64_linux_record_tdep.size_mem_dqinfo = 24;
1105 aarch64_linux_record_tdep.size_if_dqblk = 72;
1106 aarch64_linux_record_tdep.size_fs_quota_stat = 80;
1107 aarch64_linux_record_tdep.size_timespec = 16;
1108 aarch64_linux_record_tdep.size_pollfd = 8;
1109 aarch64_linux_record_tdep.size_NFS_FHSIZE = 32;
1110 aarch64_linux_record_tdep.size_knfsd_fh = 132;
1111 aarch64_linux_record_tdep.size_TASK_COMM_LEN = 16;
1112 aarch64_linux_record_tdep.size_sigaction = 32;
1113 aarch64_linux_record_tdep.size_sigset_t = 8;
1114 aarch64_linux_record_tdep.size_siginfo_t = 128;
1115 aarch64_linux_record_tdep.size_cap_user_data_t = 8;
1116 aarch64_linux_record_tdep.size_stack_t = 24;
1117 aarch64_linux_record_tdep.size_off_t = 8;
1118 aarch64_linux_record_tdep.size_stat64 = 144;
1119 aarch64_linux_record_tdep.size_gid_t = 4;
1120 aarch64_linux_record_tdep.size_uid_t = 4;
1121 aarch64_linux_record_tdep.size_PAGE_SIZE = 4096;
1122 aarch64_linux_record_tdep.size_flock64 = 32;
1123 aarch64_linux_record_tdep.size_user_desc = 16;
1124 aarch64_linux_record_tdep.size_io_event = 32;
1125 aarch64_linux_record_tdep.size_iocb = 64;
1126 aarch64_linux_record_tdep.size_epoll_event = 12;
1127 aarch64_linux_record_tdep.size_itimerspec = 32;
1128 aarch64_linux_record_tdep.size_mq_attr = 64;
1129 aarch64_linux_record_tdep.size_termios = 36;
1130 aarch64_linux_record_tdep.size_termios2 = 44;
1131 aarch64_linux_record_tdep.size_pid_t = 4;
1132 aarch64_linux_record_tdep.size_winsize = 8;
1133 aarch64_linux_record_tdep.size_serial_struct = 72;
1134 aarch64_linux_record_tdep.size_serial_icounter_struct = 80;
1135 aarch64_linux_record_tdep.size_hayes_esp_config = 12;
1136 aarch64_linux_record_tdep.size_size_t = 8;
1137 aarch64_linux_record_tdep.size_iovec = 16;
1138 aarch64_linux_record_tdep.size_time_t = 8;
1139
1140 /* These values are the second argument of system call "sys_ioctl".
1141 They are obtained from Linux Kernel source. */
1142 aarch64_linux_record_tdep.ioctl_TCGETS = 0x5401;
1143 aarch64_linux_record_tdep.ioctl_TCSETS = 0x5402;
1144 aarch64_linux_record_tdep.ioctl_TCSETSW = 0x5403;
1145 aarch64_linux_record_tdep.ioctl_TCSETSF = 0x5404;
1146 aarch64_linux_record_tdep.ioctl_TCGETA = 0x5405;
1147 aarch64_linux_record_tdep.ioctl_TCSETA = 0x5406;
1148 aarch64_linux_record_tdep.ioctl_TCSETAW = 0x5407;
1149 aarch64_linux_record_tdep.ioctl_TCSETAF = 0x5408;
1150 aarch64_linux_record_tdep.ioctl_TCSBRK = 0x5409;
1151 aarch64_linux_record_tdep.ioctl_TCXONC = 0x540a;
1152 aarch64_linux_record_tdep.ioctl_TCFLSH = 0x540b;
1153 aarch64_linux_record_tdep.ioctl_TIOCEXCL = 0x540c;
1154 aarch64_linux_record_tdep.ioctl_TIOCNXCL = 0x540d;
1155 aarch64_linux_record_tdep.ioctl_TIOCSCTTY = 0x540e;
1156 aarch64_linux_record_tdep.ioctl_TIOCGPGRP = 0x540f;
1157 aarch64_linux_record_tdep.ioctl_TIOCSPGRP = 0x5410;
1158 aarch64_linux_record_tdep.ioctl_TIOCOUTQ = 0x5411;
1159 aarch64_linux_record_tdep.ioctl_TIOCSTI = 0x5412;
1160 aarch64_linux_record_tdep.ioctl_TIOCGWINSZ = 0x5413;
1161 aarch64_linux_record_tdep.ioctl_TIOCSWINSZ = 0x5414;
1162 aarch64_linux_record_tdep.ioctl_TIOCMGET = 0x5415;
1163 aarch64_linux_record_tdep.ioctl_TIOCMBIS = 0x5416;
1164 aarch64_linux_record_tdep.ioctl_TIOCMBIC = 0x5417;
1165 aarch64_linux_record_tdep.ioctl_TIOCMSET = 0x5418;
1166 aarch64_linux_record_tdep.ioctl_TIOCGSOFTCAR = 0x5419;
1167 aarch64_linux_record_tdep.ioctl_TIOCSSOFTCAR = 0x541a;
1168 aarch64_linux_record_tdep.ioctl_FIONREAD = 0x541b;
1169 aarch64_linux_record_tdep.ioctl_TIOCINQ = 0x541b;
1170 aarch64_linux_record_tdep.ioctl_TIOCLINUX = 0x541c;
1171 aarch64_linux_record_tdep.ioctl_TIOCCONS = 0x541d;
1172 aarch64_linux_record_tdep.ioctl_TIOCGSERIAL = 0x541e;
1173 aarch64_linux_record_tdep.ioctl_TIOCSSERIAL = 0x541f;
1174 aarch64_linux_record_tdep.ioctl_TIOCPKT = 0x5420;
1175 aarch64_linux_record_tdep.ioctl_FIONBIO = 0x5421;
1176 aarch64_linux_record_tdep.ioctl_TIOCNOTTY = 0x5422;
1177 aarch64_linux_record_tdep.ioctl_TIOCSETD = 0x5423;
1178 aarch64_linux_record_tdep.ioctl_TIOCGETD = 0x5424;
1179 aarch64_linux_record_tdep.ioctl_TCSBRKP = 0x5425;
1180 aarch64_linux_record_tdep.ioctl_TIOCTTYGSTRUCT = 0x5426;
1181 aarch64_linux_record_tdep.ioctl_TIOCSBRK = 0x5427;
1182 aarch64_linux_record_tdep.ioctl_TIOCCBRK = 0x5428;
1183 aarch64_linux_record_tdep.ioctl_TIOCGSID = 0x5429;
1184 aarch64_linux_record_tdep.ioctl_TCGETS2 = 0x802c542a;
1185 aarch64_linux_record_tdep.ioctl_TCSETS2 = 0x402c542b;
1186 aarch64_linux_record_tdep.ioctl_TCSETSW2 = 0x402c542c;
1187 aarch64_linux_record_tdep.ioctl_TCSETSF2 = 0x402c542d;
1188 aarch64_linux_record_tdep.ioctl_TIOCGPTN = 0x80045430;
1189 aarch64_linux_record_tdep.ioctl_TIOCSPTLCK = 0x40045431;
1190 aarch64_linux_record_tdep.ioctl_FIONCLEX = 0x5450;
1191 aarch64_linux_record_tdep.ioctl_FIOCLEX = 0x5451;
1192 aarch64_linux_record_tdep.ioctl_FIOASYNC = 0x5452;
1193 aarch64_linux_record_tdep.ioctl_TIOCSERCONFIG = 0x5453;
1194 aarch64_linux_record_tdep.ioctl_TIOCSERGWILD = 0x5454;
1195 aarch64_linux_record_tdep.ioctl_TIOCSERSWILD = 0x5455;
1196 aarch64_linux_record_tdep.ioctl_TIOCGLCKTRMIOS = 0x5456;
1197 aarch64_linux_record_tdep.ioctl_TIOCSLCKTRMIOS = 0x5457;
1198 aarch64_linux_record_tdep.ioctl_TIOCSERGSTRUCT = 0x5458;
1199 aarch64_linux_record_tdep.ioctl_TIOCSERGETLSR = 0x5459;
1200 aarch64_linux_record_tdep.ioctl_TIOCSERGETMULTI = 0x545a;
1201 aarch64_linux_record_tdep.ioctl_TIOCSERSETMULTI = 0x545b;
1202 aarch64_linux_record_tdep.ioctl_TIOCMIWAIT = 0x545c;
1203 aarch64_linux_record_tdep.ioctl_TIOCGICOUNT = 0x545d;
1204 aarch64_linux_record_tdep.ioctl_TIOCGHAYESESP = 0x545e;
1205 aarch64_linux_record_tdep.ioctl_TIOCSHAYESESP = 0x545f;
1206 aarch64_linux_record_tdep.ioctl_FIOQSIZE = 0x5460;
1207
1208 /* These values are the second argument of system call "sys_fcntl"
1209 and "sys_fcntl64". They are obtained from Linux Kernel source. */
1210 aarch64_linux_record_tdep.fcntl_F_GETLK = 5;
1211 aarch64_linux_record_tdep.fcntl_F_GETLK64 = 12;
1212 aarch64_linux_record_tdep.fcntl_F_SETLK64 = 13;
1213 aarch64_linux_record_tdep.fcntl_F_SETLKW64 = 14;
1214
1215 /* The AArch64 syscall calling convention: reg x0-x6 for arguments,
1216 reg x8 for syscall number and return value in reg x0. */
1217 aarch64_linux_record_tdep.arg1 = AARCH64_X0_REGNUM + 0;
1218 aarch64_linux_record_tdep.arg2 = AARCH64_X0_REGNUM + 1;
1219 aarch64_linux_record_tdep.arg3 = AARCH64_X0_REGNUM + 2;
1220 aarch64_linux_record_tdep.arg4 = AARCH64_X0_REGNUM + 3;
1221 aarch64_linux_record_tdep.arg5 = AARCH64_X0_REGNUM + 4;
1222 aarch64_linux_record_tdep.arg6 = AARCH64_X0_REGNUM + 5;
1223 aarch64_linux_record_tdep.arg7 = AARCH64_X0_REGNUM + 6;
1224
1225 /* `catch syscall' */
1226 set_xml_syscall_file_name (gdbarch, "syscalls/aarch64-linux.xml");
1227 set_gdbarch_get_syscall_number (gdbarch, aarch64_linux_get_syscall_number);
1228
1229 /* Displaced stepping. */
1230 set_gdbarch_max_insn_length (gdbarch, 4 * DISPLACED_MODIFIED_INSNS);
1231 set_gdbarch_displaced_step_copy_insn (gdbarch,
1232 aarch64_displaced_step_copy_insn);
1233 set_gdbarch_displaced_step_fixup (gdbarch, aarch64_displaced_step_fixup);
1234 set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location);
1235 set_gdbarch_displaced_step_hw_singlestep (gdbarch,
1236 aarch64_displaced_step_hw_singlestep);
1237
1238 set_gdbarch_gcc_target_options (gdbarch, aarch64_linux_gcc_target_options);
1239 }
1240
1241 void
1242 _initialize_aarch64_linux_tdep (void)
1243 {
1244 gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_LINUX,
1245 aarch64_linux_init_abi);
1246 }
aarch64_sys_eventfd2
Definition: aarch64-linux-tdep.c:413
aarch64_sys_request_key
Definition: aarch64-linux-tdep.c:612
linux_record_tdep::ioctl_TIOCCONS
int ioctl_TIOCCONS
Definition: linux-record.h:124
gdbarch
Definition: gdbarch.c:127
aarch64_sys_setrlimit
Definition: aarch64-linux-tdep.c:558
linux_record_tdep::ioctl_TIOCGICOUNT
int ioctl_TIOCGICOUNT
Definition: linux-record.h:156
aarch64_sys_symlinkat
Definition: aarch64-linux-tdep.c:430
aarch64_sys_accept4
Definition: aarch64-linux-tdep.c:636
read
ssize_t read(int fd, void *buf, size_t count)
Definition: expect-read1.c:26
aarch64_linux_gcc_target_options
static char * aarch64_linux_gcc_target_options(struct gdbarch *gdbarch)
Definition: aarch64-linux-tdep.c:1007
aarch64_sys_semget
Definition: aarch64-linux-tdep.c:584
linux_record_tdep::ioctl_TCSETAF
int ioctl_TCSETAF
Definition: linux-record.h:102
aarch64_sys_sched_getaffinity
Definition: aarch64-linux-tdep.c:518
aarch64_sys_sched_setscheduler
Definition: aarch64-linux-tdep.c:514
linux_record_tdep::ioctl_TIOCTTYGSTRUCT
int ioctl_TIOCTTYGSTRUCT
Definition: linux-record.h:133
linux_record_tdep::arg1
int arg1
Definition: linux-record.h:170
set_gdbarch_gcc_target_options
void set_gdbarch_gcc_target_options(struct gdbarch *gdbarch, gdbarch_gcc_target_options_ftype gcc_target_options)
Definition: gdbarch.c:5006
aarch64_sys_set_tid_address
Definition: aarch64-linux-tdep.c:491
linux_record_tdep::ioctl_TIOCSBRK
int ioctl_TIOCSBRK
Definition: linux-record.h:134
linux_record_tdep::size_itimerspec
int size_itimerspec
Definition: linux-record.h:81
trad_frame_set_reg_addr
void trad_frame_set_reg_addr(struct trad_frame_cache *this_trad_cache, int regnum, CORE_ADDR addr)
Definition: trad-frame.c:126
aarch64_sys_sched_setattr
Definition: aarch64-linux-tdep.c:652
aarch64_sys_flock
Definition: aarch64-linux-tdep.c:426
linux_record_tdep::ioctl_TCFLSH
int ioctl_TCFLSH
Definition: linux-record.h:105
aarch64_sys_ioprio_set
Definition: aarch64-linux-tdep.c:424
linux_record_tdep::size_serial_icounter_struct
int size_serial_icounter_struct
Definition: linux-record.h:88
aarch64_sys_getpid
Definition: aarch64-linux-tdep.c:566
aarch64_sys_mq_getsetattr
Definition: aarch64-linux-tdep.c:579
frame_id_build
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
Definition: frame.c:624
aarch64_sys_add_key
Definition: aarch64-linux-tdep.c:611
linux_record_tdep::ioctl_TIOCSWINSZ
int ioctl_TIOCSWINSZ
Definition: linux-record.h:114
aarch64_sys_fstat
Definition: aarch64-linux-tdep.c:474
aarch64_sys_bind
Definition: aarch64-linux-tdep.c:594
aarch64_sys_munlock
Definition: aarch64-linux-tdep.c:623
aarch64_sys_semctl
Definition: aarch64-linux-tdep.c:585
aarch64_sys_listxattr
Definition: aarch64-linux-tdep.c:405
linux_record_tdep::size_cap_user_data_t
int size_cap_user_data_t
Definition: linux-record.h:69
linux_record_tdep::ioctl_TIOCSCTTY
int ioctl_TIOCSCTTY
Definition: linux-record.h:108
aarch64_sys_setsockopt
Definition: aarch64-linux-tdep.c:602
linux_record_tdep::fcntl_F_GETLK64
int fcntl_F_GETLK64
Definition: linux-record.h:164
aarch64_sys_rt_sigaction
Definition: aarch64-linux-tdep.c:528
set_gdbarch_displaced_step_fixup
void set_gdbarch_displaced_step_fixup(struct gdbarch *gdbarch, gdbarch_displaced_step_fixup_ftype displaced_step_fixup)
Definition: gdbarch.c:3982
AARCH64_FPSR_REGNUM
Definition: aarch64.h:38
aarch64_sys_io_cancel
Definition: aarch64-linux-tdep.c:397
aarch64_sys_move_pages
Definition: aarch64-linux-tdep.c:633
aarch64_sys_setgid
Definition: aarch64-linux-tdep.c:538
stap_parse_info::arg_type
struct type * arg_type
Definition: stap-probe.h:60
CORE_ADDR
bfd_vma CORE_ADDR
Definition: common-types.h:41
set_gdbarch_fetch_tls_load_module_address
void set_gdbarch_fetch_tls_load_module_address(struct gdbarch *gdbarch, gdbarch_fetch_tls_load_module_address_ftype fetch_tls_load_module_address)
Definition: gdbarch.c:3038
TRAMP_SENTINEL_INSN
#define TRAMP_SENTINEL_INSN
Definition: tramp-frame.h:44
aarch64_sys_ioctl
Definition: aarch64-linux-tdep.c:423
aarch64_sys_lseek
Definition: aarch64-linux-tdep.c:456
aarch64_sys_clone
Definition: aarch64-linux-tdep.c:614
svr4_lp64_fetch_link_map_offsets
struct link_map_offsets * svr4_lp64_fetch_link_map_offsets(void)
Definition: solib-svr4.c:3214
aarch64_sys_write
Definition: aarch64-linux-tdep.c:458
linux_record_tdep::ioctl_TCSETSW
int ioctl_TCSETSW
Definition: linux-record.h:97
aarch64_read_description
const target_desc * aarch64_read_description()
Definition: aarch64-tdep.c:2831
linux_record_tdep::ioctl_TIOCSHAYESESP
int ioctl_TIOCSHAYESESP
Definition: linux-record.h:158
linux_record_tdep::size_msqid_ds
int size_msqid_ds
Definition: linux-record.h:54
linux_record_tdep::ioctl_TIOCCBRK
int ioctl_TIOCCBRK
Definition: linux-record.h:135
get_thread_regcache
struct regcache * get_thread_regcache(ptid_t ptid)
Definition: regcache.c:434
aarch64_sys_shmctl
Definition: aarch64-linux-tdep.c:589
stap-probe.h
linux_record_tdep::ioctl_TCSETS2
int ioctl_TCSETS2
Definition: linux-record.h:138
stoken::ptr
const char * ptr
Definition: parser-defs.h:91
set_gdbarch_stap_parse_special_token
void set_gdbarch_stap_parse_special_token(struct gdbarch *gdbarch, gdbarch_stap_parse_special_token_ftype stap_parse_special_token)
Definition: gdbarch.c:4499
aarch64_sys_syslog
Definition: aarch64-linux-tdep.c:511
aarch64_sys_getdents64
Definition: aarch64-linux-tdep.c:455
linux_record_tdep::size_flock64
int size_flock64
Definition: linux-record.h:76
aarch64_sys_msgget
Definition: aarch64-linux-tdep.c:580
aarch64_sys_newfstatat
Definition: aarch64-linux-tdep.c:473
aarch64_sys_semtimedop
Definition: aarch64-linux-tdep.c:586
aarch64_sys_sync_file_range
Definition: aarch64-linux-tdep.c:479
linux_record_tdep::ioctl_TIOCSERGSTRUCT
int ioctl_TIOCSERGSTRUCT
Definition: linux-record.h:151
record-full.h
aarch64_sys_rt_sigtimedwait
Definition: aarch64-linux-tdep.c:531
record_full_arch_list_add_reg
int record_full_arch_list_add_reg(struct regcache *regcache, int regnum)
Definition: record-full.c:468
linux_record_tdep::size_gid_t
int size_gid_t
Definition: linux-record.h:73
linux_record_tdep::ioctl_FIOCLEX
int ioctl_FIOCLEX
Definition: linux-record.h:144
gdbarch_int_bit
int gdbarch_int_bit(struct gdbarch *gdbarch)
Definition: gdbarch.c:1579
func
void(* func)(char *)
Definition: remote-fileio.c:1104
aarch64_sys_mq_unlink
Definition: aarch64-linux-tdep.c:575
iterate_over_regset_sections_cb
void() iterate_over_regset_sections_cb(const char *sect_name, int size, const struct regset *regset, const char *human_name, void *cb_data)
Definition: gdbarch.h:99
set_gdbarch_skip_trampoline_code
void set_gdbarch_skip_trampoline_code(struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype skip_trampoline_code)
Definition: gdbarch.c:3316
AARCH64_FPCR_REGNUM
Definition: aarch64.h:39
aarch64_sys_sethostname
Definition: aarch64-linux-tdep.c:555
aarch64_sys_flistxattr
Definition: aarch64-linux-tdep.c:407
glibc_skip_solib_resolver
CORE_ADDR glibc_skip_solib_resolver(struct gdbarch *gdbarch, CORE_ADDR pc)
Definition: glibc-tdep.c:38
linux_record_tdep::ioctl_TCGETA
int ioctl_TCGETA
Definition: linux-record.h:99
set_gdbarch_displaced_step_location
void set_gdbarch_displaced_step_location(struct gdbarch *gdbarch, gdbarch_displaced_step_location_ftype displaced_step_location)
Definition: gdbarch.c:3999
aarch64_sys_reboot
Definition: aarch64-linux-tdep.c:536
aarch64_sys_fsetxattr
Definition: aarch64-linux-tdep.c:401
linux_record_tdep::size_time_t
int size_time_t
Definition: linux-record.h:92
gdbarch_ptr_bit
int gdbarch_ptr_bit(struct gdbarch *gdbarch)
Definition: gdbarch.c:1831
AARCH64_CPSR_REGNUM
Definition: aarch64.h:35
aarch64_sys_sched_get_priority_min
Definition: aarch64-linux-tdep.c:521
trad_frame_set_id
void trad_frame_set_id(struct trad_frame_cache *this_trad_cache, struct frame_id this_id)
Definition: trad-frame.c:171
aarch64_sys_finit_module
Definition: aarch64-linux-tdep.c:651
linux_record_tdep::size_statfs
int size_statfs
Definition: linux-record.h:43
plongest
char * plongest(LONGEST l)
Definition: print-utils.c:137
GDB_OSABI_LINUX
Definition: defs.h:517
aarch64_sys_get_mempolicy
Definition: aarch64-linux-tdep.c:630
linux_record_tdep::ioctl_TIOCSERCONFIG
int ioctl_TIOCSERCONFIG
Definition: linux-record.h:146
set_gdbarch_stap_register_prefixes
void set_gdbarch_stap_register_prefixes(struct gdbarch *gdbarch, const char *const *stap_register_prefixes)
Definition: gdbarch.c:4366
aarch64_sys_epoll_ctl
Definition: aarch64-linux-tdep.c:415
linux_record_tdep::ioctl_TIOCSERGETMULTI
int ioctl_TIOCSERGETMULTI
Definition: linux-record.h:153
linux_record_tdep::size_iovec
int size_iovec
Definition: linux-record.h:91
aarch64_sys_setuid
Definition: aarch64-linux-tdep.c:540
stap_parse_info
Definition: stap-probe.h:29
aarch64_sys_nfsservctl
Definition: aarch64-linux-tdep.c:436
aarch64_sys_setresuid
Definition: aarch64-linux-tdep.c:541
aarch64_sys_setsid
Definition: aarch64-linux-tdep.c:551
aarch64_sys_getcwd
Definition: aarch64-linux-tdep.c:411
aarch64_sys_sched_getparam
Definition: aarch64-linux-tdep.c:516
linux_record_tdep::ioctl_TIOCSLCKTRMIOS
int ioctl_TIOCSLCKTRMIOS
Definition: linux-record.h:150
gdbarch_tdep::aarch64_syscall_record
int(* aarch64_syscall_record)(struct regcache *regcache, unsigned long svc_number)
Definition: aarch64-tdep.h:75
gdbarch_tdep
Definition: aarch64-tdep.h:55
aarch64_sys_pipe2
Definition: aarch64-linux-tdep.c:453
regcache_supply_regset
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition: regcache.c:1192
stap_parse_info::arg
const char * arg
Definition: stap-probe.h:46
linux_record_tdep::fcntl_F_GETLK
int fcntl_F_GETLK
Definition: linux-record.h:163
linux_record_tdep::ioctl_TIOCMBIC
int ioctl_TIOCMBIC
Definition: linux-record.h:117
linux_init_abi
void linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
Definition: linux-tdep.c:2492
linux_record_tdep::size_termios
int size_termios
Definition: linux-record.h:83
AARCH64_DWARF_X0
#define AARCH64_DWARF_X0
Definition: aarch64-tdep.h:32
aarch64_sys_times
Definition: aarch64-linux-tdep.c:547
auxv.h
linux_record_tdep::size_epoll_event
int size_epoll_event
Definition: linux-record.h:80
aarch64_sys_linkat
Definition: aarch64-linux-tdep.c:431
SIGTRAMP_FRAME
Definition: frame.h:255
linux_record_tdep::size_TASK_COMM_LEN
int size_TASK_COMM_LEN
Definition: linux-record.h:65
gdbarch_tdep::sigcontext_addr
CORE_ADDR(* sigcontext_addr)(struct frame_info *)
Definition: alpha-tdep.h:82
aarch64_sys_tee
Definition: aarch64-linux-tdep.c:471
linux_record_tdep::size_size_t
int size_size_t
Definition: linux-record.h:90
aarch64_sys_ptrace
Definition: aarch64-linux-tdep.c:512
aarch64_sys_statfs
Definition: aarch64-linux-tdep.c:437
linux_record_tdep::size_ulong
int size_ulong
Definition: linux-record.h:48
frame_info
Definition: frame.c:85
gdbarch_long_bit
int gdbarch_long_bit(struct gdbarch *gdbarch)
Definition: gdbarch.c:1596
AARCH64_SP_REGNUM
Definition: aarch64.h:33
aarch64_sys_delete_module
Definition: aarch64-linux-tdep.c:501
aarch64_sys_chroot
Definition: aarch64-linux-tdep.c:445
linux_record_tdep::size_sockaddr
int size_sockaddr
Definition: linux-record.h:45
linux_record_tdep::ioctl_TIOCSPGRP
int ioctl_TIOCSPGRP
Definition: linux-record.h:110
aarch64_sys_vmsplice
Definition: aarch64-linux-tdep.c:469
gdbarch_tdep::lowest_pc
CORE_ADDR lowest_pc
Definition: aarch64-tdep.h:58
aarch64_linux_gregmap
static const struct regcache_map_entry aarch64_linux_gregmap[]
Definition: aarch64-linux-tdep.c:191
aarch64_sys_getrlimit
Definition: aarch64-linux-tdep.c:557
aarch64_sys_mlock
Definition: aarch64-linux-tdep.c:622
aarch64_sys_mq_timedreceive
Definition: aarch64-linux-tdep.c:577
skip_spaces
char * skip_spaces(char *chp)
Definition: common-utils.c:337
_
#define _(String)
Definition: gdb_locale.h:35
linux_record_tdep::arg2
int arg2
Definition: linux-record.h:171
linux_record_tdep::size_old_dirent
int size_old_dirent
Definition: linux-record.h:42
aarch64_sys_timerfd_create
Definition: aarch64-linux-tdep.c:480
aarch64_sys_getresgid
Definition: aarch64-linux-tdep.c:544
aarch64_sys_init_module
Definition: aarch64-linux-tdep.c:500
linux_record_tdep::size_oldold_utsname
int size_oldold_utsname
Definition: linux-record.h:31
defs.h
aarch64-tdep.h
builtin_type
Definition: gdbtypes.h:1495
gdbarch_tdep
struct gdbarch_tdep * gdbarch_tdep(struct gdbarch *gdbarch)
Definition: gdbarch.c:1491
aarch64_sys_futex
Definition: aarch64-linux-tdep.c:493
aarch64_sys_execve
Definition: aarch64-linux-tdep.c:615
aarch64_sys_get_robust_list
Definition: aarch64-linux-tdep.c:495
aarch64_sys_acct
Definition: aarch64-linux-tdep.c:484
linux_record_tdep::size_pollfd
int size_pollfd
Definition: linux-record.h:62
set_gdbarch_displaced_step_hw_singlestep
void set_gdbarch_displaced_step_hw_singlestep(struct gdbarch *gdbarch, gdbarch_displaced_step_hw_singlestep_ftype displaced_step_hw_singlestep)
Definition: gdbarch.c:3957
aarch64_sys_timer_create
Definition: aarch64-linux-tdep.c:502
linux_record_tdep::arg3
int arg3
Definition: linux-record.h:172
aarch64_sys_fchmodat
Definition: aarch64-linux-tdep.c:447
linux_record_tdep::ioctl_TCGETS2
int ioctl_TCGETS2
Definition: linux-record.h:137
aarch64_sys_mkdirat
Definition: aarch64-linux-tdep.c:428
aarch64_sys_epoll_create1
Definition: aarch64-linux-tdep.c:414
aarch64_sys_sendfile
Definition: aarch64-linux-tdep.c:465
set_gdbarch_process_record
void set_gdbarch_process_record(struct gdbarch *gdbarch, gdbarch_process_record_ftype process_record)
Definition: gdbarch.c:4137
aarch64_sys_fchownat
Definition: aarch64-linux-tdep.c:448
aarch64_sys_clock_adjtime
Definition: aarch64-linux-tdep.c:644
aarch64_sys_ioprio_get
Definition: aarch64-linux-tdep.c:425
aarch64_sys_unlinkat
Definition: aarch64-linux-tdep.c:429
aarch64_sys_listen
Definition: aarch64-linux-tdep.c:595
ptrace
PTRACE_TYPE_RET ptrace()
aarch64_sys_uname
Definition: aarch64-linux-tdep.c:554
aarch64_sys_sendto
Definition: aarch64-linux-tdep.c:600
linux_record_tdep::arg7
int arg7
Definition: linux-record.h:176
set_gdbarch_stap_register_indirection_suffixes
void set_gdbarch_stap_register_indirection_suffixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_suffixes)
Definition: gdbarch.c:4417
aarch64_sys_getitimer
Definition: aarch64-linux-tdep.c:497
aarch64_sys_llistxattr
Definition: aarch64-linux-tdep.c:406
aarch64_sys_getrusage
Definition: aarch64-linux-tdep.c:559
arch-utils.h
aarch64_linux_syscall_record
static int aarch64_linux_syscall_record(struct regcache *regcache, unsigned long svc_number)
Definition: aarch64-linux-tdep.c:961
linux_record_tdep::ioctl_TIOCGWINSZ
int ioctl_TIOCGWINSZ
Definition: linux-record.h:113
aarch64_sys_mprotect
Definition: aarch64-linux-tdep.c:620
svr4_fetch_objfile_link_map
CORE_ADDR svr4_fetch_objfile_link_map(struct objfile *objfile)
Definition: solib-svr4.c:1579
linux_record_tdep::arg4
int arg4
Definition: linux-record.h:173
linux_record_tdep::size_uid_t
int size_uid_t
Definition: linux-record.h:74
regset
Definition: regset.h:34
AARCH64_SIGCONTEXT_REG_SIZE
#define AARCH64_SIGCONTEXT_REG_SIZE
Definition: aarch64-linux-tdep.c:135
linux_record_tdep::ioctl_TIOCSPTLCK
int ioctl_TIOCSPTLCK
Definition: linux-record.h:142
aarch64_sys_set_mempolicy
Definition: aarch64-linux-tdep.c:631
parser-defs.h
aarch64_sys_renameat
Definition: aarch64-linux-tdep.c:432
set_gdbarch_stap_integer_prefixes
void set_gdbarch_stap_integer_prefixes(struct gdbarch *gdbarch, const char *const *stap_integer_prefixes)
Definition: gdbarch.c:4332
aarch64_linux_init_abi
static void aarch64_linux_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
Definition: aarch64-linux-tdep.c:1014
symtab.h
stap_parse_info::pstate
struct parser_state pstate
Definition: stap-probe.h:49
linux_record_tdep::ioctl_TIOCLINUX
int ioctl_TIOCLINUX
Definition: linux-record.h:123
aarch64-linux-tdep.h
aarch64_sys_truncate
Definition: aarch64-linux-tdep.c:439
linux_record_tdep::ioctl_TIOCSERSETMULTI
int ioctl_TIOCSERSETMULTI
Definition: linux-record.h:154
aarch64_linux_fpregmap
static const struct regcache_map_entry aarch64_linux_fpregmap[]
Definition: aarch64-linux-tdep.c:200
linux_record_tdep::size_timespec
int size_timespec
Definition: linux-record.h:61
aarch64_sys_timer_settime
Definition: aarch64-linux-tdep.c:505
write_exp_elt_longcst
void write_exp_elt_longcst(struct parser_state *ps, LONGEST expelt)
Definition: parse.c:255
aarch64_sys_pivot_root
Definition: aarch64-linux-tdep.c:435
linux_record_tdep::size_loff_t
int size_loff_t
Definition: linux-record.h:29
aarch64_sys_io_submit
Definition: aarch64-linux-tdep.c:396
linux_record_tdep::size_old_sigaction
int size_old_sigaction
Definition: linux-record.h:33
aarch64_sys_mremap
Definition: aarch64-linux-tdep.c:610
aarch64_sys_setfsgid
Definition: aarch64-linux-tdep.c:546
aarch64_sys_sched_getattr
Definition: aarch64-linux-tdep.c:653
aarch64_linux_iterate_over_regset_sections
static void aarch64_linux_iterate_over_regset_sections(struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
Definition: aarch64-linux-tdep.c:225
linux_record_tdep::size_sysinfo
int size_sysinfo
Definition: linux-record.h:53
gdb_sys_sigreturn
Definition: linux-record.h:306
aarch64_sys_fadvise64
Definition: aarch64-linux-tdep.c:617
aarch64_sys_splice
Definition: aarch64-linux-tdep.c:470
linux_record_tdep::ioctl_TIOCEXCL
int ioctl_TIOCEXCL
Definition: linux-record.h:106
aarch64_sys_process_vm_readv
Definition: aarch64-linux-tdep.c:648
aarch64_sys_tgkill
Definition: aarch64-linux-tdep.c:525
aarch64_sys_setpriority
Definition: aarch64-linux-tdep.c:534
aarch64_sys_rt_tgsigqueueinfo
Definition: aarch64-linux-tdep.c:634
linux_record_tdep::ioctl_TCSETA
int ioctl_TCSETA
Definition: linux-record.h:100
AARCH64_PC_REGNUM
Definition: aarch64.h:34
aarch64_sys_setgroups
Definition: aarch64-linux-tdep.c:553
linux_record_tdep::size_knfsd_fh
int size_knfsd_fh
Definition: linux-record.h:64
linux_record_tdep::size_shmid_ds
int size_shmid_ds
Definition: linux-record.h:55
aarch64_sys_exit_group
Definition: aarch64-linux-tdep.c:489
aarch64_sys_ppoll
Definition: aarch64-linux-tdep.c:467
AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET
#define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET
Definition: aarch64-linux-tdep.c:136
aarch64_sys_sched_setparam
Definition: aarch64-linux-tdep.c:513
linux_record_tdep::ioctl_FIONBIO
int ioctl_FIONBIO
Definition: linux-record.h:128
trad-frame.h
aarch64_sys_fgetxattr
Definition: aarch64-linux-tdep.c:404
linux_record_tdep::ioctl_TIOCSSOFTCAR
int ioctl_TIOCSSOFTCAR
Definition: linux-record.h:120
target_ops
Definition: target.h:412
aarch64_sys_personality
Definition: aarch64-linux-tdep.c:487
aarch64_sys_readlinkat
Definition: aarch64-linux-tdep.c:472
aarch64_sys_shmdt
Definition: aarch64-linux-tdep.c:591
aarch64_sys_rt_sigreturn
Definition: aarch64-linux-tdep.c:533
aarch64_sys_msync
Definition: aarch64-linux-tdep.c:621
record_linux_system_call
int record_linux_system_call(enum gdb_syscall syscall, struct regcache *regcache, struct linux_record_tdep *tdep)
Definition: linux-record.c:241
find_solib_trampoline_target
CORE_ADDR find_solib_trampoline_target(struct frame_info *frame, CORE_ADDR pc)
Definition: minsyms.c:1492
solib-svr4.h
linux_record_tdep::size_user_desc
int size_user_desc
Definition: linux-record.h:77
linux_record_tdep::ioctl_TIOCGPGRP
int ioctl_TIOCGPGRP
Definition: linux-record.h:109
osabi.h
linux_record_tdep::size_pointer
int size_pointer
Definition: linux-record.h:26
trad_frame_cache
Definition: trad-frame.c:27
regcache.h
aarch64_sys_ftruncate
Definition: aarch64-linux-tdep.c:440
aarch64_sys_vhangup
Definition: aarch64-linux-tdep.c:452
aarch64_sys_lremovexattr
Definition: aarch64-linux-tdep.c:409
linux_record_tdep::size_timex
int size_timex
Definition: linux-record.h:57
aarch64_stap_parse_special_token
static int aarch64_stap_parse_special_token(struct gdbarch *gdbarch, struct stap_parse_info *p)
Definition: aarch64-linux-tdep.c:271
ptid_t
Definition: ptid.h:35
aarch64_linux_get_syscall_number
static LONGEST aarch64_linux_get_syscall_number(struct gdbarch *gdbarch, ptid_t ptid)
Definition: aarch64-linux-tdep.c:367
linux_record_tdep::size_sigset_t
int size_sigset_t
Definition: linux-record.h:67
linux_record_tdep::size_old_gid_t
int size_old_gid_t
Definition: linux-record.h:39
gdbarch.h
aarch64_sys_writev
Definition: aarch64-linux-tdep.c:460
target_auxv_search
int target_auxv_search(struct target_ops *ops, CORE_ADDR match, CORE_ADDR *valp)
Definition: auxv.c:375
aarch64_sys_getpriority
Definition: aarch64-linux-tdep.c:535
linux_record_tdep::size_pid_t
int size_pid_t
Definition: linux-record.h:85
aarch64_sys_io_getevents
Definition: aarch64-linux-tdep.c:398
gdb_sys_no_syscall
Definition: linux-record.h:185
cli-utils.h
aarch64_sys_pwrite64
Definition: aarch64-linux-tdep.c:462
linux_record_tdep::size_rlimit
int size_rlimit
Definition: linux-record.h:35
linux_record_tdep::ioctl_TIOCSERSWILD
int ioctl_TIOCSERSWILD
Definition: linux-record.h:148
aarch64_sys_waitid
Definition: aarch64-linux-tdep.c:490
aarch64_sys_recvmmsg
Definition: aarch64-linux-tdep.c:637
aarch64_sys_sched_get_priority_max
Definition: aarch64-linux-tdep.c:520
aarch64_sys_lookup_dcookie
Definition: aarch64-linux-tdep.c:412
gdbarch_byte_order
enum bfd_endian gdbarch_byte_order(struct gdbarch *gdbarch)
Definition: gdbarch.c:1509
aarch64_sys_inotify_init1
Definition: aarch64-linux-tdep.c:420
aarch64_sys_setregid
Definition: aarch64-linux-tdep.c:537
inferior.h
aarch64_sys_getsid
Definition: aarch64-linux-tdep.c:550
linux_record_tdep::size_winsize
int size_winsize
Definition: linux-record.h:86
gdbarch_tdep::jb_pc
int jb_pc
Definition: aarch64-tdep.h:62
linux_record_tdep::size_termios2
int size_termios2
Definition: linux-record.h:84
TARGET_CHAR_BIT
#define TARGET_CHAR_BIT
Definition: host-defs.h:29
set_solib_svr4_fetch_link_map_offsets
void set_solib_svr4_fetch_link_map_offsets(struct gdbarch *gdbarch, struct link_map_offsets *(*flmo)(void))
Definition: solib-svr4.c:3137
aarch64_sys_clock_settime
Definition: aarch64-linux-tdep.c:507
set_gdbarch_stap_register_indirection_prefixes
void set_gdbarch_stap_register_indirection_prefixes(struct gdbarch *gdbarch, const char *const *stap_register_indirection_prefixes)
Definition: gdbarch.c:4400
aarch64_sys_capget
Definition: aarch64-linux-tdep.c:485
linux_record_tdep::arg5
int arg5
Definition: linux-record.h:174
regcache_collect_regset
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition: regcache.c:1211
aarch64_sys_mount
Definition: aarch64-linux-tdep.c:434
aarch64_sys_readv
Definition: aarch64-linux-tdep.c:459
aarch64_sys_getuid
Definition: aarch64-linux-tdep.c:568
_initialize_aarch64_linux_tdep
void _initialize_aarch64_linux_tdep(void)
Definition: aarch64-linux-tdep.c:1242
linux_record_tdep::size_ustat
int size_ustat
Definition: linux-record.h:32
aarch64_sys_rt_sigpending
Definition: aarch64-linux-tdep.c:530
aarch64_sys_fanotify_init
Definition: aarch64-linux-tdep.c:640
aarch64_sys_perf_event_open
Definition: aarch64-linux-tdep.c:635
SYSCALL_MAP
#define SYSCALL_MAP(SYSCALL)
aarch64_sys_pwritev
Definition: aarch64-linux-tdep.c:464
aarch64_sys_madvise
Definition: aarch64-linux-tdep.c:627
aarch64_sys_fchdir
Definition: aarch64-linux-tdep.c:444
linux_record_tdep::size_flock
int size_flock
Definition: linux-record.h:30
linux_record_tdep::ioctl_TCXONC
int ioctl_TCXONC
Definition: linux-record.h:104
stap_parse_info::saved_arg
const char * saved_arg
Definition: stap-probe.h:54
linux_record_tdep::ioctl_TIOCGPTN
int ioctl_TIOCGPTN
Definition: linux-record.h:141
aarch64_sys_fchmod
Definition: aarch64-linux-tdep.c:446
aarch64_sys_fanotify_mark
Definition: aarch64-linux-tdep.c:641
aarch64_sys_close
Definition: aarch64-linux-tdep.c:451
X_REGISTER_SIZE
#define X_REGISTER_SIZE
Definition: aarch64-tdep.h:37
linux_record_tdep::ioctl_TCSETSF2
int ioctl_TCSETSF2
Definition: linux-record.h:140
aarch64_sys_lgetxattr
Definition: aarch64-linux-tdep.c:403
aarch64_displaced_step_fixup
void aarch64_displaced_step_fixup(struct gdbarch *gdbarch, struct displaced_step_closure *dsc_, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
Definition: aarch64-tdep.c:2782
aarch64_sys_getresuid
Definition: aarch64-linux-tdep.c:542
aarch64_sys_signalfd4
Definition: aarch64-linux-tdep.c:468
linux_record_tdep::ioctl_FIOASYNC
int ioctl_FIOASYNC
Definition: linux-record.h:145
aarch64_sys_fdatasync
Definition: aarch64-linux-tdep.c:477
aarch64_sys_geteuid
Definition: aarch64-linux-tdep.c:569
aarch64_sys_umask
Definition: aarch64-linux-tdep.c:560
aarch64_sys_sched_rr_get_interval
Definition: aarch64-linux-tdep.c:522
aarch64_sys_mq_timedsend
Definition: aarch64-linux-tdep.c:576
set_xml_syscall_file_name
void set_xml_syscall_file_name(struct gdbarch *gdbarch, const char *name)
Definition: xml-syscall.c:513
printf_unfiltered
void printf_unfiltered(const char *format,...)
Definition: utils.c:2056
aarch64_sys_kexec_load
Definition: aarch64-linux-tdep.c:499
aarch64_sys_dup
Definition: aarch64-linux-tdep.c:417
xml-syscall.h
aarch64_sys_dup3
Definition: aarch64-linux-tdep.c:418
aarch64_sys_wait4
Definition: aarch64-linux-tdep.c:638
linux_record_tdep::size_statfs64
int size_statfs64
Definition: linux-record.h:44
user_reg_map_name_to_regnum
int user_reg_map_name_to_regnum(struct gdbarch *gdbarch, const char *name, int len)
Definition: user-regs.c:130
linux_record_tdep
Definition: linux-record.h:23
aarch64_sys_open_by_handle_at
Definition: aarch64-linux-tdep.c:643
get_frame_register_unsigned
ULONGEST get_frame_register_unsigned(struct frame_info *frame, int regnum)
Definition: frame.c:1308
aarch64_sys_mq_open
Definition: aarch64-linux-tdep.c:574
aarch64_sys_timer_delete
Definition: aarch64-linux-tdep.c:506
gdbarch_register_osabi
void gdbarch_register_osabi(enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
Definition: osabi.c:143
aarch64_sys_gettid
Definition: aarch64-linux-tdep.c:572
linux_displaced_step_location
CORE_ADDR linux_displaced_step_location(struct gdbarch *gdbarch)
Definition: linux-tdep.c:2437
aarch64_sys_socket
Definition: aarch64-linux-tdep.c:592
AARCH64_UCONTEXT_SIGCONTEXT_OFFSET
#define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET
Definition: aarch64-linux-tdep.c:137
aarch64_sys_getsockopt
Definition: aarch64-linux-tdep.c:603
aarch64_sys_mmap
Definition: aarch64-linux-tdep.c:616
glibc-tdep.h
aarch64_sys_fstatfs
Definition: aarch64-linux-tdep.c:438
aarch64_sys_sendmsg
Definition: aarch64-linux-tdep.c:605
linux_record_tdep::ioctl_TIOCNOTTY
int ioctl_TIOCNOTTY
Definition: linux-record.h:129
aarch64_sys_clock_nanosleep
Definition: aarch64-linux-tdep.c:510
linux_record_tdep::ioctl_TIOCGSERIAL
int ioctl_TIOCGSERIAL
Definition: linux-record.h:125
aarch64_sys_msgctl
Definition: aarch64-linux-tdep.c:581
gdb_syscall
gdb_syscall
Definition: linux-record.h:183
aarch64_sys_chdir
Definition: aarch64-linux-tdep.c:443
aarch64_sys_msgsnd
Definition: aarch64-linux-tdep.c:583
user-regs.h
aarch64_displaced_step_hw_singlestep
int aarch64_displaced_step_hw_singlestep(struct gdbarch *gdbarch, struct displaced_step_closure *closure)
Definition: aarch64-tdep.c:2822
aarch64_sys_syncfs
Definition: aarch64-linux-tdep.c:645
linux_record_tdep::ioctl_TIOCINQ
int ioctl_TIOCINQ
Definition: linux-record.h:122
aarch64_sys_munmap
Definition: aarch64-linux-tdep.c:609
aarch64_sys_mlockall
Definition: aarch64-linux-tdep.c:624
tramp-frame.h
aarch64_linux_gregset
const struct regset aarch64_linux_gregset
Definition: aarch64-linux-tdep.c:210
linux_record_tdep::ioctl_TIOCSTI
int ioctl_TIOCSTI
Definition: linux-record.h:112
linux_record_tdep::ioctl_TCSBRKP
int ioctl_TCSBRKP
Definition: linux-record.h:132
linux_record_tdep::size_new_utsname
int size_new_utsname
Definition: linux-record.h:56
write_exp_elt_opcode
void write_exp_elt_opcode(struct parser_state *ps, enum exp_opcode expelt)
Definition: parse.c:205
aarch64_sys_lsetxattr
Definition: aarch64-linux-tdep.c:400
aarch64_sys_migrate_pages
Definition: aarch64-linux-tdep.c:632
linux_record_tdep::size_long
int size_long
Definition: linux-record.h:47
aarch64_sys_mq_notify
Definition: aarch64-linux-tdep.c:578
gdb_sys_rt_sigreturn
Definition: linux-record.h:360
aarch64_sys_sched_setaffinity
Definition: aarch64-linux-tdep.c:517
gdb_byte
bfd_byte gdb_byte
Definition: common-types.h:38
aarch64_sys_preadv
Definition: aarch64-linux-tdep.c:463
aarch64_sys_connect
Definition: aarch64-linux-tdep.c:597
aarch64_sys_setpgid
Definition: aarch64-linux-tdep.c:548
aarch64_sys_sched_yield
Definition: aarch64-linux-tdep.c:519
set_gdbarch_displaced_step_copy_insn
void set_gdbarch_displaced_step_copy_insn(struct gdbarch *gdbarch, gdbarch_displaced_step_copy_insn_ftype displaced_step_copy_insn)
Definition: gdbarch.c:3940
linux_record_tdep::ioctl_TIOCGLCKTRMIOS
int ioctl_TIOCGLCKTRMIOS
Definition: linux-record.h:149
aarch64_sys_clock_gettime
Definition: aarch64-linux-tdep.c:508
linux_record_tdep::size_serial_struct
int size_serial_struct
Definition: linux-record.h:87
aarch64_sys_nanosleep
Definition: aarch64-linux-tdep.c:496
aarch64_sys_openat
Definition: aarch64-linux-tdep.c:450
aarch64_sys_setfsuid
Definition: aarch64-linux-tdep.c:545
linux_record_tdep::ioctl_TIOCOUTQ
int ioctl_TIOCOUTQ
Definition: linux-record.h:111
aarch64_sys_timerfd_gettime
Definition: aarch64-linux-tdep.c:482
aarch64_sys_io_setup
Definition: aarch64-linux-tdep.c:394
linux_record_tdep::ioctl_TCSBRK
int ioctl_TCSBRK
Definition: linux-record.h:103
linux_record_tdep::size_fd_set
int size_fd_set
Definition: linux-record.h:41
aarch64_sys_getpgid
Definition: aarch64-linux-tdep.c:549
AARCH64_LINUX_SIZEOF_FPREGSET
#define AARCH64_LINUX_SIZEOF_FPREGSET
Definition: aarch64-linux-tdep.h:31
aarch64_sys_remap_file_pages
Definition: aarch64-linux-tdep.c:628
aarch64_sys_swapon
Definition: aarch64-linux-tdep.c:618
aarch64_sys_tkill
Definition: aarch64-linux-tdep.c:524
aarch64_sys_shmat
Definition: aarch64-linux-tdep.c:590
aarch64_linux_sigframe_init
static void aarch64_linux_sigframe_init(const struct tramp_frame *self, struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
Definition: aarch64-linux-tdep.c:143
target_desc
Definition: target-descriptions.c:591
aarch64_sys_kill
Definition: aarch64-linux-tdep.c:523
linux-record.h
set_gdbarch_stap_is_single_operand
void set_gdbarch_stap_is_single_operand(struct gdbarch *gdbarch, gdbarch_stap_is_single_operand_ftype stap_is_single_operand)
Definition: gdbarch.c:4475
aarch64_sys_fremovexattr
Definition: aarch64-linux-tdep.c:410
aarch64_sys_read
Definition: aarch64-linux-tdep.c:457
linux_record_tdep::ioctl_TIOCMGET
int ioctl_TIOCMGET
Definition: linux-record.h:115
set_gdbarch_get_syscall_number
void set_gdbarch_get_syscall_number(struct gdbarch *gdbarch, gdbarch_get_syscall_number_ftype get_syscall_number)
Definition: gdbarch.c:4281
AARCH64_V0_REGNUM
Definition: aarch64.h:36
linux_record_tdep::size_stat
int size_stat
Definition: linux-record.h:51
linux_record_tdep::ioctl_TIOCSSERIAL
int ioctl_TIOCSSERIAL
Definition: linux-record.h:126
tramp_frame_prepend_unwinder
void tramp_frame_prepend_unwinder(struct gdbarch *gdbarch, const struct tramp_frame *tramp_frame)
Definition: tramp-frame.c:146
aarch64_sys_keyctl
Definition: aarch64-linux-tdep.c:613
aarch64_sys_semop
Definition: aarch64-linux-tdep.c:587
linux_record_tdep::size_old_sigset_t
int size_old_sigset_t
Definition: linux-record.h:34
aarch64_sys_clock_getres
Definition: aarch64-linux-tdep.c:509
aarch64_sys_quotactl
Definition: aarch64-linux-tdep.c:454
aarch64_process_record
int aarch64_process_record(struct gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR insn_addr)
Definition: aarch64-tdep.c:4021
aarch64_sys_mknodat
Definition: aarch64-linux-tdep.c:427
regcache_cooked_read
enum register_status regcache_cooked_read(struct regcache *regcache, int regnum, gdb_byte *buf)
Definition: regcache.c:661
aarch64_sys_unshare
Definition: aarch64-linux-tdep.c:492
linux_record_tdep::size_NFS_FHSIZE
int size_NFS_FHSIZE
Definition: linux-record.h:63
aarch64_sys_getppid
Definition: aarch64-linux-tdep.c:567
linux-tdep.h
aarch64_sys_fallocate
Definition: aarch64-linux-tdep.c:441
aarch64_sys_fsync
Definition: aarch64-linux-tdep.c:476
linux_record_tdep::size_mem_dqinfo
int size_mem_dqinfo
Definition: linux-record.h:58
linux_record_tdep::size_fs_quota_stat
int size_fs_quota_stat
Definition: linux-record.h:60
aarch64_sys_timer_getoverrun
Definition: aarch64-linux-tdep.c:504
aarch64_sys_inotify_add_watch
Definition: aarch64-linux-tdep.c:421
aarch64_sys_getegid
Definition: aarch64-linux-tdep.c:571
linux_record_tdep::size_old_utsname
int size_old_utsname
Definition: linux-record.h:52
extract_signed_integer
static LONGEST extract_signed_integer(const gdb_byte *addr, int len, enum bfd_endian byte_order)
Definition: defs.h:570
aarch64_sys_setreuid
Definition: aarch64-linux-tdep.c:539
AARCH64_LINUX_SIZEOF_GREGSET
#define AARCH64_LINUX_SIZEOF_GREGSET
Definition: aarch64-linux-tdep.h:26
linux_record_tdep::size_if_dqblk
int size_if_dqblk
Definition: linux-record.h:59
aarch64_sys_readahead
Definition: aarch64-linux-tdep.c:607
aarch64_sys_recvfrom
Definition: aarch64-linux-tdep.c:601
linux_record_tdep::ioctl_TIOCGSID
int ioctl_TIOCGSID
Definition: linux-record.h:136
aarch64_all_but_pc_registers_record
static int aarch64_all_but_pc_registers_record(struct regcache *regcache)
Definition: aarch64-linux-tdep.c:944
aarch64_sys_setxattr
Definition: aarch64-linux-tdep.c:399
aarch64_canonicalize_syscall
static enum gdb_syscall aarch64_canonicalize_syscall(enum aarch64_syscall syscall_number)
Definition: aarch64-linux-tdep.c:661
gdb_sys_mmap2
Definition: linux-record.h:379
gdbarch_tdep::sp
struct m32c_reg * sp
Definition: m32c-tdep.c:119
AARCH64_LR_REGNUM
Definition: aarch64.h:32
aarch64_sys_set_robust_list
Definition: aarch64-linux-tdep.c:494
aarch64_sys_pread64
Definition: aarch64-linux-tdep.c:461
linux_record_tdep::size_int
int size_int
Definition: linux-record.h:46
aarch64_sys_sendmmsg
Definition: aarch64-linux-tdep.c:647
linux_record_tdep::fcntl_F_SETLKW64
int fcntl_F_SETLKW64
Definition: linux-record.h:166
aarch64_sys_process_vm_writev
Definition: aarch64-linux-tdep.c:649
aarch64_sys_timerfd_settime
Definition: aarch64-linux-tdep.c:481
aarch64_sys_sched_getscheduler
Definition: aarch64-linux-tdep.c:515
aarch64_sys_pselect6
Definition: aarch64-linux-tdep.c:466
aarch64_sys_kcmp
Definition: aarch64-linux-tdep.c:650
linux_record_tdep::ioctl_TIOCSETD
int ioctl_TIOCSETD
Definition: linux-record.h:130
linux_record_tdep::size_stat64
int size_stat64
Definition: linux-record.h:72
aarch64_sys_getgid
Definition: aarch64-linux-tdep.c:570
DISPLACED_MODIFIED_INSNS
#define DISPLACED_MODIFIED_INSNS
Definition: aarch64-tdep.h:52
aarch64_sys_fchown
Definition: aarch64-linux-tdep.c:449
linux_record_tdep::size_timeval
int size_timeval
Definition: linux-record.h:37
aarch64_sys_sync_file_range2
Definition: aarch64-linux-tdep.c:478
aarch64_sys_setresgid
Definition: aarch64-linux-tdep.c:543
linux_record_tdep::ioctl_FIONREAD
int ioctl_FIONREAD
Definition: linux-record.h:121
aarch64_sys_exit
Definition: aarch64-linux-tdep.c:488
aarch64_sys_removexattr
Definition: aarch64-linux-tdep.c:408
regcache
Definition: regcache.h:232
linux_record_tdep::ioctl_TIOCMBIS
int ioctl_TIOCMBIS
Definition: linux-record.h:116
linux_record_tdep::size_stack_t
int size_stack_t
Definition: linux-record.h:70
aarch64_sys_faccessat
Definition: aarch64-linux-tdep.c:442
gdbarch_info
Definition: gdbarch.h:1626
linux_record_tdep::ioctl_TIOCSERGETLSR
int ioctl_TIOCSERGETLSR
Definition: linux-record.h:152
linux_record_tdep::ioctl_TCGETS
int ioctl_TCGETS
Definition: linux-record.h:95
linux_record_tdep::ioctl_TIOCGHAYESESP
int ioctl_TIOCGHAYESESP
Definition: linux-record.h:157
linux_record_tdep::size_siginfo_t
int size_siginfo_t
Definition: linux-record.h:68
linux_record_tdep::ioctl_TIOCMIWAIT
int ioctl_TIOCMIWAIT
Definition: linux-record.h:155
linux_record_tdep::size_mq_attr
int size_mq_attr
Definition: linux-record.h:82
aarch64_sys_epoll_pwait
Definition: aarch64-linux-tdep.c:416
aarch64_sys_inotify_rm_watch
Definition: aarch64-linux-tdep.c:422
regset.h
linux_record_tdep::size_timezone
int size_timezone
Definition: linux-record.h:38
linux_record_tdep::ioctl_TCSETSF
int ioctl_TCSETSF
Definition: linux-record.h:98
aarch64_sys_socketpair
Definition: aarch64-linux-tdep.c:593
aarch64_sys_setdomainname
Definition: aarch64-linux-tdep.c:556
aarch64_sys_setitimer
Definition: aarch64-linux-tdep.c:498
linux_record_tdep::ioctl_FIOQSIZE
int ioctl_FIOQSIZE
Definition: linux-record.h:159
aarch64_sys_io_destroy
Definition: aarch64-linux-tdep.c:395
linux_record_tdep::size_hayes_esp_config
int size_hayes_esp_config
Definition: linux-record.h:89
aarch64_sys_accept
Definition: aarch64-linux-tdep.c:596
aarch64_sys_setns
Definition: aarch64-linux-tdep.c:646
tramp_frame
Definition: tramp-frame.h:46
aarch64_sys_timer_gettime
Definition: aarch64-linux-tdep.c:503
aarch64_sys_utimensat
Definition: aarch64-linux-tdep.c:483
aarch64_sys_recvmsg
Definition: aarch64-linux-tdep.c:606
UNSUPPORTED_SYSCALL_MAP
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL)
linux_record_tdep::ioctl_TIOCSERGWILD
int ioctl_TIOCSERGWILD
Definition: linux-record.h:147
linux_record_tdep::size_msghdr
int size_msghdr
Definition: linux-record.h:49
aarch64_sys_mincore
Definition: aarch64-linux-tdep.c:626
linux_record_tdep::size_off_t
int size_off_t
Definition: linux-record.h:71
aarch64_linux_core_read_description
static const struct target_desc * aarch64_linux_core_read_description(struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
Definition: aarch64-linux-tdep.c:239
aarch64_sys_swapoff
Definition: aarch64-linux-tdep.c:619
aarch64_syscall
aarch64_syscall
Definition: aarch64-linux-tdep.c:393
aarch64_sys_sigaltstack
Definition: aarch64-linux-tdep.c:526
aarch64_sys_prctl
Definition: aarch64-linux-tdep.c:561
aarch64_sys_fcntl
Definition: aarch64-linux-tdep.c:419
linux_record_tdep::arg6
int arg6
Definition: linux-record.h:175
set_gdbarch_iterate_over_regset_sections
void set_gdbarch_iterate_over_regset_sections(struct gdbarch *gdbarch, gdbarch_iterate_over_regset_sections_ftype iterate_over_regset_sections)
Definition: gdbarch.c:3647
regcache::ptid
ptid_t ptid() const
Definition: regcache.h:325
aarch64_sys_umount2
Definition: aarch64-linux-tdep.c:433
linux_record_tdep::size_itimerval
int size_itimerval
Definition: linux-record.h:50
linux_record_tdep::size__old_kernel_stat
int size__old_kernel_stat
Definition: linux-record.h:27
aarch64_displaced_step_copy_insn
struct displaced_step_closure * aarch64_displaced_step_copy_insn(struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
Definition: aarch64-tdep.c:2723
AARCH64_SIGCONTEXT_XO_OFFSET
#define AARCH64_SIGCONTEXT_XO_OFFSET
Definition: aarch64-linux-tdep.c:138
aarch64_sys_sync
Definition: aarch64-linux-tdep.c:475
aarch64_sys_name_to_handle_at
Definition: aarch64-linux-tdep.c:642
linux_record_tdep::ioctl_TCSETAW
int ioctl_TCSETAW
Definition: linux-record.h:101
linux_record_tdep::ioctl_TIOCPKT
int ioctl_TIOCPKT
Definition: linux-record.h:127
set_gdbarch_skip_solib_resolver
void set_gdbarch_skip_solib_resolver(struct gdbarch *gdbarch, gdbarch_skip_solib_resolver_ftype skip_solib_resolver)
Definition: gdbarch.c:3333
aarch64_sys_msgrcv
Definition: aarch64-linux-tdep.c:582
linux_record_tdep::ioctl_TIOCNXCL
int ioctl_TIOCNXCL
Definition: linux-record.h:107
linux_record_tdep::size_PAGE_SIZE
int size_PAGE_SIZE
Definition: linux-record.h:75
linux_record_tdep::size_old_uid_t
int size_old_uid_t
Definition: linux-record.h:40
aarch64_sys_getgroups
Definition: aarch64-linux-tdep.c:552
stoken
Definition: parser-defs.h:88
aarch64_sys_brk
Definition: aarch64-linux-tdep.c:608
aarch64_linux_rt_sigframe
static const struct tramp_frame aarch64_linux_rt_sigframe
Definition: aarch64-linux-tdep.c:172
aarch64_sys_munlockall
Definition: aarch64-linux-tdep.c:625
aarch64_sys_shutdown
Definition: aarch64-linux-tdep.c:604
set_gdbarch_max_insn_length
void set_gdbarch_max_insn_length(struct gdbarch *gdbarch, ULONGEST max_insn_length)
Definition: gdbarch.c:3916
write_exp_string
void write_exp_string(struct parser_state *ps, struct stoken str)
Definition: parse.c:318
set_gdbarch_core_read_description
void set_gdbarch_core_read_description(struct gdbarch *gdbarch, gdbarch_core_read_description_ftype core_read_description)
Definition: gdbarch.c:4072
linux_record_tdep::size_io_event
int size_io_event
Definition: linux-record.h:78
aarch64_sys_settimeofday
Definition: aarch64-linux-tdep.c:564
linux_record_tdep::fcntl_F_SETLK64
int fcntl_F_SETLK64
Definition: linux-record.h:165
write_exp_elt_type
void write_exp_elt_type(struct parser_state *ps, struct type *expelt)
Definition: parse.c:277
aarch64_stap_is_single_operand
static int aarch64_stap_is_single_operand(struct gdbarch *gdbarch, const char *s)
Definition: aarch64-linux-tdep.c:254
aarch64_sys_getcpu
Definition: aarch64-linux-tdep.c:562
aarch64_sys_adjtimex
Definition: aarch64-linux-tdep.c:565
linux_record_tdep::ioctl_TIOCGSOFTCAR
int ioctl_TIOCGSOFTCAR
Definition: linux-record.h:119
linux_record_tdep::ioctl_TCSETSW2
int ioctl_TCSETSW2
Definition: linux-record.h:139
error
void error(const char *fmt,...)
Definition: errors.c:38
linux_record_tdep::size_rusage
int size_rusage
Definition: linux-record.h:36
linux_record_tdep::ioctl_FIONCLEX
int ioctl_FIONCLEX
Definition: linux-record.h:143
aarch64_sys_shmget
Definition: aarch64-linux-tdep.c:588
linux_record_tdep::size_sigaction
int size_sigaction
Definition: linux-record.h:66
linux_record_tdep::ioctl_TCSETS
int ioctl_TCSETS
Definition: linux-record.h:96
aarch64_linux_fpregset
const struct regset aarch64_linux_fpregset
Definition: aarch64-linux-tdep.c:216
aarch64_sys_getsockname
Definition: aarch64-linux-tdep.c:598
aarch64_linux_record_tdep
struct linux_record_tdep aarch64_linux_record_tdep
Definition: aarch64-linux-tdep.c:388
aarch64_sys_gettimeofday
Definition: aarch64-linux-tdep.c:563
lookup_pointer_type
struct type * lookup_pointer_type(struct type *type)
Definition: gdbtypes.c:381
aarch64_sys_sysinfo
Definition: aarch64-linux-tdep.c:573
LONGEST
long long LONGEST
Definition: common-types.h:52
aarch64_sys_capset
Definition: aarch64-linux-tdep.c:486
AARCH64_X0_REGNUM
Definition: aarch64.h:30
regcache_map_entry
Definition: regcache.h:157
linux_record_tdep::size_tms
int size_tms
Definition: linux-record.h:28
aarch64_sys_prlimit64
Definition: aarch64-linux-tdep.c:639
aarch64_sys_rt_sigqueueinfo
Definition: aarch64-linux-tdep.c:532
stoken::length
int length
Definition: parser-defs.h:93
aarch64_sys_getpeername
Definition: aarch64-linux-tdep.c:599
aarch64_sys_rt_sigprocmask
Definition: aarch64-linux-tdep.c:529
linux_record_tdep::ioctl_TIOCGETD
int ioctl_TIOCGETD
Definition: linux-record.h:131
linux_record_tdep::ioctl_TIOCMSET
int ioctl_TIOCMSET
Definition: linux-record.h:118
aarch64_sys_rt_sigsuspend
Definition: aarch64-linux-tdep.c:527
aarch64_sys_mbind
Definition: aarch64-linux-tdep.c:629
linux_record_tdep::size_iocb
int size_iocb
Definition: linux-record.h:79
aarch64_sys_getxattr
Definition: aarch64-linux-tdep.c:402