30 #define FT_FPR(x) (0x000 + (x) * 0x10) 31 #define FT_VR(x) (0x000 + (x) * 0x10) 32 #define FT_VR_L(x) (0x008 + (x) * 0x10) 33 #define FT_GPR(x) (0x200 + (x) * 8) 34 #define FT_GPR_U(x) (0x200 + (x) * 8) 35 #define FT_GPR_L(x) (0x204 + (x) * 8) 36 #define FT_GPR(x) (0x200 + (x) * 8) 37 #define FT_ACR(x) (0x280 + (x) * 4) 39 #define FT_PSWM_U 0x2c0 41 #define FT_PSWA_L 0x2cc 178 static const int s390x_ft_collect_regmap[] = {
212 static const int s390x_te_ft_collect_regmap[] = {
261 const unsigned char *buf)
289 return *(uint64_t *) (raw_regs +
offset);
299 return *(uint32_t *) (raw_regs +
offset);
311 #define SET_REGMAP(regmap, skip_last) \ 313 s390_regmap = regmap; \ 314 s390_regnum = (sizeof regmap / sizeof regmap[0]) - skip_last; \ 322 return tdesc_s390x_linux64;
325 return tdesc_s390x_linux64v1;
328 return tdesc_s390x_linux64v2;
331 return tdesc_s390x_te_linux64;
334 return tdesc_s390x_vx_linux64;
337 return tdesc_s390x_tevx_linux64;
369 "unknown ipa tdesc index: %d", idx);
371 return tdesc_s390x_linux64;
388 uintptr_t exec_base = getauxval (AT_PHDR);
393 exec_base = 0x80000000;
395 pagesize = sysconf (_SC_PAGE_SIZE);
399 addr = exec_base - size;
402 addr &= ~(pagesize - 1);
405 for (; addr; addr -= pagesize)
408 res = mmap ((
void *) addr, size,
409 PROT_READ | PROT_WRITE | PROT_EXEC,
410 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
413 if ((uintptr_t) res == addr)
417 if (res != MAP_FAILED)
423 void *res = mmap (NULL, size, PROT_READ | PROT_WRITE | PROT_EXEC,
424 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
426 if (res == MAP_FAILED)
437 init_registers_s390x_linux64 ();
438 init_registers_s390x_linux64v1 ();
439 init_registers_s390x_linux64v2 ();
440 init_registers_s390x_te_linux64 ();
441 init_registers_s390x_vx_linux64 ();
442 init_registers_s390x_tevx_linux64 ();
void init_registers_s390_linux32(void)
const struct target_desc * tdesc_s390_linux64v1
void init_registers_s390_tevx_linux64(void)
void init_registers_s390_te_linux64(void)
void init_registers_s390_linux64(void)
void * alloc_jump_pad_buffer(size_t size)
ULONGEST get_raw_reg(const unsigned char *raw_regs, int regnum)
const struct target_desc * tdesc_s390_linux32
static const int s390_te_linux64_ft_collect_regmap[]
void internal_error(const char *file, int line, const char *fmt,...)
const struct target_desc * tdesc_s390_te_linux64
void init_registers_s390_vx_linux64(void)
static const int s390_linux64_ft_collect_regmap[]
void init_registers_s390_linux32v1(void)
void init_registers_s390_linux64v1(void)
const struct target_desc * tdesc_s390_vx_linux64
const struct target_desc * get_ipa_tdesc(int idx)
const struct target_desc * tdesc_s390_linux32v1
void initialize_low_tracepoint(void)
const struct target_desc * tdesc_s390_tevx_linux64
void supply_fast_tracepoint_registers(struct regcache *regcache, const unsigned char *buf)
const struct target_desc * tdesc_s390_linux32v2
void perror_with_name(const char *string)
unsigned long long ULONGEST
const struct target_desc * tdesc_s390_linux64
void supply_register(struct regcache *regcache, int n, const void *buf)
void init_registers_s390_linux64v2(void)
static const int * s390_regmap
void init_registers_s390_linux32v2(void)
static const int s390_linux32_ft_collect_regmap[]
#define SET_REGMAP(regmap, skip_last)
const struct target_desc * tdesc_s390_linux64v2