GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
aarch64-linux-tdep.c File Reference
#include "defs.h"
#include "gdbarch.h"
#include "glibc-tdep.h"
#include "linux-tdep.h"
#include "aarch64-tdep.h"
#include "aarch64-linux-tdep.h"
#include "osabi.h"
#include "solib-svr4.h"
#include "symtab.h"
#include "tramp-frame.h"
#include "trad-frame.h"
#include "target.h"
#include "target/target.h"
#include "expop.h"
#include "auxv.h"
#include "regcache.h"
#include "regset.h"
#include "stap-probe.h"
#include "parser-defs.h"
#include "user-regs.h"
#include "xml-syscall.h"
#include <ctype.h>
#include "record-full.h"
#include "linux-record.h"
#include "arch/aarch64-mte-linux.h"
#include "arch/aarch64-scalable-linux.h"
#include "arch-utils.h"
#include "value.h"
#include "gdbsupport/selftest.h"
#include "elf/common.h"
#include "elf/aarch64.h"
#include "arch/aarch64-insn.h"
#include <cmath>

Go to the source code of this file.

Classes

struct  aarch64_linux_sigframe
 

Macros

#define AARCH64_SIGCONTEXT_REG_SIZE   8
 
#define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET   128
 
#define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET   176
 
#define AARCH64_SIGCONTEXT_XO_OFFSET   8
 
#define AARCH64_SIGCONTEXT_RESERVED_OFFSET   288
 
#define AARCH64_SIGCONTEXT_RESERVED_SIZE   4096
 
#define AARCH64_EXTRA_MAGIC   0x45585401
 
#define AARCH64_FPSIMD_MAGIC   0x46508001
 
#define AARCH64_SVE_MAGIC   0x53564501
 
#define AARCH64_ZA_MAGIC   0x54366345
 
#define AARCH64_TPIDR2_MAGIC   0x54504902
 
#define AARCH64_ZT_MAGIC   0x5a544e01
 
#define AARCH64_EXTRA_DATAP_OFFSET   8
 
#define AARCH64_FPSIMD_FPSR_OFFSET   8
 
#define AARCH64_FPSIMD_FPCR_OFFSET   12
 
#define AARCH64_FPSIMD_V0_OFFSET   16
 
#define AARCH64_FPSIMD_VREG_SIZE   16
 
#define AARCH64_SVE_CONTEXT_VL_OFFSET   8
 
#define AARCH64_SVE_CONTEXT_FLAGS_OFFSET   10
 
#define AARCH64_SVE_CONTEXT_REGS_OFFSET   16
 
#define AARCH64_SVE_CONTEXT_P_REGS_OFFSET(vq)   (32 * vq * 16)
 
#define AARCH64_SVE_CONTEXT_FFR_OFFSET(vq)    (AARCH64_SVE_CONTEXT_P_REGS_OFFSET (vq) + (16 * vq * 2))
 
#define AARCH64_SVE_CONTEXT_SIZE(vq)    (AARCH64_SVE_CONTEXT_FFR_OFFSET (vq) + (vq * 2))
 
#define SVE_SIG_FLAG_SM   0x1
 
#define AARCH64_SME_CONTEXT_SVL_OFFSET   8
 
#define AARCH64_SME_CONTEXT_REGS_OFFSET   16
 
#define AARCH64_SME_CONTEXT_ZA_SIZE(svq)    ((sve_vl_from_vq (svq) * sve_vl_from_vq (svq)))
 
#define AARCH64_SME_CONTEXT_SIZE(svq)    (AARCH64_SME_CONTEXT_REGS_OFFSET + AARCH64_SME_CONTEXT_ZA_SIZE (svq))
 
#define AARCH64_TPIDR2_CONTEXT_TPIDR2_OFFSET   8
 
#define AARCH64_SME2_CONTEXT_NREGS_OFFSET   8
 
#define AARCH64_SME2_CONTEXT_REGS_OFFSET   16
 
#define SVE_HEADER_SIZE_LENGTH   4
 
#define SVE_HEADER_MAX_SIZE_LENGTH   4
 
#define SVE_HEADER_VL_LENGTH   2
 
#define SVE_HEADER_MAX_VL_LENGTH   2
 
#define SVE_HEADER_FLAGS_LENGTH   2
 
#define SVE_HEADER_RESERVED_LENGTH   2
 
#define SVE_HEADER_SIZE_OFFSET   0
 
#define SVE_HEADER_MAX_SIZE_OFFSET    (SVE_HEADER_SIZE_OFFSET + SVE_HEADER_SIZE_LENGTH)
 
#define SVE_HEADER_VL_OFFSET    (SVE_HEADER_MAX_SIZE_OFFSET + SVE_HEADER_MAX_SIZE_LENGTH)
 
#define SVE_HEADER_MAX_VL_OFFSET    (SVE_HEADER_VL_OFFSET + SVE_HEADER_VL_LENGTH)
 
#define SVE_HEADER_FLAGS_OFFSET    (SVE_HEADER_MAX_VL_OFFSET + SVE_HEADER_MAX_VL_LENGTH)
 
#define SVE_HEADER_RESERVED_OFFSET    (SVE_HEADER_FLAGS_OFFSET + SVE_HEADER_FLAGS_LENGTH)
 
#define SVE_HEADER_SIZE    (SVE_HEADER_RESERVED_OFFSET + SVE_HEADER_RESERVED_LENGTH)
 
#define SVE_HEADER_FLAG_SVE   1
 
#define SYSCALL_MAP(SYSCALL)
 
#define UNSUPPORTED_SYSCALL_MAP(SYSCALL)
 
#define MAX_TAGS_TO_TRANSFER   1024
 

Enumerations

