GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "frame-unwind.h"
#include "gdbcore.h"
#include "osabi.h"
#include "regcache.h"
#include "regset.h"
#include "symtab.h"
#include "objfiles.h"
#include "trad-frame.h"
#include "gdb_assert.h"
#include "obsd-tdep.h"
#include "sparc64-tdep.h"
#include "solib-svr4.h"
#include "bsd-uthread.h"
Go to the source code of this file.
#define SPARC64OBSD_UTHREAD_FP_OFFSET 232 |
Definition at line 291 of file sparc64obsd-tdep.c.
Referenced by sparc64obsd_collect_uthread(), and sparc64obsd_supply_uthread().
#define SPARC64OBSD_UTHREAD_PC_OFFSET 240 |
Definition at line 292 of file sparc64obsd-tdep.c.
Referenced by sparc64obsd_collect_uthread(), and sparc64obsd_supply_uthread().
void _initialize_sparc64obsd_tdep | ( | void | ) |
Definition at line 407 of file sparc64obsd-tdep.c.
References GDB_OSABI_OPENBSD_ELF, gdbarch_register_osabi(), and sparc64obsd_init_abi().
static void sparc64obsd_collect_uthread | ( | const struct regcache * | regcache, |
int | regnum, | ||
CORE_ADDR | addr | ||
) | [static] |
Definition at line 340 of file sparc64obsd-tdep.c.
References gdbarch::byte_order, extract_unsigned_integer(), gdb_assert, gdbarch_byte_order(), get_regcache_arch(), regcache_raw_collect(), sp, SPARC64_PC_REGNUM, SPARC64OBSD_UTHREAD_FP_OFFSET, SPARC64OBSD_UTHREAD_PC_OFFSET, sparc_collect_rwindow(), SPARC_SP_REGNUM, write_memory(), and write_memory_unsigned_integer().
Referenced by sparc64obsd_init_abi().
static struct sparc_frame_cache* sparc64obsd_frame_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 124 of file sparc64obsd-tdep.c.
References sparc_frame_cache::base, BIAS, gdb_assert, get_frame_pc(), get_frame_register_unsigned(), sparc_frame_cache::pc, sparc_frame_cache::saved_regs, sparc64nbsd_sigcontext_saved_regs(), sparc64obsd_page_size, SPARC_FP_REGNUM, sparc_frame_cache(), and sparc_record_save_insn().
Referenced by sparc64obsd_frame_prev_register(), and sparc64obsd_frame_this_id().
static struct value* sparc64obsd_frame_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 170 of file sparc64obsd-tdep.c.
References sparc_frame_cache::saved_regs, sparc64obsd_frame_cache(), and trad_frame_get_prev_register().
static void sparc64obsd_frame_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 160 of file sparc64obsd-tdep.c.
References sparc_frame_cache::base, frame_id_build(), sparc_frame_cache::pc, and sparc64obsd_frame_cache().
static void sparc64obsd_init_abi | ( | struct gdbarch_info | info, |
struct gdbarch * | gdbarch | ||
) | [static] |
Definition at line 377 of file sparc64obsd-tdep.c.
References bsd_uthread_set_collect_uthread(), bsd_uthread_set_supply_uthread(), frame_unwind_append_unwinder(), gdbarch_tdep(), gdbarch_tdep::gregset, obsd_skip_solib_resolver(), regset_alloc(), set_gdbarch_skip_solib_resolver(), set_solib_svr4_fetch_link_map_offsets(), gdbarch_tdep::sizeof_gregset, sparc64_init_abi(), sparc64obsd_collect_uthread(), sparc64obsd_supply_gregset(), sparc64obsd_supply_uthread(), sparcnbsd_step_trap(), gdbarch_tdep::step_trap, and svr4_lp64_fetch_link_map_offsets().
Referenced by _initialize_sparc64obsd_tdep().
static int sparc64obsd_pc_in_sigtramp | ( | CORE_ADDR | pc, |
const char * | name | ||
) | [static] |
Definition at line 96 of file sparc64obsd-tdep.c.
References offset, sparc64obsd_page_size, sparc64obsd_sigreturn_offset, and sparc_fetch_instruction().
Referenced by sparc64obsd_sigtramp_frame_sniffer().
static int sparc64obsd_sigtramp_frame_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_cache | ||
) | [static] |
Definition at line 180 of file sparc64obsd-tdep.c.
References find_pc_partial_function(), get_frame_pc(), name, sparc_frame_cache::pc, and sparc64obsd_pc_in_sigtramp().
static void sparc64obsd_supply_gregset | ( | const struct regset * | regset, |
struct regcache * | regcache, | ||
int | regnum, | ||
const void * | gregs, | ||
size_t | len | ||
) | [static] |
Definition at line 60 of file sparc64obsd-tdep.c.
References sparc64_bsd_fpregset, sparc64_supply_fpregset(), and sparc64_supply_gregset().
Referenced by sparc64obsd_init_abi().
static void sparc64obsd_supply_uthread | ( | struct regcache * | regcache, |
int | regnum, | ||
CORE_ADDR | addr | ||
) | [static] |
Definition at line 295 of file sparc64obsd-tdep.c.
References gdbarch::byte_order, gdb_assert, gdbarch_byte_order(), get_regcache_arch(), read_memory_unsigned_integer(), regcache_raw_supply(), SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, SPARC64OBSD_UTHREAD_FP_OFFSET, SPARC64OBSD_UTHREAD_PC_OFFSET, SPARC_SP_REGNUM, sparc_supply_rwindow(), and store_unsigned_integer().
Referenced by sparc64obsd_init_abi().
static struct sparc_frame_cache* sparc64obsd_trapframe_cache | ( | struct frame_info * | this_frame, |
void ** | this_cache | ||
) | [static, read] |
Definition at line 207 of file sparc64obsd-tdep.c.
References trad_frame_saved_reg::addr, BIAS, gdb_assert, get_frame_register_unsigned(), regnum, sparc_frame_cache::saved_regs, sp, SPARC64_NPC_REGNUM, SPARC64_PC_REGNUM, SPARC64_STATE_REGNUM, sparc_frame_cache(), SPARC_G0_REGNUM, SPARC_I7_REGNUM, SPARC_SP_REGNUM, and trad_frame_alloc_saved_regs().
Referenced by sparc64obsd_trapframe_prev_register(), and sparc64obsd_trapframe_this_id().
static struct value* sparc64obsd_trapframe_prev_register | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
int | regnum | ||
) | [static, read] |
Definition at line 246 of file sparc64obsd-tdep.c.
References sparc_frame_cache::saved_regs, sparc64obsd_trapframe_cache(), and trad_frame_get_prev_register().
static int sparc64obsd_trapframe_sniffer | ( | const struct frame_unwind * | self, |
struct frame_info * | this_frame, | ||
void ** | this_cache | ||
) | [static] |
Definition at line 256 of file sparc64obsd-tdep.c.
References find_pc_partial_function(), get_frame_address_in_block(), get_frame_register_unsigned(), name, sparc_frame_cache::pc, SPARC64_PSTATE_PRIV, SPARC64_PSTATE_REGNUM, and ULONGEST.
static void sparc64obsd_trapframe_this_id | ( | struct frame_info * | this_frame, |
void ** | this_cache, | ||
struct frame_id * | this_id | ||
) | [static] |
Definition at line 236 of file sparc64obsd-tdep.c.
References sparc_frame_cache::base, frame_id_build(), sparc_frame_cache::pc, and sparc64obsd_trapframe_cache().
{ 0 * 8, 1 * 8, 2 * 8, 3 * 8, -1, -1, 7 * 8, 22 * 8, 4 }
Definition at line 46 of file sparc64obsd-tdep.c.
struct frame_unwind sparc64obsd_frame_unwind [static] |
{ SIGTRAMP_FRAME, default_frame_unwind_stop_reason, sparc64obsd_frame_this_id, sparc64obsd_frame_prev_register, NULL, sparc64obsd_sigtramp_frame_sniffer }
Definition at line 194 of file sparc64obsd-tdep.c.
const int sparc64obsd_page_size = 8192 [static] |
Definition at line 85 of file sparc64obsd-tdep.c.
Referenced by sparc64obsd_frame_cache(), and sparc64obsd_pc_in_sigtramp().
const int sparc64obsd_sigreturn_offset[] [static] |
{ 0xf0, 0xec, 0xe8, -1 }
Definition at line 88 of file sparc64obsd-tdep.c.
Referenced by sparc64obsd_pc_in_sigtramp().
struct frame_unwind sparc64obsd_trapframe_unwind [static] |
{ NORMAL_FRAME, default_frame_unwind_stop_reason, sparc64obsd_trapframe_this_id, sparc64obsd_trapframe_prev_register, NULL, sparc64obsd_trapframe_sniffer }
Definition at line 277 of file sparc64obsd-tdep.c.