/* Extract the register values out of the core file and store
- them where `read_register' will find them.
+ them into REGCACHE.
CORE_REG_SECT points to the register values themselves, read into memory.
CORE_REG_SIZE is the size of that area.
*/
static void
-fetch_osf_core_registers (char *core_reg_sect, unsigned core_reg_size,
+fetch_osf_core_registers (struct regcache *regcache,
+ char *core_reg_sect, unsigned core_reg_size,
int which, CORE_ADDR reg_addr)
{
int regno;
for (regno = 0; regno < ALPHA_NUM_REGS; regno++)
{
- if (CANNOT_FETCH_REGISTER (regno))
+ if (gdbarch_cannot_fetch_register (current_gdbarch, regno))
{
- regcache_raw_supply (current_regcache, regno, NULL);
+ regcache_raw_supply (regcache, regno, NULL);
continue;
}
addr = 8 * core_reg_mapping[regno];
/* ??? UNIQUE is a new addition. Don't generate an error. */
if (regno == ALPHA_UNIQUE_REGNUM)
{
- regcache_raw_supply (current_regcache, regno, NULL);
+ regcache_raw_supply (regcache, regno, NULL);
continue;
}
if (bad_reg < 0)
}
else
{
- regcache_raw_supply (current_regcache, regno, core_reg_sect + addr);
+ regcache_raw_supply (regcache, regno, core_reg_sect + addr);
}
}
if (bad_reg >= 0)
{
- error (_("Register %s not found in core file."), REGISTER_NAME (bad_reg));
+ error (_("Register %s not found in core file."),
+ gdbarch_register_name (current_gdbarch, bad_reg));
}
}
-/* Map gdb internal register number to a ptrace ``address''.
- These ``addresses'' are defined in <sys/ptrace.h>, with
- the exception of ALPHA_UNIQUE_PTRACE_ADDR. */
-
-#define ALPHA_UNIQUE_PTRACE_ADDR 0
-
-CORE_ADDR
-register_addr (int regno, CORE_ADDR blockend)
-{
- if (regno == PC_REGNUM)
- return PC;
- if (regno == ALPHA_UNIQUE_REGNUM)
- return ALPHA_UNIQUE_PTRACE_ADDR;
- if (regno < FP0_REGNUM)
- return GPR_BASE + regno;
- else
- return FPR_BASE + regno - FP0_REGNUM;
-}
-
-int
-kernel_u_size (void)
-{
- return (sizeof (struct user));
-}
-
-#if defined(USE_PROC_FS) || defined(HAVE_GREGSET_T)
#include <sys/procfs.h>
-
/* Prototypes for supply_gregset etc. */
#include "gregset.h"
/* FPCR is in slot 32. */
alpha_fill_fp_regs (regcache, regno, regp, regp + 31);
}
-#endif
\f
/* Register that we are able to handle alpha core file formats. */