enum  aarch64_syscall {
  aarch64_sys_io_setup = 0 , aarch64_sys_io_destroy = 1 , aarch64_sys_io_submit = 2 , aarch64_sys_io_cancel = 3 ,
  aarch64_sys_io_getevents = 4 , aarch64_sys_setxattr = 5 , aarch64_sys_lsetxattr = 6 , aarch64_sys_fsetxattr = 7 ,
  aarch64_sys_getxattr = 8 , aarch64_sys_lgetxattr = 9 , aarch64_sys_fgetxattr = 10 , aarch64_sys_listxattr = 11 ,
  aarch64_sys_llistxattr = 12 , aarch64_sys_flistxattr = 13 , aarch64_sys_removexattr = 14 , aarch64_sys_lremovexattr = 15 ,
  aarch64_sys_fremovexattr = 16 , aarch64_sys_getcwd = 17 , aarch64_sys_lookup_dcookie = 18 , aarch64_sys_eventfd2 = 19 ,
  aarch64_sys_epoll_create1 = 20 , aarch64_sys_epoll_ctl = 21 , aarch64_sys_epoll_pwait = 22 , aarch64_sys_dup = 23 ,
  aarch64_sys_dup3 = 24 , aarch64_sys_fcntl = 25 , aarch64_sys_inotify_init1 = 26 , aarch64_sys_inotify_add_watch = 27 ,
  aarch64_sys_inotify_rm_watch = 28 , aarch64_sys_ioctl = 29 , aarch64_sys_ioprio_set = 30 , aarch64_sys_ioprio_get = 31 ,
  aarch64_sys_flock = 32 , aarch64_sys_mknodat = 33 , aarch64_sys_mkdirat = 34 , aarch64_sys_unlinkat = 35 ,
  aarch64_sys_symlinkat = 36 , aarch64_sys_linkat = 37 , aarch64_sys_renameat = 38 , aarch64_sys_umount2 = 39 ,
  aarch64_sys_mount = 40 , aarch64_sys_pivot_root = 41 , aarch64_sys_nfsservctl = 42 , aarch64_sys_statfs = 43 ,
  aarch64_sys_fstatfs = 44 , aarch64_sys_truncate = 45 , aarch64_sys_ftruncate = 46 , aarch64_sys_fallocate = 47 ,
  aarch64_sys_faccessat = 48 , aarch64_sys_chdir = 49 , aarch64_sys_fchdir = 50 , aarch64_sys_chroot = 51 ,
  aarch64_sys_fchmod = 52 , aarch64_sys_fchmodat = 53 , aarch64_sys_fchownat = 54 , aarch64_sys_fchown = 55 ,
  aarch64_sys_openat = 56 , aarch64_sys_close = 57 , aarch64_sys_vhangup = 58 , aarch64_sys_pipe2 = 59 ,
  aarch64_sys_quotactl = 60 , aarch64_sys_getdents64 = 61 , aarch64_sys_lseek = 62 , aarch64_sys_read = 63 ,
  aarch64_sys_write = 64 , aarch64_sys_readv = 65 , aarch64_sys_writev = 66 , aarch64_sys_pread64 = 67 ,
  aarch64_sys_pwrite64 = 68 , aarch64_sys_preadv = 69 , aarch64_sys_pwritev = 70 , aarch64_sys_sendfile = 71 ,
  aarch64_sys_pselect6 = 72 , aarch64_sys_ppoll = 73 , aarch64_sys_signalfd4 = 74 , aarch64_sys_vmsplice = 75 ,
  aarch64_sys_splice = 76 , aarch64_sys_tee = 77 , aarch64_sys_readlinkat = 78 , aarch64_sys_newfstatat = 79 ,
  aarch64_sys_fstat = 80 , aarch64_sys_sync = 81 , aarch64_sys_fsync = 82 , aarch64_sys_fdatasync = 83 ,
  aarch64_sys_sync_file_range2 = 84 , aarch64_sys_sync_file_range = 84 , aarch64_sys_timerfd_create = 85 , aarch64_sys_timerfd_settime = 86 ,
  aarch64_sys_timerfd_gettime = 87 , aarch64_sys_utimensat = 88 , aarch64_sys_acct = 89 , aarch64_sys_capget = 90 ,
  aarch64_sys_capset = 91 , aarch64_sys_personality = 92 , aarch64_sys_exit = 93 , aarch64_sys_exit_group = 94 ,
  aarch64_sys_waitid = 95 , aarch64_sys_set_tid_address = 96 , aarch64_sys_unshare = 97 , aarch64_sys_futex = 98 ,
  aarch64_sys_set_robust_list = 99 , aarch64_sys_get_robust_list = 100 , aarch64_sys_nanosleep = 101 , aarch64_sys_getitimer = 102 ,
  aarch64_sys_setitimer = 103 , aarch64_sys_kexec_load = 104 , aarch64_sys_init_module = 105 , aarch64_sys_delete_module = 106 ,
  aarch64_sys_timer_create = 107 , aarch64_sys_timer_gettime = 108 , aarch64_sys_timer_getoverrun = 109 , aarch64_sys_timer_settime = 110 ,
  aarch64_sys_timer_delete = 111 , aarch64_sys_clock_settime = 112 , aarch64_sys_clock_gettime = 113 , aarch64_sys_clock_getres = 114 ,
  aarch64_sys_clock_nanosleep = 115 , aarch64_sys_syslog = 116 , aarch64_sys_ptrace = 117 , aarch64_sys_sched_setparam = 118 ,
  aarch64_sys_sched_setscheduler = 119 , aarch64_sys_sched_getscheduler = 120 , aarch64_sys_sched_getparam = 121 , aarch64_sys_sched_setaffinity = 122 ,
  aarch64_sys_sched_getaffinity = 123 , aarch64_sys_sched_yield = 124 , aarch64_sys_sched_get_priority_max = 125 , aarch64_sys_sched_get_priority_min = 126 ,
  aarch64_sys_sched_rr_get_interval = 127 , aarch64_sys_kill = 129 , aarch64_sys_tkill = 130 , aarch64_sys_tgkill = 131 ,
  aarch64_sys_sigaltstack = 132 , aarch64_sys_rt_sigsuspend = 133 , aarch64_sys_rt_sigaction = 134 , aarch64_sys_rt_sigprocmask = 135 ,
  aarch64_sys_rt_sigpending = 136 , aarch64_sys_rt_sigtimedwait = 137 , aarch64_sys_rt_sigqueueinfo = 138 , aarch64_sys_rt_sigreturn = 139 ,
  aarch64_sys_setpriority = 140 , aarch64_sys_getpriority = 141 , aarch64_sys_reboot = 142 , aarch64_sys_setregid = 143 ,
  aarch64_sys_setgid = 144 , aarch64_sys_setreuid = 145 , aarch64_sys_setuid = 146 , aarch64_sys_setresuid = 147 ,
  aarch64_sys_getresuid = 148 , aarch64_sys_setresgid = 149 , aarch64_sys_getresgid = 150 , aarch64_sys_setfsuid = 151 ,
  aarch64_sys_setfsgid = 152 , aarch64_sys_times = 153 , aarch64_sys_setpgid = 154 , aarch64_sys_getpgid = 155 ,
  aarch64_sys_getsid = 156 , aarch64_sys_setsid = 157 , aarch64_sys_getgroups = 158 , aarch64_sys_setgroups = 159 ,
  aarch64_sys_uname = 160 , aarch64_sys_sethostname = 161 , aarch64_sys_setdomainname = 162 , aarch64_sys_getrlimit = 163 ,
  aarch64_sys_setrlimit = 164 , aarch64_sys_getrusage = 165 , aarch64_sys_umask = 166 , aarch64_sys_prctl = 167 ,
  aarch64_sys_getcpu = 168 , aarch64_sys_gettimeofday = 169 , aarch64_sys_settimeofday = 170 , aarch64_sys_adjtimex = 171 ,
  aarch64_sys_getpid = 172 , aarch64_sys_getppid = 173 , aarch64_sys_getuid = 174 , aarch64_sys_geteuid = 175 ,
  aarch64_sys_getgid = 176 , aarch64_sys_getegid = 177 , aarch64_sys_gettid = 178 , aarch64_sys_sysinfo = 179 ,
  aarch64_sys_mq_open = 180 , aarch64_sys_mq_unlink = 181 , aarch64_sys_mq_timedsend = 182 , aarch64_sys_mq_timedreceive = 183 ,
  aarch64_sys_mq_notify = 184 , aarch64_sys_mq_getsetattr = 185 , aarch64_sys_msgget = 186 , aarch64_sys_msgctl = 187 ,
  aarch64_sys_msgrcv = 188 , aarch64_sys_msgsnd = 189 , aarch64_sys_semget = 190 , aarch64_sys_semctl = 191 ,
  aarch64_sys_semtimedop = 192 , aarch64_sys_semop = 193 , aarch64_sys_shmget = 194 , aarch64_sys_shmctl = 195 ,
  aarch64_sys_shmat = 196 , aarch64_sys_shmdt = 197 , aarch64_sys_socket = 198 , aarch64_sys_socketpair = 199 ,
  aarch64_sys_bind = 200 , aarch64_sys_listen = 201 , aarch64_sys_accept = 202 , aarch64_sys_connect = 203 ,
  aarch64_sys_getsockname = 204 , aarch64_sys_getpeername = 205 , aarch64_sys_sendto = 206 , aarch64_sys_recvfrom = 207 ,
  aarch64_sys_setsockopt = 208 , aarch64_sys_getsockopt = 209 , aarch64_sys_shutdown = 210 , aarch64_sys_sendmsg = 211 ,
  aarch64_sys_recvmsg = 212 , aarch64_sys_readahead = 213 , aarch64_sys_brk = 214 , aarch64_sys_munmap = 215 ,
  aarch64_sys_mremap = 216 , aarch64_sys_add_key = 217 , aarch64_sys_request_key = 218 , aarch64_sys_keyctl = 219 ,
  aarch64_sys_clone = 220 , aarch64_sys_execve = 221 , aarch64_sys_mmap = 222 , aarch64_sys_fadvise64 = 223 ,
  aarch64_sys_swapon = 224 , aarch64_sys_swapoff = 225 , aarch64_sys_mprotect = 226 , aarch64_sys_msync = 227 ,
  aarch64_sys_mlock = 228 , aarch64_sys_munlock = 229 , aarch64_sys_mlockall = 230 , aarch64_sys_munlockall = 231 ,
  aarch64_sys_mincore = 232 , aarch64_sys_madvise = 233 , aarch64_sys_remap_file_pages = 234 , aarch64_sys_mbind = 235 ,
  aarch64_sys_get_mempolicy = 236 , aarch64_sys_set_mempolicy = 237 , aarch64_sys_migrate_pages = 238 , aarch64_sys_move_pages = 239 ,
  aarch64_sys_rt_tgsigqueueinfo = 240 , aarch64_sys_perf_event_open = 241 , aarch64_sys_accept4 = 242 , aarch64_sys_recvmmsg = 243 ,
  aarch64_sys_wait4 = 260 , aarch64_sys_prlimit64 = 261 , aarch64_sys_fanotify_init = 262 , aarch64_sys_fanotify_mark = 263 ,
  aarch64_sys_name_to_handle_at = 264 , aarch64_sys_open_by_handle_at = 265 , aarch64_sys_clock_adjtime = 266 , aarch64_sys_syncfs = 267 ,
  aarch64_sys_setns = 268 , aarch64_sys_sendmmsg = 269 , aarch64_sys_process_vm_readv = 270 , aarch64_sys_process_vm_writev = 271 ,
  aarch64_sys_kcmp = 272 , aarch64_sys_finit_module = 273 , aarch64_sys_sched_setattr = 274 , aarch64_sys_sched_getattr = 275 ,
  aarch64_sys_getrandom = 278
}
 

