sparc64-linux-tdep.c [plain text]
#include "defs.h"
#include "gdbarch.h"
#include "osabi.h"
#include "solib-svr4.h"
#include "sparc64-tdep.h"
static struct link_map_offsets *
sparc64_linux_svr4_fetch_link_map_offsets (void)
{
static struct link_map_offsets lmo;
static struct link_map_offsets *lmp = NULL;
if (lmp == NULL)
{
lmp = &lmo;
lmo.r_debug_size = 16;
lmo.r_map_offset = 8;
lmo.r_map_size = 8;
lmo.link_map_size = 40;
lmo.l_addr_offset = 0;
lmo.l_addr_size = 8;
lmo.l_name_offset = 8;
lmo.l_name_size = 8;
lmo.l_next_offset = 24;
lmo.l_next_size = 8;
lmo.l_prev_offset = 32;
lmo.l_prev_size = 8;
}
return lmp;
}
static void
sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
sparc64_sol2_init_abi (info, gdbarch);
set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
set_solib_svr4_fetch_link_map_offsets
(gdbarch, sparc64_linux_svr4_fetch_link_map_offsets);
}
extern void _initialize_sparc64_linux_tdep (void);
void
_initialize_sparc64_linux_tdep (void)
{
gdbarch_register_osabi (bfd_arch_sparc, bfd_mach_sparc_v9,
GDB_OSABI_LINUX, sparc64_linux_init_abi);
}