/* Target-dependent code for Analog Devices Blackfin processor, for GDB.
- Copyright (C) 2005-2012 Free Software Foundation, Inc.
+ Copyright (C) 2005-2020 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
struct trad_frame_cache *this_cache,
CORE_ADDR func)
{
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
CORE_ADDR sp = get_frame_sp (this_frame);
CORE_ADDR pc = get_frame_pc (this_frame);
CORE_ADDR sigcontext = sp + SIGCONTEXT_OFFSET;
- struct frame_id this_id;
const int *reg_offset = bfin_linux_sigcontext_reg_offset;
int i;
{
{ 0x00ADE128, 0xffffffff }, /* P0 = __NR_rt_sigreturn; */
{ 0x00A0, 0xffff }, /* EXCPT 0; */
- { TRAMP_SENTINEL_INSN, -1 },
+ { TRAMP_SENTINEL_INSN, ULONGEST_MAX },
},
bfin_linux_sigframe_init,
};
static LONGEST
bfin_linux_get_syscall_number (struct gdbarch *gdbarch,
- ptid_t ptid)
+ thread_info *thread)
{
- struct regcache *regcache = get_thread_regcache (ptid);
+ struct regcache *regcache = get_thread_regcache (thread);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
/* The content of a register. */
gdb_byte buf[4];
/* Getting the system call number from the register.
When dealing with Blackfin architecture, this information
is stored at %p0 register. */
- regcache_cooked_read (regcache, BFIN_P0_REGNUM, buf);
+ regcache->cooked_read (BFIN_P0_REGNUM, buf);
ret = extract_signed_integer (buf, 4, byte_order);
tramp_frame_prepend_unwinder (gdbarch, &bfin_linux_sigframe);
/* Functions for 'catch syscall'. */
- set_xml_syscall_file_name ("syscalls/bfin-linux.xml");
+ set_xml_syscall_file_name (gdbarch, "syscalls/bfin-linux.xml");
set_gdbarch_get_syscall_number (gdbarch,
- bfin_linux_get_syscall_number);
+ bfin_linux_get_syscall_number);
}
-/* Provide a prototype to silence -Wmissing-prototypes. */
-extern initialize_file_ftype _initialize_bfin_linux_tdep;
-
+void _initialize_bfin_linux_tdep ();
void
-_initialize_bfin_linux_tdep (void)
+_initialize_bfin_linux_tdep ()
{
gdbarch_register_osabi (bfd_arch_bfin, 0, GDB_OSABI_LINUX,
- bfin_linux_init_abi);
+ bfin_linux_init_abi);
}