Functions

static uint32_t read_aarch64_ctx (CORE_ADDR ctx_addr, enum bfd_endian byte_order, uint32_t *size)
 
static void aarch64_linux_restore_vregs (struct gdbarch *gdbarch, struct trad_frame_cache *cache, CORE_ADDR fpsimd_context)
 
static void aarch64_linux_read_signal_frame_info (frame_info_ptr this_frame, struct aarch64_linux_sigframe &signal_frame)
 
static void aarch64_linux_sigframe_init (const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
 
static struct gdbarchaarch64_linux_sigframe_prev_arch (frame_info_ptr this_frame, void **frame_cache)
 
static uint64_t aarch64_linux_core_read_vq (struct gdbarch *gdbarch, bfd *abfd, const char *section_name)
 
static uint64_t aarch64_linux_core_read_vq_from_sections (struct gdbarch *gdbarch, bfd *core_bfd)
 
static void supply_sve_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
static void collect_inactive_sve_regset (const struct regcache *regcache, void *buf, size_t size, int vg_regnum)
 
static void collect_sve_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
 
static void aarch64_linux_supply_sve_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
static void aarch64_linux_collect_sve_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
 
static void aarch64_linux_supply_ssve_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
static void aarch64_linux_collect_ssve_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
 
static void aarch64_linux_supply_za_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
static void aarch64_linux_collect_za_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
 
static void aarch64_linux_supply_zt_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
static void aarch64_linux_collect_zt_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
 
static void aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, iterate_over_regset_sections_cb *cb, void *cb_data, const struct regcache *regcache)
 
static const struct target_descaarch64_linux_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd)
 
static int aarch64_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
 
static expr::operation_up aarch64_stap_parse_special_token (struct gdbarch *gdbarch, struct stap_parse_info *p)
 
static enum gdb_syscall aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
 
static LONGEST aarch64_linux_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread)
 
static int aarch64_all_but_pc_registers_record (struct regcache *regcache)
 
static int aarch64_linux_syscall_record (struct regcache *regcache, unsigned long svc_number)
 
static std::string aarch64_linux_gcc_target_options (struct gdbarch *gdbarch)
 
static gdb::optional< CORE_ADDR > aarch64_mte_get_atag (CORE_ADDR address)
 
static bool aarch64_linux_tagged_address_p (struct gdbarch *gdbarch, struct value *address)
 
static bool aarch64_linux_memtag_matches_p (struct gdbarch *gdbarch, struct value *address)
 
static bool aarch64_linux_set_memtags (struct gdbarch *gdbarch, struct value *address, size_t length, const gdb::byte_vector &tags, memtag_type tag_type)
 
static struct valueaarch64_linux_get_memtag (struct gdbarch *gdbarch, struct value *address, memtag_type tag_type)
 
static std::string aarch64_linux_memtag_to_string (struct gdbarch *gdbarch, struct value *tag_value)
 
static void aarch64_linux_report_signal_info (struct gdbarch *gdbarch, struct ui_out *uiout, enum gdb_signal siggnal)
 
static asection * aarch64_linux_create_memtag_section (struct gdbarch *gdbarch, bfd *obfd, CORE_ADDR address, size_t size)
 
static bool aarch64_linux_fill_memtag_section (struct gdbarch *gdbarch, asection *osec)
 
static gdb::byte_vector aarch64_linux_decode_memtag_section (struct gdbarch *gdbarch, bfd_section *section, int type, CORE_ADDR address, size_t length)
 
static bool aarch64_use_target_description_from_corefile_notes (gdbarch *gdbarch, bfd *obfd)
 
static void aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
void _initialize_aarch64_linux_tdep ()
 

Variables

static const struct tramp_frame aarch64_linux_rt_sigframe
 
static const struct regcache_map_entry aarch64_linux_gregmap []
 
static const struct regcache_map_entry aarch64_linux_fpregmap []
 
const struct regset aarch64_linux_gregset
 
const struct regset aarch64_linux_fpregset
 
static linux_record_tdep aarch64_linux_record_tdep
 

Macro Definition Documentation

◆ AARCH64_EXTRA_DATAP_OFFSET

#define AARCH64_EXTRA_DATAP_OFFSET   8

Definition at line 165 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_EXTRA_MAGIC

#define AARCH64_EXTRA_MAGIC   0x45585401

Definition at line 157 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_FPSIMD_FPCR_OFFSET

#define AARCH64_FPSIMD_FPCR_OFFSET   12

Definition at line 169 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_FPSIMD_FPSR_OFFSET

#define AARCH64_FPSIMD_FPSR_OFFSET   8

Definition at line 168 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_FPSIMD_MAGIC

#define AARCH64_FPSIMD_MAGIC   0x46508001

Definition at line 158 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_FPSIMD_V0_OFFSET

#define AARCH64_FPSIMD_V0_OFFSET   16

Definition at line 170 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_restore_vregs().

◆ AARCH64_FPSIMD_VREG_SIZE

#define AARCH64_FPSIMD_VREG_SIZE   16

Definition at line 171 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_restore_vregs().

◆ AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET

#define AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET   128

Definition at line 149 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SIGCONTEXT_REG_SIZE

#define AARCH64_SIGCONTEXT_REG_SIZE   8

Definition at line 148 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_SIGCONTEXT_RESERVED_OFFSET

#define AARCH64_SIGCONTEXT_RESERVED_OFFSET   288

Definition at line 152 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SIGCONTEXT_RESERVED_SIZE

#define AARCH64_SIGCONTEXT_RESERVED_SIZE   4096

Definition at line 154 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SIGCONTEXT_XO_OFFSET

#define AARCH64_SIGCONTEXT_XO_OFFSET   8

Definition at line 151 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SME2_CONTEXT_NREGS_OFFSET

#define AARCH64_SME2_CONTEXT_NREGS_OFFSET   8

Definition at line 199 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SME2_CONTEXT_REGS_OFFSET

#define AARCH64_SME2_CONTEXT_REGS_OFFSET   16

Definition at line 202 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_SME_CONTEXT_REGS_OFFSET

#define AARCH64_SME_CONTEXT_REGS_OFFSET   16

Definition at line 187 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SME_CONTEXT_SIZE

#define AARCH64_SME_CONTEXT_SIZE ( svq)     (AARCH64_SME_CONTEXT_REGS_OFFSET + AARCH64_SME_CONTEXT_ZA_SIZE (svq))

