/* Native-dependent code for AMD64.
- Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ Copyright (C) 2003-2019 Free Software Foundation, Inc.
This file is part of GDB.
if (regnum >= num_regs)
return -1;
+ /* Kernels that predate Linux 2.6.25 don't provide access to
+ these segment registers in user_regs_struct. */
+#ifndef HAVE_STRUCT_USER_REGS_STRUCT_FS_BASE
+ if (regnum == AMD64_FSBASE_REGNUM || regnum == AMD64_GSBASE_REGNUM)
+ return -1;
+#endif
+
return reg_offset[regnum];
}
const void *gregs, int regnum)
{
const char *regs = (const char *) gregs;
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
int num_regs = amd64_native_gregset64_num_regs;
int i;
int offset = amd64_native_gregset_reg_offset (gdbarch, i);
if (offset != -1)
- regcache_raw_supply (regcache, i, regs + offset);
+ regcache->raw_supply (i, regs + offset);
}
}
}
void *gregs, int regnum)
{
char *regs = (char *) gregs;
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
int num_regs = amd64_native_gregset64_num_regs;
int i;
int offset = amd64_native_gregset_reg_offset (gdbarch, i);
if (offset != -1)
- regcache_raw_collect (regcache, i, regs + offset);
+ regcache->raw_collect (i, regs + offset);
}
}
}