GDBserver
|
#include <sys/utsname.h>
#include <sys/uio.h>
#include "gdbsupport/common-defs.h"
#include "elf/external.h"
#include "elf/common.h"
#include "aarch64-scalable-linux-ptrace.h"
#include "arch/aarch64.h"
#include "gdbsupport/common-regcache.h"
#include "gdbsupport/byte-vector.h"
#include <endian.h>
#include "arch/aarch64-scalable-linux.h"
Go to the source code of this file.
Functions | |
bool | aarch64_has_sve_state (int tid) |
bool | aarch64_has_ssve_state (int tid) |
bool | aarch64_has_za_state (int tid) |
bool | read_sve_header (int tid, struct user_sve_header &header) |
bool | write_sve_header (int tid, const struct user_sve_header &header) |
bool | read_ssve_header (int tid, struct user_sve_header &header) |
bool | write_ssve_header (int tid, const struct user_sve_header &header) |
bool | read_za_header (int tid, struct user_za_header &header) |
bool | write_za_header (int tid, const struct user_za_header &header) |
static bool | aarch64_sme_vl_valid (size_t vl) |
static bool | aarch64_sve_vl_valid (const bool sve_state, size_t vl) |
uint64_t | aarch64_sve_get_vq (int tid) |
bool | aarch64_sve_set_vq (int tid, uint64_t vq) |
bool | aarch64_sve_set_vq (int tid, struct reg_buffer_common *reg_buf) |
uint64_t | aarch64_za_get_svq (int tid) |
bool | aarch64_za_set_svq (int tid, uint64_t vq) |
bool | aarch64_za_set_svq (int tid, const struct reg_buffer_common *reg_buf, int svg_regnum) |
gdb::byte_vector | aarch64_fetch_sve_regset (int tid) |
void | aarch64_store_sve_regset (int tid, const gdb::byte_vector &sve_state) |
gdb::byte_vector | aarch64_fetch_za_regset (int tid) |
void | aarch64_store_za_regset (int tid, const gdb::byte_vector &za_state) |
void | aarch64_initialize_za_regset (int tid) |
gdb::byte_vector | aarch64_fetch_zt_regset (int tid) |
void | aarch64_store_zt_regset (int tid, const gdb::byte_vector &zt_state) |
bool | supports_zt_registers (int tid) |
static void | aarch64_maybe_swab128 (gdb_byte *dst, const gdb_byte *src, size_t size) |
void | aarch64_sve_regs_copy_to_reg_buf (int tid, struct reg_buffer_common *reg_buf) |
void | aarch64_sve_regs_copy_from_reg_buf (int tid, struct reg_buffer_common *reg_buf) |
void | aarch64_za_regs_copy_to_reg_buf (int tid, struct reg_buffer_common *reg_buf, int za_regnum, int svg_regnum, int svcr_regnum) |
void | aarch64_za_regs_copy_from_reg_buf (int tid, struct reg_buffer_common *reg_buf, int za_regnum, int svg_regnum, int svcr_regnum) |
void | aarch64_zt_regs_copy_to_reg_buf (int tid, struct reg_buffer_common *reg_buf, int zt_regnum) |
void | aarch64_zt_regs_copy_from_reg_buf (int tid, struct reg_buffer_common *reg_buf, int zt_regnum) |
gdb::byte_vector aarch64_fetch_sve_regset | ( | int | tid | ) |
Definition at line 412 of file aarch64-scalable-linux-ptrace.c.
References aarch64_has_ssve_state(), aarch64_sve_get_vq(), ptrace, PTRACE_GETREGSET, SVE_PT_REGS_SVE, and SVE_PT_SIZE.
Referenced by aarch64_sve_regs_copy_from_reg_buf(), and aarch64_sve_regs_copy_to_reg_buf().
gdb::byte_vector aarch64_fetch_za_regset | ( | int | tid | ) |
Definition at line 457 of file aarch64-scalable-linux-ptrace.c.
References aarch64_sme_vl_valid(), ptrace, PTRACE_GETREGSET, read_za_header(), user_za_header::size, and user_za_header::vl.
Referenced by aarch64_za_regs_copy_from_reg_buf(), and aarch64_za_regs_copy_to_reg_buf().
gdb::byte_vector aarch64_fetch_zt_regset | ( | int | tid | ) |
Definition at line 537 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_GETREGSET.
Referenced by aarch64_zt_regs_copy_to_reg_buf().
bool aarch64_has_ssve_state | ( | int | tid | ) |
Definition at line 54 of file aarch64-scalable-linux-ptrace.c.
References user_sve_header::flags, read_ssve_header(), user_sve_header::size, and SVE_PT_REGS_SVE.
Referenced by aarch64_fetch_sve_regset(), aarch64_store_sve_regset(), aarch64_sve_get_vq(), aarch64_sve_set_vq(), aarch64_za_regs_copy_from_reg_buf(), and aarch64_za_regs_copy_to_reg_buf().
bool aarch64_has_sve_state | ( | int | tid | ) |
Definition at line 35 of file aarch64-scalable-linux-ptrace.c.
References user_sve_header::flags, read_sve_header(), user_sve_header::size, and SVE_PT_REGS_SVE.
bool aarch64_has_za_state | ( | int | tid | ) |
Definition at line 73 of file aarch64-scalable-linux-ptrace.c.
References read_za_header(), and user_za_header::size.
Referenced by aarch64_za_regs_copy_from_reg_buf(), aarch64_za_regs_copy_to_reg_buf(), aarch64_zt_regs_copy_from_reg_buf(), and aarch64_zt_regs_copy_to_reg_buf().
void aarch64_initialize_za_regset | ( | int | tid | ) |
Definition at line 494 of file aarch64-scalable-linux-ptrace.c.
References aarch64_store_zt_regset(), ptrace, PTRACE_SETREGSET, read_za_header(), user_za_header::size, supports_zt_registers(), user_za_header::vl, and ZA_PT_SIZE.
Referenced by aarch64_za_regs_copy_from_reg_buf(), and aarch64_zt_regs_copy_from_reg_buf().
|
static |
Definition at line 596 of file aarch64-scalable-linux-ptrace.c.
Referenced by aarch64_sve_regs_copy_from_reg_buf(), and aarch64_sve_regs_copy_to_reg_buf().
|
static |
Definition at line 198 of file aarch64-scalable-linux-ptrace.c.
Referenced by aarch64_fetch_za_regset(), and aarch64_sve_vl_valid().
void aarch64_store_sve_regset | ( | int | tid, |
const gdb::byte_vector & | sve_state ) |
Definition at line 441 of file aarch64-scalable-linux-ptrace.c.
References aarch64_has_ssve_state(), ptrace, and PTRACE_SETREGSET.
Referenced by aarch64_sve_regs_copy_from_reg_buf().
void aarch64_store_za_regset | ( | int | tid, |
const gdb::byte_vector & | za_state ) |
Definition at line 480 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_SETREGSET.
Referenced by aarch64_za_regs_copy_from_reg_buf().
void aarch64_store_zt_regset | ( | int | tid, |
const gdb::byte_vector & | zt_state ) |
Definition at line 556 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_SETREGSET.
Referenced by aarch64_initialize_za_regset(), and aarch64_zt_regs_copy_from_reg_buf().
uint64_t aarch64_sve_get_vq | ( | int | tid | ) |
Definition at line 221 of file aarch64-scalable-linux-ptrace.c.
References aarch64_has_ssve_state(), aarch64_sve_vl_valid(), ptrace, PTRACE_GETREGSET, and user_sve_header::vl.
Referenced by aarch64_fetch_sve_regset(), and aarch64_sve_set_vq().
void aarch64_sve_regs_copy_from_reg_buf | ( | int | tid, |
struct reg_buffer_common * | reg_buf ) |
Definition at line 706 of file aarch64-scalable-linux-ptrace.c.
References aarch64_fetch_sve_regset(), aarch64_maybe_swab128(), aarch64_store_sve_regset(), aarch64_sve_set_vq(), user_sve_header::flags, HAS_SVE_STATE, user_sve_header::size, SVE_PT_FPSIMD_OFFSET, SVE_PT_REGS_SVE, SVE_PT_SIZE, SVE_PT_SVE_FFR_OFFSET, SVE_PT_SVE_FPCR_OFFSET, SVE_PT_SVE_FPSR_OFFSET, SVE_PT_SVE_PREG_OFFSET, SVE_PT_SVE_ZREG_OFFSET, sve_vl_valid, and user_sve_header::vl.
void aarch64_sve_regs_copy_to_reg_buf | ( | int | tid, |
struct reg_buffer_common * | reg_buf ) |
Definition at line 612 of file aarch64-scalable-linux-ptrace.c.
References aarch64_fetch_sve_regset(), aarch64_maybe_swab128(), user_sve_header::flags, HAS_SVE_STATE, user_sve_header::size, SVE_PT_FPSIMD_OFFSET, SVE_PT_SIZE, SVE_PT_SVE_FFR_OFFSET, SVE_PT_SVE_FPCR_OFFSET, SVE_PT_SVE_FPSR_OFFSET, SVE_PT_SVE_PREG_OFFSET, SVE_PT_SVE_ZREG_OFFSET, SVE_PT_SVE_ZREG_SIZE, sve_vl_valid, and user_sve_header::vl.
bool aarch64_sve_set_vq | ( | int | tid, |
struct reg_buffer_common * | reg_buf ) |
Definition at line 288 of file aarch64-scalable-linux-ptrace.c.
References aarch64_sve_get_vq(), and aarch64_sve_set_vq().
bool aarch64_sve_set_vq | ( | int | tid, |
uint64_t | vq ) |
Definition at line 255 of file aarch64-scalable-linux-ptrace.c.
References aarch64_has_ssve_state(), ptrace, PTRACE_GETREGSET, PTRACE_SETREGSET, and user_sve_header::vl.
Referenced by aarch64_sve_regs_copy_from_reg_buf(), and aarch64_sve_set_vq().
|
static |
Definition at line 208 of file aarch64-scalable-linux-ptrace.c.
References aarch64_sme_vl_valid(), and sve_vl_valid.
Referenced by aarch64_sve_get_vq(), and aarch64_za_get_svq().
uint64_t aarch64_za_get_svq | ( | int | tid | ) |
Definition at line 317 of file aarch64-scalable-linux-ptrace.c.
References aarch64_sve_vl_valid(), read_za_header(), and user_za_header::vl.
Referenced by aarch64_za_set_svq().
void aarch64_za_regs_copy_from_reg_buf | ( | int | tid, |
struct reg_buffer_common * | reg_buf, | ||
int | za_regnum, | ||
int | svg_regnum, | ||
int | svcr_regnum ) |
Definition at line 942 of file aarch64-scalable-linux-ptrace.c.
References aarch64_fetch_za_regset(), aarch64_has_ssve_state(), aarch64_has_za_state(), aarch64_initialize_za_regset(), aarch64_store_za_regset(), aarch64_za_set_svq(), read_za_header(), user_za_header::size, sve_vl_valid, user_za_header::vl, ZA_PT_SIZE, and ZA_PT_ZA_OFFSET.
void aarch64_za_regs_copy_to_reg_buf | ( | int | tid, |
struct reg_buffer_common * | reg_buf, | ||
int | za_regnum, | ||
int | svg_regnum, | ||
int | svcr_regnum ) |
Definition at line 887 of file aarch64-scalable-linux-ptrace.c.
References aarch64_fetch_za_regset(), aarch64_has_ssve_state(), aarch64_has_za_state(), user_za_header::size, sve_vl_valid, user_za_header::vl, ZA_PT_SIZE, and ZA_PT_ZA_OFFSET.
bool aarch64_za_set_svq | ( | int | tid, |
const struct reg_buffer_common * | reg_buf, | ||
int | svg_regnum ) |
Definition at line 382 of file aarch64-scalable-linux-ptrace.c.
References aarch64_za_get_svq(), and aarch64_za_set_svq().
bool aarch64_za_set_svq | ( | int | tid, |
uint64_t | vq ) |
Definition at line 337 of file aarch64-scalable-linux-ptrace.c.
References ptrace, PTRACE_SETREGSET, read_za_header(), user_za_header::size, and user_za_header::vl.
Referenced by aarch64_za_regs_copy_from_reg_buf(), and aarch64_za_set_svq().
void aarch64_zt_regs_copy_from_reg_buf | ( | int | tid, |
struct reg_buffer_common * | reg_buf, | ||
int | zt_regnum ) |
Definition at line 1092 of file aarch64-scalable-linux-ptrace.c.
References aarch64_has_za_state(), aarch64_initialize_za_regset(), and aarch64_store_zt_regset().
void aarch64_zt_regs_copy_to_reg_buf | ( | int | tid, |
struct reg_buffer_common * | reg_buf, | ||
int | zt_regnum ) |
Definition at line 1061 of file aarch64-scalable-linux-ptrace.c.
References aarch64_fetch_zt_regset(), and aarch64_has_za_state().
bool read_ssve_header | ( | int | tid, |
struct user_sve_header & | header ) |
Definition at line 125 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_GETREGSET.
Referenced by aarch64_has_ssve_state().
bool read_sve_header | ( | int | tid, |
struct user_sve_header & | header ) |
Definition at line 89 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_GETREGSET.
Referenced by aarch64_has_sve_state().
bool read_za_header | ( | int | tid, |
struct user_za_header & | header ) |
Definition at line 161 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_GETREGSET.
Referenced by aarch64_fetch_za_regset(), aarch64_has_za_state(), aarch64_initialize_za_regset(), aarch64_za_get_svq(), aarch64_za_regs_copy_from_reg_buf(), and aarch64_za_set_svq().
bool supports_zt_registers | ( | int | tid | ) |
Definition at line 577 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_GETREGSET.
Referenced by aarch64_initialize_za_regset().
bool write_ssve_header | ( | int | tid, |
const struct user_sve_header & | header ) |
Definition at line 143 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_SETREGSET.
bool write_sve_header | ( | int | tid, |
const struct user_sve_header & | header ) |
Definition at line 107 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_SETREGSET.
bool write_za_header | ( | int | tid, |
const struct user_za_header & | header ) |
Definition at line 179 of file aarch64-scalable-linux-ptrace.c.
References ptrace, and PTRACE_SETREGSET.