Definition at line 190 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SME_CONTEXT_SVL_OFFSET

#define AARCH64_SME_CONTEXT_SVL_OFFSET   8

Definition at line 186 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SME_CONTEXT_ZA_SIZE

#define AARCH64_SME_CONTEXT_ZA_SIZE ( svq)     ((sve_vl_from_vq (svq) * sve_vl_from_vq (svq)))

Definition at line 188 of file aarch64-linux-tdep.c.

◆ AARCH64_SVE_CONTEXT_FFR_OFFSET

#define AARCH64_SVE_CONTEXT_FFR_OFFSET ( vq)     (AARCH64_SVE_CONTEXT_P_REGS_OFFSET (vq) + (16 * vq * 2))

Definition at line 178 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_SVE_CONTEXT_FLAGS_OFFSET

#define AARCH64_SVE_CONTEXT_FLAGS_OFFSET   10

Definition at line 175 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SVE_CONTEXT_P_REGS_OFFSET

#define AARCH64_SVE_CONTEXT_P_REGS_OFFSET ( vq)    (32 * vq * 16)

Definition at line 177 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_SVE_CONTEXT_REGS_OFFSET

#define AARCH64_SVE_CONTEXT_REGS_OFFSET   16

◆ AARCH64_SVE_CONTEXT_SIZE

#define AARCH64_SVE_CONTEXT_SIZE ( vq)     (AARCH64_SVE_CONTEXT_FFR_OFFSET (vq) + (vq * 2))

Definition at line 180 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SVE_CONTEXT_VL_OFFSET

#define AARCH64_SVE_CONTEXT_VL_OFFSET   8

Definition at line 174 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_SVE_MAGIC

#define AARCH64_SVE_MAGIC   0x53564501

Definition at line 159 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_TPIDR2_CONTEXT_TPIDR2_OFFSET

#define AARCH64_TPIDR2_CONTEXT_TPIDR2_OFFSET   8

Definition at line 194 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_sigframe_init().

◆ AARCH64_TPIDR2_MAGIC

#define AARCH64_TPIDR2_MAGIC   0x54504902

Definition at line 161 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_UCONTEXT_SIGCONTEXT_OFFSET

#define AARCH64_UCONTEXT_SIGCONTEXT_OFFSET   176

Definition at line 150 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_ZA_MAGIC

#define AARCH64_ZA_MAGIC   0x54366345

Definition at line 160 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ AARCH64_ZT_MAGIC

#define AARCH64_ZT_MAGIC   0x5a544e01

Definition at line 162 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ MAX_TAGS_TO_TRANSFER

#define MAX_TAGS_TO_TRANSFER   1024

Definition at line 2714 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_fill_memtag_section().

◆ SVE_HEADER_FLAG_SVE

#define SVE_HEADER_FLAG_SVE   1

◆ SVE_HEADER_FLAGS_LENGTH

#define SVE_HEADER_FLAGS_LENGTH   2

◆ SVE_HEADER_FLAGS_OFFSET

#define SVE_HEADER_FLAGS_OFFSET    (SVE_HEADER_MAX_VL_OFFSET + SVE_HEADER_MAX_VL_LENGTH)

◆ SVE_HEADER_MAX_SIZE_LENGTH

#define SVE_HEADER_MAX_SIZE_LENGTH   4

◆ SVE_HEADER_MAX_SIZE_OFFSET

#define SVE_HEADER_MAX_SIZE_OFFSET    (SVE_HEADER_SIZE_OFFSET + SVE_HEADER_SIZE_LENGTH)

◆ SVE_HEADER_MAX_VL_LENGTH

#define SVE_HEADER_MAX_VL_LENGTH   2

◆ SVE_HEADER_MAX_VL_OFFSET

#define SVE_HEADER_MAX_VL_OFFSET    (SVE_HEADER_VL_OFFSET + SVE_HEADER_VL_LENGTH)

◆ SVE_HEADER_RESERVED_LENGTH

#define SVE_HEADER_RESERVED_LENGTH   2

◆ SVE_HEADER_RESERVED_OFFSET

#define SVE_HEADER_RESERVED_OFFSET    (SVE_HEADER_FLAGS_OFFSET + SVE_HEADER_FLAGS_LENGTH)

◆ SVE_HEADER_SIZE

#define SVE_HEADER_SIZE    (SVE_HEADER_RESERVED_OFFSET + SVE_HEADER_RESERVED_LENGTH)

◆ SVE_HEADER_SIZE_LENGTH

#define SVE_HEADER_SIZE_LENGTH   4

◆ SVE_HEADER_SIZE_OFFSET

#define SVE_HEADER_SIZE_OFFSET   0

◆ SVE_HEADER_VL_LENGTH

#define SVE_HEADER_VL_LENGTH   2

◆ SVE_HEADER_VL_OFFSET

#define SVE_HEADER_VL_OFFSET    (SVE_HEADER_MAX_SIZE_OFFSET + SVE_HEADER_MAX_SIZE_LENGTH)

◆ SVE_SIG_FLAG_SM

#define SVE_SIG_FLAG_SM   0x1

Definition at line 183 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_read_signal_frame_info().

◆ SYSCALL_MAP

#define SYSCALL_MAP ( SYSCALL)
Value:
case aarch64_sys_##SYSCALL: \
return gdb_sys_##SYSCALL

◆ UNSUPPORTED_SYSCALL_MAP

#define UNSUPPORTED_SYSCALL_MAP ( SYSCALL)
Value:
case aarch64_sys_##SYSCALL: \
@ gdb_sys_no_syscall

Enumeration Type Documentation

◆ aarch64_syscall

Enumerator
aarch64_sys_io_setup 
aarch64_sys_io_destroy 
aarch64_sys_io_submit 
aarch64_sys_io_cancel 
aarch64_sys_io_getevents 
aarch64_sys_setxattr 
aarch64_sys_lsetxattr 
aarch64_sys_fsetxattr 
aarch64_sys_getxattr 
aarch64_sys_lgetxattr 
aarch64_sys_fgetxattr 
aarch64_sys_listxattr 
aarch64_sys_llistxattr 
aarch64_sys_flistxattr 
aarch64_sys_removexattr 
aarch64_sys_lremovexattr 
aarch64_sys_fremovexattr 
aarch64_sys_getcwd 
aarch64_sys_lookup_dcookie 
aarch64_sys_eventfd2 
aarch64_sys_epoll_create1 
aarch64_sys_epoll_ctl 
aarch64_sys_epoll_pwait 
aarch64_sys_dup 
aarch64_sys_dup3 
aarch64_sys_fcntl 
aarch64_sys_inotify_init1 
aarch64_sys_inotify_add_watch 
aarch64_sys_inotify_rm_watch 
aarch64_sys_ioctl 
aarch64_sys_ioprio_set 
aarch64_sys_ioprio_get 
aarch64_sys_flock 
aarch64_sys_mknodat 
aarch64_sys_mkdirat 
aarch64_sys_unlinkat 
aarch64_sys_symlinkat 
aarch64_sys_linkat 
aarch64_sys_renameat 
aarch64_sys_umount2 
aarch64_sys_mount 
aarch64_sys_pivot_root 
aarch64_sys_nfsservctl 
aarch64_sys_statfs 
aarch64_sys_fstatfs 
aarch64_sys_truncate 
aarch64_sys_ftruncate 
aarch64_sys_fallocate 
aarch64_sys_faccessat 
aarch64_sys_chdir 
aarch64_sys_fchdir 
aarch64_sys_chroot 
aarch64_sys_fchmod 
aarch64_sys_fchmodat 
aarch64_sys_fchownat 
aarch64_sys_fchown 
aarch64_sys_openat 
aarch64_sys_close 
aarch64_sys_vhangup 
aarch64_sys_pipe2 
aarch64_sys_quotactl 
aarch64_sys_getdents64 
aarch64_sys_lseek 
aarch64_sys_read 
aarch64_sys_write 
aarch64_sys_readv 
aarch64_sys_writev 
aarch64_sys_pread64 
aarch64_sys_pwrite64 
aarch64_sys_preadv 
aarch64_sys_pwritev 
aarch64_sys_sendfile 
aarch64_sys_pselect6 
aarch64_sys_ppoll 
aarch64_sys_signalfd4 
aarch64_sys_vmsplice 
aarch64_sys_splice 
aarch64_sys_tee 
aarch64_sys_readlinkat 
aarch64_sys_newfstatat 
aarch64_sys_fstat 
aarch64_sys_sync 
aarch64_sys_fsync 
aarch64_sys_fdatasync 
aarch64_sys_sync_file_range2 
aarch64_sys_sync_file_range 
aarch64_sys_timerfd_create 
aarch64_sys_timerfd_settime 
aarch64_sys_timerfd_gettime 
aarch64_sys_utimensat 
aarch64_sys_acct 
aarch64_sys_capget 
aarch64_sys_capset 
aarch64_sys_personality 
aarch64_sys_exit 
aarch64_sys_exit_group 
aarch64_sys_waitid 
aarch64_sys_set_tid_address 
aarch64_sys_unshare 
aarch64_sys_futex 
aarch64_sys_set_robust_list 
aarch64_sys_get_robust_list 
aarch64_sys_nanosleep 
aarch64_sys_getitimer 
aarch64_sys_setitimer 
aarch64_sys_kexec_load 
aarch64_sys_init_module 
aarch64_sys_delete_module 
aarch64_sys_timer_create 
aarch64_sys_timer_gettime 
aarch64_sys_timer_getoverrun 
aarch64_sys_timer_settime 
aarch64_sys_timer_delete 
aarch64_sys_clock_settime 
aarch64_sys_clock_gettime 
aarch64_sys_clock_getres 
aarch64_sys_clock_nanosleep 
aarch64_sys_syslog 
aarch64_sys_ptrace 
aarch64_sys_sched_setparam 
aarch64_sys_sched_setscheduler 
aarch64_sys_sched_getscheduler 
aarch64_sys_sched_getparam 
aarch64_sys_sched_setaffinity 
aarch64_sys_sched_getaffinity 
aarch64_sys_sched_yield 
aarch64_sys_sched_get_priority_max 
aarch64_sys_sched_get_priority_min 
aarch64_sys_sched_rr_get_interval 
aarch64_sys_kill 
aarch64_sys_tkill 
aarch64_sys_tgkill 
aarch64_sys_sigaltstack 
aarch64_sys_rt_sigsuspend 
aarch64_sys_rt_sigaction 
aarch64_sys_rt_sigprocmask 
aarch64_sys_rt_sigpending 
aarch64_sys_rt_sigtimedwait 
aarch64_sys_rt_sigqueueinfo 
aarch64_sys_rt_sigreturn 
aarch64_sys_setpriority 
aarch64_sys_getpriority 
aarch64_sys_reboot 
aarch64_sys_setregid 
aarch64_sys_setgid 
aarch64_sys_setreuid 
aarch64_sys_setuid 
aarch64_sys_setresuid 
aarch64_sys_getresuid 
aarch64_sys_setresgid 
aarch64_sys_getresgid 
aarch64_sys_setfsuid 
aarch64_sys_setfsgid 
aarch64_sys_times 
aarch64_sys_setpgid 
aarch64_sys_getpgid 
aarch64_sys_getsid 
aarch64_sys_setsid 
aarch64_sys_getgroups 
aarch64_sys_setgroups 
aarch64_sys_uname 
aarch64_sys_sethostname 
aarch64_sys_setdomainname 
aarch64_sys_getrlimit 
aarch64_sys_setrlimit 
aarch64_sys_getrusage 
aarch64_sys_umask 
aarch64_sys_prctl 
aarch64_sys_getcpu 
aarch64_sys_gettimeofday 
aarch64_sys_settimeofday 
aarch64_sys_adjtimex 
aarch64_sys_getpid 
aarch64_sys_getppid 
aarch64_sys_getuid 
aarch64_sys_geteuid 
aarch64_sys_getgid 
aarch64_sys_getegid 
aarch64_sys_gettid 
aarch64_sys_sysinfo 
aarch64_sys_mq_open 
aarch64_sys_mq_unlink 
aarch64_sys_mq_timedsend 
aarch64_sys_mq_timedreceive 
aarch64_sys_mq_notify 
aarch64_sys_mq_getsetattr 
aarch64_sys_msgget 
aarch64_sys_msgctl 
aarch64_sys_msgrcv 
aarch64_sys_msgsnd 
aarch64_sys_semget 
aarch64_sys_semctl 
aarch64_sys_semtimedop 
aarch64_sys_semop 
aarch64_sys_shmget 
aarch64_sys_shmctl 
aarch64_sys_shmat 
aarch64_sys_shmdt 
aarch64_sys_socket 
aarch64_sys_socketpair 
aarch64_sys_bind 
aarch64_sys_listen 
aarch64_sys_accept 
aarch64_sys_connect 
aarch64_sys_getsockname 
aarch64_sys_getpeername 
aarch64_sys_sendto 
aarch64_sys_recvfrom 
aarch64_sys_setsockopt 
aarch64_sys_getsockopt 
aarch64_sys_shutdown 
aarch64_sys_sendmsg 
aarch64_sys_recvmsg 
aarch64_sys_readahead 
aarch64_sys_brk 
aarch64_sys_munmap 
aarch64_sys_mremap 
aarch64_sys_add_key 
aarch64_sys_request_key 
aarch64_sys_keyctl 
aarch64_sys_clone 
aarch64_sys_execve 
aarch64_sys_mmap 
aarch64_sys_fadvise64 
aarch64_sys_swapon 
aarch64_sys_swapoff 
aarch64_sys_mprotect 
aarch64_sys_msync 
aarch64_sys_mlock 
aarch64_sys_munlock 
aarch64_sys_mlockall 
aarch64_sys_munlockall 
aarch64_sys_mincore 
aarch64_sys_madvise 
aarch64_sys_remap_file_pages 
aarch64_sys_mbind 
aarch64_sys_get_mempolicy 
aarch64_sys_set_mempolicy 
aarch64_sys_migrate_pages 
aarch64_sys_move_pages 
aarch64_sys_rt_tgsigqueueinfo 
aarch64_sys_perf_event_open 
aarch64_sys_accept4 
aarch64_sys_recvmmsg 
aarch64_sys_wait4 
aarch64_sys_prlimit64 
aarch64_sys_fanotify_init 
aarch64_sys_fanotify_mark 
aarch64_sys_name_to_handle_at 
aarch64_sys_open_by_handle_at 
aarch64_sys_clock_adjtime 
aarch64_sys_syncfs 
aarch64_sys_setns 
aarch64_sys_sendmmsg 
aarch64_sys_process_vm_readv 
aarch64_sys_process_vm_writev 
aarch64_sys_kcmp 
aarch64_sys_finit_module 
aarch64_sys_sched_setattr 
aarch64_sys_sched_getattr 
aarch64_sys_getrandom 

Definition at line 1769 of file aarch64-linux-tdep.c.

Function Documentation

◆ _initialize_aarch64_linux_tdep()

void _initialize_aarch64_linux_tdep ( )

◆ aarch64_all_but_pc_registers_record()

static int aarch64_all_but_pc_registers_record ( struct regcache * regcache)
static

◆ aarch64_canonicalize_syscall()

static enum gdb_syscall aarch64_canonicalize_syscall ( enum aarch64_syscall syscall_number)
static

◆ aarch64_linux_collect_ssve_regset()

static void aarch64_linux_collect_ssve_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * buf,
size_t size )
static

◆ aarch64_linux_collect_sve_regset()

static void aarch64_linux_collect_sve_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * buf,
size_t size )
static

◆ aarch64_linux_collect_za_regset()

static void aarch64_linux_collect_za_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * buf,
size_t size )
static

◆ aarch64_linux_collect_zt_regset()

static void aarch64_linux_collect_zt_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * buf,
size_t size )
static

◆ aarch64_linux_core_read_description()

static const struct target_desc * aarch64_linux_core_read_description ( struct gdbarch * gdbarch,
struct target_ops * target,
bfd * abfd )
static

◆ aarch64_linux_core_read_vq()

static uint64_t aarch64_linux_core_read_vq ( struct gdbarch * gdbarch,
bfd * abfd,
const char * section_name )
static

◆ aarch64_linux_core_read_vq_from_sections()

static uint64_t aarch64_linux_core_read_vq_from_sections ( struct gdbarch * gdbarch,
bfd * core_bfd )
static

◆ aarch64_linux_create_memtag_section()

static asection * aarch64_linux_create_memtag_section ( struct gdbarch * gdbarch,
bfd * obfd,
CORE_ADDR address,
size_t size )
static

◆ aarch64_linux_decode_memtag_section()

static gdb::byte_vector aarch64_linux_decode_memtag_section ( struct gdbarch * gdbarch,
bfd_section * section,
int type,
CORE_ADDR address,
size_t length )
static

◆ aarch64_linux_fill_memtag_section()

static bool aarch64_linux_fill_memtag_section ( struct gdbarch * gdbarch,
asection * osec )
static

◆ aarch64_linux_gcc_target_options()

static std::string aarch64_linux_gcc_target_options ( struct gdbarch * gdbarch)
static

Definition at line 2420 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_init_abi().

◆ aarch64_linux_get_memtag()

static struct value * aarch64_linux_get_memtag ( struct gdbarch * gdbarch,
struct value * address,
memtag_type tag_type )
static

◆ aarch64_linux_get_syscall_number()

static LONGEST aarch64_linux_get_syscall_number ( struct gdbarch * gdbarch,
thread_info * thread )
static

◆ aarch64_linux_init_abi()

static void aarch64_linux_init_abi ( struct gdbarch_info info,
struct gdbarch * gdbarch )
static

Definition at line 2858 of file aarch64-linux-tdep.c.

References AARCH64_DISPLACED_MODIFIED_INSNS, aarch64_displaced_step_copy_insn(), aarch64_displaced_step_fixup(), aarch64_displaced_step_hw_singlestep(), aarch64_linux_core_read_description(), aarch64_linux_create_memtag_section(), aarch64_linux_decode_memtag_section(), aarch64_linux_fill_memtag_section(), aarch64_linux_gcc_target_options(), aarch64_linux_get_memtag(), aarch64_linux_get_syscall_number(), aarch64_linux_iterate_over_regset_sections(), aarch64_linux_memtag_matches_p(), aarch64_linux_memtag_to_string(), aarch64_linux_record_tdep, aarch64_linux_report_signal_info(), aarch64_linux_rt_sigframe, aarch64_linux_set_memtags(), aarch64_linux_syscall_record(), aarch64_linux_tagged_address_p(), AARCH64_MTE_GRANULE_SIZE, aarch64_process_record(), aarch64_stap_is_single_operand(), aarch64_stap_parse_special_token(), aarch64_gdbarch_tdep::aarch64_syscall_record, aarch64_use_target_description_from_corefile_notes(), AARCH64_X0_REGNUM, linux_record_tdep::arg1, linux_record_tdep::arg2, linux_record_tdep::arg3, linux_record_tdep::arg4, linux_record_tdep::arg5, linux_record_tdep::arg6, linux_record_tdep::arg7, linux_record_tdep::fcntl_F_GETLK, linux_record_tdep::fcntl_F_GETLK64, linux_record_tdep::fcntl_F_SETLK64, linux_record_tdep::fcntl_F_SETLKW64, find_solib_trampoline_target(), gdbarch_int_bit(), gdbarch_long_bit(), gdbarch_ptr_bit(), glibc_skip_solib_resolver(), aarch64_gdbarch_tdep::has_mte(), linux_record_tdep::ioctl_FIOASYNC, linux_record_tdep::ioctl_FIOCLEX, linux_record_tdep::ioctl_FIONBIO, linux_record_tdep::ioctl_FIONCLEX, linux_record_tdep::ioctl_FIONREAD, linux_record_tdep::ioctl_FIOQSIZE, linux_record_tdep::ioctl_TCFLSH, linux_record_tdep::ioctl_TCGETA, linux_record_tdep::ioctl_TCGETS, linux_record_tdep::ioctl_TCGETS2, linux_record_tdep::ioctl_TCSBRK, linux_record_tdep::ioctl_TCSBRKP, linux_record_tdep::ioctl_TCSETA, linux_record_tdep::ioctl_TCSETAF, linux_record_tdep::ioctl_TCSETAW, linux_record_tdep::ioctl_TCSETS, linux_record_tdep::ioctl_TCSETS2, linux_record_tdep::ioctl_TCSETSF, linux_record_tdep::ioctl_TCSETSF2, linux_record_tdep::ioctl_TCSETSW, linux_record_tdep::ioctl_TCSETSW2, linux_record_tdep::ioctl_TCXONC, linux_record_tdep::ioctl_TIOCCBRK, linux_record_tdep::ioctl_TIOCCONS, linux_record_tdep::ioctl_TIOCEXCL, linux_record_tdep::ioctl_TIOCGETD, linux_record_tdep::ioctl_TIOCGHAYESESP, linux_record_tdep::ioctl_TIOCGICOUNT, linux_record_tdep::ioctl_TIOCGLCKTRMIOS, linux_record_tdep::ioctl_TIOCGPGRP, linux_record_tdep::ioctl_TIOCGPTN, linux_record_tdep::ioctl_TIOCGSERIAL, linux_record_tdep::ioctl_TIOCGSID, linux_record_tdep::ioctl_TIOCGSOFTCAR, linux_record_tdep::ioctl_TIOCGWINSZ, linux_record_tdep::ioctl_TIOCINQ, linux_record_tdep::ioctl_TIOCLINUX, linux_record_tdep::ioctl_TIOCMBIC, linux_record_tdep::ioctl_TIOCMBIS, linux_record_tdep::ioctl_TIOCMGET, linux_record_tdep::ioctl_TIOCMIWAIT, linux_record_tdep::ioctl_TIOCMSET, linux_record_tdep::ioctl_TIOCNOTTY, linux_record_tdep::ioctl_TIOCNXCL, linux_record_tdep::ioctl_TIOCOUTQ, linux_record_tdep::ioctl_TIOCPKT, linux_record_tdep::ioctl_TIOCSBRK, linux_record_tdep::ioctl_TIOCSCTTY, linux_record_tdep::ioctl_TIOCSERCONFIG, linux_record_tdep::ioctl_TIOCSERGETLSR, linux_record_tdep::ioctl_TIOCSERGETMULTI, linux_record_tdep::ioctl_TIOCSERGSTRUCT, linux_record_tdep::ioctl_TIOCSERGWILD, linux_record_tdep::ioctl_TIOCSERSETMULTI, linux_record_tdep::ioctl_TIOCSERSWILD, linux_record_tdep::ioctl_TIOCSETD, linux_record_tdep::ioctl_TIOCSHAYESESP, linux_record_tdep::ioctl_TIOCSLCKTRMIOS, linux_record_tdep::ioctl_TIOCSPGRP, linux_record_tdep::ioctl_TIOCSPTLCK, linux_record_tdep::ioctl_TIOCSSERIAL, linux_record_tdep::ioctl_TIOCSSOFTCAR, linux_record_tdep::ioctl_TIOCSTI, linux_record_tdep::ioctl_TIOCSWINSZ, linux_record_tdep::ioctl_TIOCTTYGSTRUCT, aarch64_gdbarch_tdep::jb_pc, linux_init_abi(), linux_lp64_fetch_link_map_offsets(), aarch64_gdbarch_tdep::lowest_pc, set_gdbarch_core_read_description(), set_gdbarch_create_memtag_section(), set_gdbarch_decode_memtag_section(), set_gdbarch_displaced_step_buffer_length(), set_gdbarch_displaced_step_copy_insn(), set_gdbarch_displaced_step_fixup(), set_gdbarch_displaced_step_hw_singlestep(), set_gdbarch_fetch_tls_load_module_address(), set_gdbarch_fill_memtag_section(), set_gdbarch_gcc_target_options(), set_gdbarch_get_memtag(), set_gdbarch_get_syscall_number(), set_gdbarch_iterate_over_regset_sections(), set_gdbarch_max_insn_length(), set_gdbarch_memtag_granule_size(), set_gdbarch_memtag_matches_p(), set_gdbarch_memtag_to_string(), set_gdbarch_process_record(), set_gdbarch_report_signal_info(), set_gdbarch_set_memtags(), set_gdbarch_skip_solib_resolver(), set_gdbarch_skip_trampoline_code(), set_gdbarch_stap_integer_prefixes(), set_gdbarch_stap_is_single_operand(), set_gdbarch_stap_parse_special_token(), set_gdbarch_stap_register_indirection_prefixes(), set_gdbarch_stap_register_indirection_suffixes(), set_gdbarch_stap_register_prefixes(), set_gdbarch_tagged_address_p(), set_gdbarch_use_target_description_from_corefile_notes(), set_solib_svr4_fetch_link_map_offsets(), set_xml_syscall_file_name(), linux_record_tdep::size__old_kernel_stat, linux_record_tdep::size_cap_user_data_t, linux_record_tdep::size_epoll_event, linux_record_tdep::size_fd_set, linux_record_tdep::size_flock, linux_record_tdep::size_flock64, linux_record_tdep::size_fs_quota_stat, linux_record_tdep::size_gid_t, linux_record_tdep::size_hayes_esp_config, linux_record_tdep::size_if_dqblk, linux_record_tdep::size_int, linux_record_tdep::size_io_event, linux_record_tdep::size_iocb, linux_record_tdep::size_iovec, linux_record_tdep::size_itimerspec, linux_record_tdep::size_itimerval, linux_record_tdep::size_knfsd_fh, linux_record_tdep::size_loff_t, linux_record_tdep::size_long, linux_record_tdep::size_mem_dqinfo, linux_record_tdep::size_mq_attr, linux_record_tdep::size_msghdr, linux_record_tdep::size_msqid_ds, linux_record_tdep::size_new_utsname, linux_record_tdep::size_NFS_FHSIZE, linux_record_tdep::size_off_t, linux_record_tdep::size_old_dirent, linux_record_tdep::size_old_gid_t, linux_record_tdep::size_old_sigaction, linux_record_tdep::size_old_sigset_t, linux_record_tdep::size_old_uid_t, linux_record_tdep::size_old_utsname, linux_record_tdep::size_oldold_utsname, linux_record_tdep::size_PAGE_SIZE, linux_record_tdep::size_pid_t, linux_record_tdep::size_pointer, linux_record_tdep::size_pollfd, linux_record_tdep::size_rlimit, linux_record_tdep::size_rusage, linux_record_tdep::size_serial_icounter_struct, linux_record_tdep::size_serial_struct, linux_record_tdep::size_shmid_ds, linux_record_tdep::size_sigaction, linux_record_tdep::size_siginfo_t, linux_record_tdep::size_sigset_t, linux_record_tdep::size_size_t, linux_record_tdep::size_sockaddr, linux_record_tdep::size_stack_t, linux_record_tdep::size_stat, linux_record_tdep::size_stat64, linux_record_tdep::size_statfs, linux_record_tdep::size_statfs64, linux_record_tdep::size_sysinfo, linux_record_tdep::size_TASK_COMM_LEN, linux_record_tdep::size_termios, linux_record_tdep::size_termios2, linux_record_tdep::size_time_t, linux_record_tdep::size_timespec, linux_record_tdep::size_timeval, linux_record_tdep::size_timex, linux_record_tdep::size_timezone, linux_record_tdep::size_tms, linux_record_tdep::size_uid_t, linux_record_tdep::size_ulong, linux_record_tdep::size_user_desc, linux_record_tdep::size_ustat, linux_record_tdep::size_winsize, stap_register_indirection_prefixes, stap_register_indirection_suffixes, svr4_fetch_objfile_link_map(), and tramp_frame_prepend_unwinder().

Referenced by _initialize_aarch64_linux_tdep().

◆ 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 )
static

◆ aarch64_linux_memtag_matches_p()

static bool aarch64_linux_memtag_matches_p ( struct gdbarch * gdbarch,
struct value * address )
static

◆ aarch64_linux_memtag_to_string()

static std::string aarch64_linux_memtag_to_string ( struct gdbarch * gdbarch,
struct value * tag_value )
static

Definition at line 2598 of file aarch64-linux-tdep.c.

References value_as_address().

Referenced by aarch64_linux_init_abi().

◆ aarch64_linux_read_signal_frame_info()

static void aarch64_linux_read_signal_frame_info ( frame_info_ptr this_frame,
struct aarch64_linux_sigframe & signal_frame )
static

Definition at line 384 of file aarch64-linux-tdep.c.

References AARCH64_EXTRA_DATAP_OFFSET, AARCH64_EXTRA_MAGIC, AARCH64_FPSIMD_MAGIC, AARCH64_RT_SIGFRAME_UCONTEXT_OFFSET, AARCH64_SIGCONTEXT_RESERVED_OFFSET, AARCH64_SIGCONTEXT_RESERVED_SIZE, AARCH64_SIGCONTEXT_XO_OFFSET, AARCH64_SME2_CONTEXT_NREGS_OFFSET, AARCH64_SME_CONTEXT_REGS_OFFSET, AARCH64_SME_CONTEXT_SIZE, AARCH64_SME_CONTEXT_SVL_OFFSET, AARCH64_SP_REGNUM, AARCH64_SVE_CONTEXT_FLAGS_OFFSET, AARCH64_SVE_CONTEXT_REGS_OFFSET, AARCH64_SVE_CONTEXT_SIZE, AARCH64_SVE_CONTEXT_VL_OFFSET, AARCH64_SVE_MAGIC, AARCH64_TPIDR2_MAGIC, AARCH64_UCONTEXT_SIGCONTEXT_OFFSET, AARCH64_ZA_MAGIC, AARCH64_ZT_MAGIC, aarch64_linux_sigframe::extra_section, extract_unsigned_integer(), flags, aarch64_linux_sigframe::fpsimd_section, gdbarch_byte_order(), get_frame_arch(), get_frame_register_unsigned(), aarch64_linux_sigframe::gpr_section, read_aarch64_ctx(), aarch64_linux_sigframe::section, aarch64_linux_sigframe::section_end, aarch64_linux_sigframe::sigcontext_address, size, aarch64_linux_sigframe::sp, aarch64_linux_sigframe::streaming_mode, aarch64_linux_sigframe::sve_section, SVE_SIG_FLAG_SM, sve_vq_from_vl, aarch64_linux_sigframe::svl, target_read_memory(), aarch64_linux_sigframe::tpidr2_section, aarch64_linux_sigframe::vl, aarch64_linux_sigframe::za_payload, aarch64_linux_sigframe::za_section, aarch64_linux_sigframe::zt_available, aarch64_linux_sigframe::zt_register_count, and aarch64_linux_sigframe::zt_section.

Referenced by aarch64_linux_sigframe_init(), and aarch64_linux_sigframe_prev_arch().

◆ aarch64_linux_report_signal_info()

static void aarch64_linux_report_signal_info ( struct gdbarch * gdbarch,
struct ui_out * uiout,
enum gdb_signal siggnal )
static

◆ aarch64_linux_restore_vregs()

static void aarch64_linux_restore_vregs ( struct gdbarch * gdbarch,
struct trad_frame_cache * cache,
CORE_ADDR fpsimd_context )
static

◆ aarch64_linux_set_memtags()

static bool aarch64_linux_set_memtags ( struct gdbarch * gdbarch,
struct value * address,
size_t length,
const gdb::byte_vector & tags,
memtag_type tag_type )
static

◆ aarch64_linux_sigframe_init()

static void aarch64_linux_sigframe_init ( const struct tramp_frame * self,
frame_info_ptr this_frame,
struct trad_frame_cache * this_cache,
CORE_ADDR func )
static

Definition at line 572 of file aarch64-linux-tdep.c.

References AARCH64_B0_REGNUM, AARCH64_D0_REGNUM, AARCH64_FPCR_REGNUM, AARCH64_FPSIMD_FPCR_OFFSET, AARCH64_FPSIMD_FPSR_OFFSET, AARCH64_FPSR_REGNUM, AARCH64_H0_REGNUM, aarch64_linux_read_signal_frame_info(), aarch64_linux_restore_vregs(), AARCH64_PC_REGNUM, AARCH64_Q0_REGNUM, AARCH64_S0_REGNUM, AARCH64_SIGCONTEXT_REG_SIZE, AARCH64_SME2_CONTEXT_REGS_OFFSET, AARCH64_SP_REGNUM, AARCH64_SVE_CONTEXT_FFR_OFFSET, AARCH64_SVE_CONTEXT_P_REGS_OFFSET, AARCH64_SVE_FFR_REGNUM, AARCH64_SVE_P0_REGNUM, AARCH64_SVE_V0_REGNUM, AARCH64_SVE_VG_REGNUM, AARCH64_SVE_Z0_REGNUM, AARCH64_TPIDR2_CONTEXT_TPIDR2_OFFSET, AARCH64_X0_REGNUM, aarch64_linux_sigframe::fpsimd_section, frame_id_build(), func, gdbarch_num_regs(), get_frame_arch(), aarch64_linux_sigframe::gpr_section, aarch64_gdbarch_tdep::has_sme(), aarch64_gdbarch_tdep::has_sme2(), aarch64_gdbarch_tdep::has_sve(), aarch64_gdbarch_tdep::has_tls(), aarch64_gdbarch_tdep::sme2_zt0_regnum, aarch64_gdbarch_tdep::sme_svcr_regnum, aarch64_gdbarch_tdep::sme_svg_regnum, aarch64_gdbarch_tdep::sme_za_regnum, aarch64_linux_sigframe::sp, aarch64_linux_sigframe::streaming_mode, SVCR_SM_BIT, SVCR_ZA_BIT, aarch64_linux_sigframe::sve_section, sve_vg_from_vl, sve_vq_from_vl, aarch64_linux_sigframe::svl, aarch64_gdbarch_tdep::tls_register_count, aarch64_gdbarch_tdep::tls_regnum_base, aarch64_linux_sigframe::tpidr2_section, trad_frame_set_id(), trad_frame_set_reg_addr(), trad_frame_set_reg_value(), aarch64_linux_sigframe::vl, aarch64_linux_sigframe::za_payload, aarch64_linux_sigframe::za_section, aarch64_linux_sigframe::zt_register_count, and aarch64_linux_sigframe::zt_section.

◆ aarch64_linux_sigframe_prev_arch()

static struct gdbarch * aarch64_linux_sigframe_prev_arch ( frame_info_ptr this_frame,
void ** frame_cache )
static

◆ aarch64_linux_supply_ssve_regset()

static void aarch64_linux_supply_ssve_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * buf,
size_t size )
static

◆ aarch64_linux_supply_sve_regset()

static void aarch64_linux_supply_sve_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * buf,
size_t size )
static

◆ aarch64_linux_supply_za_regset()

static void aarch64_linux_supply_za_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * buf,
size_t size )
static

◆ aarch64_linux_supply_zt_regset()

static void aarch64_linux_supply_zt_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * buf,
size_t size )
static

◆ aarch64_linux_syscall_record()

static int aarch64_linux_syscall_record ( struct regcache * regcache,
unsigned long svc_number )
static

◆ aarch64_linux_tagged_address_p()

static bool aarch64_linux_tagged_address_p ( struct gdbarch * gdbarch,
struct value * address )
static

◆ aarch64_mte_get_atag()

static gdb::optional< CORE_ADDR > aarch64_mte_get_atag ( CORE_ADDR address)
static

◆ aarch64_stap_is_single_operand()

static int aarch64_stap_is_single_operand ( struct gdbarch * gdbarch,
const char * s )
static

Definition at line 1663 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_init_abi().

◆ aarch64_stap_parse_special_token()

static expr::operation_up aarch64_stap_parse_special_token ( struct gdbarch * gdbarch,
struct stap_parse_info * p )
static

◆ aarch64_use_target_description_from_corefile_notes()

static bool aarch64_use_target_description_from_corefile_notes ( gdbarch * gdbarch,
bfd * obfd )
static

Definition at line 2834 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_init_abi().

◆ collect_inactive_sve_regset()

static void collect_inactive_sve_regset ( const struct regcache * regcache,
void * buf,
size_t size,
int vg_regnum )
static

◆ collect_sve_regset()

static void collect_sve_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * buf,
size_t size )
static

◆ read_aarch64_ctx()

static uint32_t read_aarch64_ctx ( CORE_ADDR ctx_addr,
enum bfd_endian byte_order,
uint32_t * size )
static

◆ supply_sve_regset()

static void supply_sve_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * buf,
size_t size )
static

Variable Documentation

◆ aarch64_linux_fpregmap

const struct regcache_map_entry aarch64_linux_fpregmap[]
static
Initial value:
=
{
{ 32, AARCH64_V0_REGNUM, 16 },
{ 0 }
}
@ AARCH64_FPSR_REGNUM
Definition aarch64.h:125
@ AARCH64_FPCR_REGNUM
Definition aarch64.h:126
@ AARCH64_V0_REGNUM
Definition aarch64.h:121

Definition at line 766 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_iterate_over_regset_sections().

◆ aarch64_linux_fpregset

const struct regset aarch64_linux_fpregset
Initial value:
=
{
}
static const struct regcache_map_entry aarch64_linux_fpregmap[]
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
Definition regcache.c:1273
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
Definition regcache.c:1251

Definition at line 782 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_iterate_over_regset_sections(), fill_fpregset(), supply_fpregset(), and supply_sve_regset().

◆ aarch64_linux_gregmap

const struct regcache_map_entry aarch64_linux_gregmap[]
static
Initial value:
=
{
{ 31, AARCH64_X0_REGNUM, 8 },
{ 1, AARCH64_SP_REGNUM, 8 },
{ 1, AARCH64_PC_REGNUM, 8 },
{ 0 }
}
@ AARCH64_PC_REGNUM
Definition aarch64.h:119
@ AARCH64_CPSR_REGNUM
Definition aarch64.h:120
@ AARCH64_SP_REGNUM
Definition aarch64.h:118
@ AARCH64_X0_REGNUM
Definition aarch64.h:115

Definition at line 757 of file aarch64-linux-tdep.c.

◆ aarch64_linux_gregset

const struct regset aarch64_linux_gregset
Initial value:
=
{
}
static const struct regcache_map_entry aarch64_linux_gregmap[]

Definition at line 776 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_iterate_over_regset_sections(), fill_gregset(), and supply_gregset().

◆ aarch64_linux_record_tdep

linux_record_tdep aarch64_linux_record_tdep
static

Definition at line 1764 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_init_abi(), and aarch64_linux_syscall_record().

◆ aarch64_linux_rt_sigframe

const struct tramp_frame aarch64_linux_rt_sigframe
static
Initial value:
=
{
4,
{
{0xd2801168, ULONGEST_MAX},
{0xd4000001, ULONGEST_MAX},
{TRAMP_SENTINEL_INSN, ULONGEST_MAX}
},
nullptr,
}
static void aarch64_linux_sigframe_init(const struct tramp_frame *self, frame_info_ptr this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func)
static struct gdbarch * aarch64_linux_sigframe_prev_arch(frame_info_ptr this_frame, void **frame_cache)
@ SIGTRAMP_FRAME
Definition frame.h:198
#define TRAMP_SENTINEL_INSN
Definition tramp-frame.h:44

Definition at line 736 of file aarch64-linux-tdep.c.

Referenced by aarch64_linux_init_abi().